iterx: Minor test refactoring

Signed-off-by: Michał Matczuk <michal@scylladb.com>
This commit is contained in:
Michał Matczuk
2020-04-22 12:16:33 +02:00
parent 52c5f6873a
commit 227d152ac2

View File

@@ -623,7 +623,7 @@ func TestIterxPaging(t *testing.T) {
} }
} }
func TestIterx_CASInsertAndUpdates(t *testing.T) { func TestIterxCAS(t *testing.T) {
session := CreateSession(t) session := CreateSession(t)
defer session.Close() defer session.Close()
@@ -638,57 +638,54 @@ func TestIterx_CASInsertAndUpdates(t *testing.T) {
Salary int Salary int
}{ID: id, Salary: baseSalary} }{ID: id, Salary: baseSalary}
if err := session.ExecStmt(`CREATE TABLE gocqlx_test.salaries (id int PRIMARY KEY, salary int)`); err != nil { if err := session.ExecStmt(`CREATE TABLE gocqlx_test.cas_table (id int PRIMARY KEY, salary int)`); err != nil {
t.Fatal("create table:", err) t.Fatal("create table:", err)
} }
insertQ := session.Query(qb.Insert("gocqlx_test.salaries").Columns("id", "salary").Unique().ToCql()) insert := session.Query(qb.Insert("cas_table").Columns("id", "salary").Unique().ToCql())
applied, err := insertQ.BindStruct(john).ExecCAS()
applied, err := insert.BindStruct(john).ExecCAS()
if err != nil { if err != nil {
t.Fatal(err) t.Fatal("ExecCAS() failed:", err)
} }
if !applied { if !applied {
t.Error("Expected first insert success") t.Error("ExecCAS() expected first insert success")
} }
applied, err = insertQ.BindStruct(john).ExecCASRelease() applied, err = insert.BindStruct(john).ExecCAS()
if err != nil { if err != nil {
t.Fatal(err) t.Fatal("ExecCAS() failed:", err)
} }
if applied { if applied {
t.Error("Expected second insert to not be applied") t.Error("ExecCAS() Expected second insert to not be applied")
} }
updateQ := session.Query(qb.Update("gocqlx_test.salaries"). update := session.Query(qb.Update("cas_table").
SetNamed("salary", "min_salary"). SetNamed("salary", "min_salary").
Where(qb.Eq("id")). Where(qb.Eq("id")).
If(qb.LtNamed("salary", "min_salary")). If(qb.LtNamed("salary", "min_salary")).
ToCql(), ToCql(),
) )
applied, err = updateQ.BindStructMap(john, qb.M{ applied, err = update.BindStructMap(john, qb.M{"min_salary": minSalary}).GetCAS(&john)
"min_salary": minSalary,
}).GetCAS(&john)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal("GetCAS() failed:", err)
} }
if !applied { if !applied {
t.Error("Expected update to be applied") t.Error("GetCAS() expected update to be applied")
} }
if john.Salary != baseSalary { if john.Salary != baseSalary {
t.Error("Expected to have pre-image in struct after GetCAS") t.Error("GetCAS()=%=v expected to have pre-image", john)
} }
applied, err = updateQ.BindStructMap(john, qb.M{ applied, err = update.BindStructMap(john, qb.M{"min_salary": minSalary * 2}).GetCAS(&john)
"min_salary": minSalary * 2,
}).GetCASRelease(&john)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
if !applied { if !applied {
t.Error("Expected update to be applied") t.Error("GetCAS() expected update to be applied")
} }
if john.Salary != minSalary { if john.Salary != minSalary {
t.Error("Expected to have pre-image in struct after GetCAS") t.Error("GetCAS()=%=v expected to have pre-image", john)
} }
} }