Add more tests to TestFillStructWith to increase test coverage

pull/16/head
Vinícius Garcia 2022-01-20 19:39:14 -03:00
parent bfceec04e2
commit 709d208b8e
1 changed files with 33 additions and 9 deletions

View File

@ -223,10 +223,10 @@ func TestFillStructWith(t *testing.T) {
"extra_field": "some value", "extra_field": "some value",
}) })
assert.Equal(t, nil, err) tt.AssertEqual(t, nil, err)
assert.Equal(t, "fake name", user.Name) tt.AssertEqual(t, "fake name", user.Name)
assert.Equal(t, 42, user.Age) tt.AssertEqual(t, 42, user.Age)
assert.Equal(t, "should be untouched", user.Missing) tt.AssertEqual(t, "should be untouched", user.Missing)
}) })
} }
@ -248,11 +248,35 @@ func TestFillSliceWith(t *testing.T) {
}, },
}) })
assert.Equal(t, nil, err) tt.AssertEqual(t, err, nil)
assert.Equal(t, 3, len(users)) tt.AssertEqual(t, len(users), 3)
assert.Equal(t, "Jorge", users[0].Name) tt.AssertEqual(t, users[0].Name, "Jorge")
assert.Equal(t, "Luciana", users[1].Name) tt.AssertEqual(t, users[1].Name, "Luciana")
assert.Equal(t, "Breno", users[2].Name) tt.AssertEqual(t, users[2].Name, "Breno")
})
t.Run("should report error if input is not a pointer", func(t *testing.T) {
var users []struct {
Name string `ksql:"name"`
Age int `ksql:"age"`
}
err := FillSliceWith(users, []map[string]interface{}{{
"name": "Jorge",
}})
tt.AssertErrContains(t, err, "FillSliceWith", "expected input to be a pointer")
})
t.Run("should report error if input is not a pointer to a slice", func(t *testing.T) {
var user struct {
Name string `ksql:"name"`
Age int `ksql:"age"`
}
err := FillSliceWith(&user, []map[string]interface{}{{
"name": "Jorge",
}})
tt.AssertErrContains(t, err, "FillSliceWith")
}) })
} }