package playground import ( "testing" "code.patial.tech/go/pgm" "code.patial.tech/go/pgm/playground/db" "code.patial.tech/go/pgm/playground/db/user" ) func TestUpdateQuery(t *testing.T) { got := db.User.Update(). Set(user.FirstName, "ankit"). Set(user.MiddleName, "singh"). Set(user.LastName, "patial"). Where( user.Email.Eq("aa@aa.com"), ). Where( user.StatusID.NEq(1), ). String() expected := "UPDATE users SET first_name=$1, middle_name=$2, last_name=$3 WHERE users.email = $4 AND users.status_id != $5" if got != expected { t.Errorf("\nexpected: %q\ngot: %q", expected, got) } } func TestUpdateSetMap(t *testing.T) { got := db.User.Update(). SetMap(map[pgm.Field]any{ user.FirstName: "ankit", user.MiddleName: "singh", user.LastName: "patial", }). Where( user.Email.Eq("aa@aa.com"), ). Where( user.StatusID.NEq(1), ). String() expected := "UPDATE users SET first_name=$1, middle_name=$2, last_name=$3 WHERE users.email = $4 AND users.status_id != $5" if got != expected { t.Errorf("\nexpected: %q\ngot: %q", expected, got) } } // BenchmarkUpdateQuery-12 2004985 592.2 ns/op 1176 B/op 20 allocs/op func BenchmarkUpdateQuery(b *testing.B) { for b.Loop() { _ = db.User.Update(). Set(user.FirstName, "ankit"). Set(user.MiddleName, "singh"). Set(user.LastName, "patial"). Where( user.Email.Eq("aa@aa.com"), ). Where( user.StatusID.NEq(1), ). String() } }