mirror of https://github.com/VinGarcia/ksql.git
Improve tests for the Delete() function
parent
8b897d8ca9
commit
b92a751d5e
108
ksql_test.go
108
ksql_test.go
|
@ -918,51 +918,79 @@ func TestDelete(t *testing.T) {
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("should delete one id correctly", func(t *testing.T) {
|
t.Run("should delete one id correctly", func(t *testing.T) {
|
||||||
db, closer := connectDB(t, config)
|
tests := []struct {
|
||||||
defer closer.Close()
|
desc string
|
||||||
|
deletionKeyForUser func(u User) interface{}
|
||||||
ctx := context.Background()
|
}{
|
||||||
c := newTestDB(db, config.driver)
|
{
|
||||||
|
desc: "passing only the ID as key",
|
||||||
u1 := User{
|
deletionKeyForUser: func(u User) interface{} {
|
||||||
Name: "Fernanda",
|
return u.ID
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
desc: "passing only the entire user",
|
||||||
|
deletionKeyForUser: func(u User) interface{} {
|
||||||
|
return u
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
desc: "passing the address of the user",
|
||||||
|
deletionKeyForUser: func(u User) interface{} {
|
||||||
|
return &u
|
||||||
|
},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
err := c.Insert(ctx, UsersTable, &u1)
|
for _, test := range tests {
|
||||||
assert.Equal(t, nil, err)
|
t.Run(test.desc, func(t *testing.T) {
|
||||||
assert.NotEqual(t, uint(0), u1.ID)
|
db, closer := connectDB(t, config)
|
||||||
|
defer closer.Close()
|
||||||
|
|
||||||
result := User{}
|
ctx := context.Background()
|
||||||
err = getUserByID(c.db, c.dialect, &result, u1.ID)
|
c := newTestDB(db, config.driver)
|
||||||
assert.Equal(t, nil, err)
|
|
||||||
assert.Equal(t, u1.ID, result.ID)
|
|
||||||
|
|
||||||
u2 := User{
|
u1 := User{
|
||||||
Name: "Won't be deleted",
|
Name: "Fernanda",
|
||||||
|
}
|
||||||
|
|
||||||
|
err := c.Insert(ctx, UsersTable, &u1)
|
||||||
|
assert.Equal(t, nil, err)
|
||||||
|
assert.NotEqual(t, uint(0), u1.ID)
|
||||||
|
|
||||||
|
result := User{}
|
||||||
|
err = getUserByID(c.db, c.dialect, &result, u1.ID)
|
||||||
|
assert.Equal(t, nil, err)
|
||||||
|
assert.Equal(t, u1.ID, result.ID)
|
||||||
|
|
||||||
|
u2 := User{
|
||||||
|
Name: "Won't be deleted",
|
||||||
|
}
|
||||||
|
|
||||||
|
err = c.Insert(ctx, UsersTable, &u2)
|
||||||
|
assert.Equal(t, nil, err)
|
||||||
|
assert.NotEqual(t, uint(0), u2.ID)
|
||||||
|
|
||||||
|
result = User{}
|
||||||
|
err = getUserByID(c.db, c.dialect, &result, u2.ID)
|
||||||
|
assert.Equal(t, nil, err)
|
||||||
|
assert.Equal(t, u2.ID, result.ID)
|
||||||
|
|
||||||
|
err = c.Delete(ctx, UsersTable, test.deletionKeyForUser(u1))
|
||||||
|
assert.Equal(t, nil, err)
|
||||||
|
|
||||||
|
result = User{}
|
||||||
|
err = getUserByID(c.db, c.dialect, &result, u1.ID)
|
||||||
|
assert.Equal(t, sql.ErrNoRows, err)
|
||||||
|
|
||||||
|
result = User{}
|
||||||
|
err = getUserByID(c.db, c.dialect, &result, u2.ID)
|
||||||
|
assert.Equal(t, nil, err)
|
||||||
|
|
||||||
|
assert.NotEqual(t, uint(0), result.ID)
|
||||||
|
assert.Equal(t, "Won't be deleted", result.Name)
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
err = c.Insert(ctx, UsersTable, &u2)
|
|
||||||
assert.Equal(t, nil, err)
|
|
||||||
assert.NotEqual(t, uint(0), u2.ID)
|
|
||||||
|
|
||||||
result = User{}
|
|
||||||
err = getUserByID(c.db, c.dialect, &result, u2.ID)
|
|
||||||
assert.Equal(t, nil, err)
|
|
||||||
assert.Equal(t, u2.ID, result.ID)
|
|
||||||
|
|
||||||
err = c.Delete(ctx, UsersTable, u1.ID)
|
|
||||||
assert.Equal(t, nil, err)
|
|
||||||
|
|
||||||
result = User{}
|
|
||||||
err = getUserByID(c.db, c.dialect, &result, u1.ID)
|
|
||||||
assert.Equal(t, sql.ErrNoRows, err)
|
|
||||||
|
|
||||||
result = User{}
|
|
||||||
err = getUserByID(c.db, c.dialect, &result, u2.ID)
|
|
||||||
assert.Equal(t, nil, err)
|
|
||||||
|
|
||||||
assert.NotEqual(t, uint(0), result.ID)
|
|
||||||
assert.Equal(t, "Won't be deleted", result.Name)
|
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("should delete multiple ids correctly", func(t *testing.T) {
|
t.Run("should delete multiple ids correctly", func(t *testing.T) {
|
||||||
|
|
Loading…
Reference in New Issue