Files
pgm/playground/qry_update_test.go

67 lines
1.5 KiB
Go
Raw Normal View History

package playground
2025-07-26 18:34:56 +05:30
import (
"testing"
"code.patial.tech/go/pgm"
"code.patial.tech/go/pgm/playground/db"
"code.patial.tech/go/pgm/playground/db/user"
2025-07-26 18:34:56 +05:30
)
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()
}
}