aboutsummaryrefslogtreecommitdiff
path: root/src/models/users_test.go
diff options
context:
space:
mode:
authorAlexander Kavon <me+git@alexkavon.com>2024-01-22 00:35:44 -0500
committerAlexander Kavon <me+git@alexkavon.com>2024-01-22 00:35:44 -0500
commitd6fdb3a460eb228d7b1cd7870b7ef6c8c7391f0b (patch)
treef0fdc9963f9da9eae89e34ddbd401f8fc2cdd65c /src/models/users_test.go
parent857a7dd47a42faeee4c91e8089905b2ba7135bb7 (diff)
sqlboiler and generated models
Diffstat (limited to 'src/models/users_test.go')
-rw-r--r--src/models/users_test.go732
1 files changed, 732 insertions, 0 deletions
diff --git a/src/models/users_test.go b/src/models/users_test.go
new file mode 100644
index 0000000..878ae32
--- /dev/null
+++ b/src/models/users_test.go
@@ -0,0 +1,732 @@
+// Code generated by SQLBoiler 4.16.1 (https://github.com/volatiletech/sqlboiler). DO NOT EDIT.
+// This file is meant to be re-generated in place and/or deleted at any time.
+
+package models
+
+import (
+ "bytes"
+ "context"
+ "reflect"
+ "testing"
+
+ "github.com/volatiletech/randomize"
+ "github.com/volatiletech/sqlboiler/v4/boil"
+ "github.com/volatiletech/sqlboiler/v4/queries"
+ "github.com/volatiletech/strmangle"
+)
+
+var (
+ // Relationships sometimes use the reflection helper queries.Equal/queries.Assign
+ // so force a package dependency in case they don't.
+ _ = queries.Equal
+)
+
+func testUsers(t *testing.T) {
+ t.Parallel()
+
+ query := Users()
+
+ if query.Query == nil {
+ t.Error("expected a query, got nothing")
+ }
+}
+
+func testUsersDelete(t *testing.T) {
+ t.Parallel()
+
+ seed := randomize.NewSeed()
+ var err error
+ o := &User{}
+ if err = randomize.Struct(seed, o, userDBTypes, true, userColumnsWithDefault...); err != nil {
+ t.Errorf("Unable to randomize User struct: %s", err)
+ }
+
+ ctx := context.Background()
+ tx := MustTx(boil.BeginTx(ctx, nil))
+ defer func() { _ = tx.Rollback() }()
+ if err = o.Insert(ctx, tx, boil.Infer()); err != nil {
+ t.Error(err)
+ }
+
+ if rowsAff, err := o.Delete(ctx, tx); err != nil {
+ t.Error(err)
+ } else if rowsAff != 1 {
+ t.Error("should only have deleted one row, but affected:", rowsAff)
+ }
+
+ count, err := Users().Count(ctx, tx)
+ if err != nil {
+ t.Error(err)
+ }
+
+ if count != 0 {
+ t.Error("want zero records, got:", count)
+ }
+}
+
+func testUsersQueryDeleteAll(t *testing.T) {
+ t.Parallel()
+
+ seed := randomize.NewSeed()
+ var err error
+ o := &User{}
+ if err = randomize.Struct(seed, o, userDBTypes, true, userColumnsWithDefault...); err != nil {
+ t.Errorf("Unable to randomize User struct: %s", err)
+ }
+
+ ctx := context.Background()
+ tx := MustTx(boil.BeginTx(ctx, nil))
+ defer func() { _ = tx.Rollback() }()
+ if err = o.Insert(ctx, tx, boil.Infer()); err != nil {
+ t.Error(err)
+ }
+
+ if rowsAff, err := Users().DeleteAll(ctx, tx); err != nil {
+ t.Error(err)
+ } else if rowsAff != 1 {
+ t.Error("should only have deleted one row, but affected:", rowsAff)
+ }
+
+ count, err := Users().Count(ctx, tx)
+ if err != nil {
+ t.Error(err)
+ }
+
+ if count != 0 {
+ t.Error("want zero records, got:", count)
+ }
+}
+
+func testUsersSliceDeleteAll(t *testing.T) {
+ t.Parallel()
+
+ seed := randomize.NewSeed()
+ var err error
+ o := &User{}
+ if err = randomize.Struct(seed, o, userDBTypes, true, userColumnsWithDefault...); err != nil {
+ t.Errorf("Unable to randomize User struct: %s", err)
+ }
+
+ ctx := context.Background()
+ tx := MustTx(boil.BeginTx(ctx, nil))
+ defer func() { _ = tx.Rollback() }()
+ if err = o.Insert(ctx, tx, boil.Infer()); err != nil {
+ t.Error(err)
+ }
+
+ slice := UserSlice{o}
+
+ if rowsAff, err := slice.DeleteAll(ctx, tx); err != nil {
+ t.Error(err)
+ } else if rowsAff != 1 {
+ t.Error("should only have deleted one row, but affected:", rowsAff)
+ }
+
+ count, err := Users().Count(ctx, tx)
+ if err != nil {
+ t.Error(err)
+ }
+
+ if count != 0 {
+ t.Error("want zero records, got:", count)
+ }
+}
+
+func testUsersExists(t *testing.T) {
+ t.Parallel()
+
+ seed := randomize.NewSeed()
+ var err error
+ o := &User{}
+ if err = randomize.Struct(seed, o, userDBTypes, true, userColumnsWithDefault...); err != nil {
+ t.Errorf("Unable to randomize User struct: %s", err)
+ }
+
+ ctx := context.Background()
+ tx := MustTx(boil.BeginTx(ctx, nil))
+ defer func() { _ = tx.Rollback() }()
+ if err = o.Insert(ctx, tx, boil.Infer()); err != nil {
+ t.Error(err)
+ }
+
+ e, err := UserExists(ctx, tx, o.ID)
+ if err != nil {
+ t.Errorf("Unable to check if User exists: %s", err)
+ }
+ if !e {
+ t.Errorf("Expected UserExists to return true, but got false.")
+ }
+}
+
+func testUsersFind(t *testing.T) {
+ t.Parallel()
+
+ seed := randomize.NewSeed()
+ var err error
+ o := &User{}
+ if err = randomize.Struct(seed, o, userDBTypes, true, userColumnsWithDefault...); err != nil {
+ t.Errorf("Unable to randomize User struct: %s", err)
+ }
+
+ ctx := context.Background()
+ tx := MustTx(boil.BeginTx(ctx, nil))
+ defer func() { _ = tx.Rollback() }()
+ if err = o.Insert(ctx, tx, boil.Infer()); err != nil {
+ t.Error(err)
+ }
+
+ userFound, err := FindUser(ctx, tx, o.ID)
+ if err != nil {
+ t.Error(err)
+ }
+
+ if userFound == nil {
+ t.Error("want a record, got nil")
+ }
+}
+
+func testUsersBind(t *testing.T) {
+ t.Parallel()
+
+ seed := randomize.NewSeed()
+ var err error
+ o := &User{}
+ if err = randomize.Struct(seed, o, userDBTypes, true, userColumnsWithDefault...); err != nil {
+ t.Errorf("Unable to randomize User struct: %s", err)
+ }
+
+ ctx := context.Background()
+ tx := MustTx(boil.BeginTx(ctx, nil))
+ defer func() { _ = tx.Rollback() }()
+ if err = o.Insert(ctx, tx, boil.Infer()); err != nil {
+ t.Error(err)
+ }
+
+ if err = Users().Bind(ctx, tx, o); err != nil {
+ t.Error(err)
+ }
+}
+
+func testUsersOne(t *testing.T) {
+ t.Parallel()
+
+ seed := randomize.NewSeed()
+ var err error
+ o := &User{}
+ if err = randomize.Struct(seed, o, userDBTypes, true, userColumnsWithDefault...); err != nil {
+ t.Errorf("Unable to randomize User struct: %s", err)
+ }
+
+ ctx := context.Background()
+ tx := MustTx(boil.BeginTx(ctx, nil))
+ defer func() { _ = tx.Rollback() }()
+ if err = o.Insert(ctx, tx, boil.Infer()); err != nil {
+ t.Error(err)
+ }
+
+ if x, err := Users().One(ctx, tx); err != nil {
+ t.Error(err)
+ } else if x == nil {
+ t.Error("expected to get a non nil record")
+ }
+}
+
+func testUsersAll(t *testing.T) {
+ t.Parallel()
+
+ seed := randomize.NewSeed()
+ var err error
+ userOne := &User{}
+ userTwo := &User{}
+ if err = randomize.Struct(seed, userOne, userDBTypes, false, userColumnsWithDefault...); err != nil {
+ t.Errorf("Unable to randomize User struct: %s", err)
+ }
+ if err = randomize.Struct(seed, userTwo, userDBTypes, false, userColumnsWithDefault...); err != nil {
+ t.Errorf("Unable to randomize User struct: %s", err)
+ }
+
+ ctx := context.Background()
+ tx := MustTx(boil.BeginTx(ctx, nil))
+ defer func() { _ = tx.Rollback() }()
+ if err = userOne.Insert(ctx, tx, boil.Infer()); err != nil {
+ t.Error(err)
+ }
+ if err = userTwo.Insert(ctx, tx, boil.Infer()); err != nil {
+ t.Error(err)
+ }
+
+ slice, err := Users().All(ctx, tx)
+ if err != nil {
+ t.Error(err)
+ }
+
+ if len(slice) != 2 {
+ t.Error("want 2 records, got:", len(slice))
+ }
+}
+
+func testUsersCount(t *testing.T) {
+ t.Parallel()
+
+ var err error
+ seed := randomize.NewSeed()
+ userOne := &User{}
+ userTwo := &User{}
+ if err = randomize.Struct(seed, userOne, userDBTypes, false, userColumnsWithDefault...); err != nil {
+ t.Errorf("Unable to randomize User struct: %s", err)
+ }
+ if err = randomize.Struct(seed, userTwo, userDBTypes, false, userColumnsWithDefault...); err != nil {
+ t.Errorf("Unable to randomize User struct: %s", err)
+ }
+
+ ctx := context.Background()
+ tx := MustTx(boil.BeginTx(ctx, nil))
+ defer func() { _ = tx.Rollback() }()
+ if err = userOne.Insert(ctx, tx, boil.Infer()); err != nil {
+ t.Error(err)
+ }
+ if err = userTwo.Insert(ctx, tx, boil.Infer()); err != nil {
+ t.Error(err)
+ }
+
+ count, err := Users().Count(ctx, tx)
+ if err != nil {
+ t.Error(err)
+ }
+
+ if count != 2 {
+ t.Error("want 2 records, got:", count)
+ }
+}
+
+func userBeforeInsertHook(ctx context.Context, e boil.ContextExecutor, o *User) error {
+ *o = User{}
+ return nil
+}
+
+func userAfterInsertHook(ctx context.Context, e boil.ContextExecutor, o *User) error {
+ *o = User{}
+ return nil
+}
+
+func userAfterSelectHook(ctx context.Context, e boil.ContextExecutor, o *User) error {
+ *o = User{}
+ return nil
+}
+
+func userBeforeUpdateHook(ctx context.Context, e boil.ContextExecutor, o *User) error {
+ *o = User{}
+ return nil
+}
+
+func userAfterUpdateHook(ctx context.Context, e boil.ContextExecutor, o *User) error {
+ *o = User{}
+ return nil
+}
+
+func userBeforeDeleteHook(ctx context.Context, e boil.ContextExecutor, o *User) error {
+ *o = User{}
+ return nil
+}
+
+func userAfterDeleteHook(ctx context.Context, e boil.ContextExecutor, o *User) error {
+ *o = User{}
+ return nil
+}
+
+func userBeforeUpsertHook(ctx context.Context, e boil.ContextExecutor, o *User) error {
+ *o = User{}
+ return nil
+}
+
+func userAfterUpsertHook(ctx context.Context, e boil.ContextExecutor, o *User) error {
+ *o = User{}
+ return nil
+}
+
+func testUsersHooks(t *testing.T) {
+ t.Parallel()
+
+ var err error
+
+ ctx := context.Background()
+ empty := &User{}
+ o := &User{}
+
+ seed := randomize.NewSeed()
+ if err = randomize.Struct(seed, o, userDBTypes, false); err != nil {
+ t.Errorf("Unable to randomize User object: %s", err)
+ }
+
+ AddUserHook(boil.BeforeInsertHook, userBeforeInsertHook)
+ if err = o.doBeforeInsertHooks(ctx, nil); err != nil {
+ t.Errorf("Unable to execute doBeforeInsertHooks: %s", err)
+ }
+ if !reflect.DeepEqual(o, empty) {
+ t.Errorf("Expected BeforeInsertHook function to empty object, but got: %#v", o)
+ }
+ userBeforeInsertHooks = []UserHook{}
+
+ AddUserHook(boil.AfterInsertHook, userAfterInsertHook)
+ if err = o.doAfterInsertHooks(ctx, nil); err != nil {
+ t.Errorf("Unable to execute doAfterInsertHooks: %s", err)
+ }
+ if !reflect.DeepEqual(o, empty) {
+ t.Errorf("Expected AfterInsertHook function to empty object, but got: %#v", o)
+ }
+ userAfterInsertHooks = []UserHook{}
+
+ AddUserHook(boil.AfterSelectHook, userAfterSelectHook)
+ if err = o.doAfterSelectHooks(ctx, nil); err != nil {
+ t.Errorf("Unable to execute doAfterSelectHooks: %s", err)
+ }
+ if !reflect.DeepEqual(o, empty) {
+ t.Errorf("Expected AfterSelectHook function to empty object, but got: %#v", o)
+ }
+ userAfterSelectHooks = []UserHook{}
+
+ AddUserHook(boil.BeforeUpdateHook, userBeforeUpdateHook)
+ if err = o.doBeforeUpdateHooks(ctx, nil); err != nil {
+ t.Errorf("Unable to execute doBeforeUpdateHooks: %s", err)
+ }
+ if !reflect.DeepEqual(o, empty) {
+ t.Errorf("Expected BeforeUpdateHook function to empty object, but got: %#v", o)
+ }
+ userBeforeUpdateHooks = []UserHook{}
+
+ AddUserHook(boil.AfterUpdateHook, userAfterUpdateHook)
+ if err = o.doAfterUpdateHooks(ctx, nil); err != nil {
+ t.Errorf("Unable to execute doAfterUpdateHooks: %s", err)
+ }
+ if !reflect.DeepEqual(o, empty) {
+ t.Errorf("Expected AfterUpdateHook function to empty object, but got: %#v", o)
+ }
+ userAfterUpdateHooks = []UserHook{}
+
+ AddUserHook(boil.BeforeDeleteHook, userBeforeDeleteHook)
+ if err = o.doBeforeDeleteHooks(ctx, nil); err != nil {
+ t.Errorf("Unable to execute doBeforeDeleteHooks: %s", err)
+ }
+ if !reflect.DeepEqual(o, empty) {
+ t.Errorf("Expected BeforeDeleteHook function to empty object, but got: %#v", o)
+ }
+ userBeforeDeleteHooks = []UserHook{}
+
+ AddUserHook(boil.AfterDeleteHook, userAfterDeleteHook)
+ if err = o.doAfterDeleteHooks(ctx, nil); err != nil {
+ t.Errorf("Unable to execute doAfterDeleteHooks: %s", err)
+ }
+ if !reflect.DeepEqual(o, empty) {
+ t.Errorf("Expected AfterDeleteHook function to empty object, but got: %#v", o)
+ }
+ userAfterDeleteHooks = []UserHook{}
+
+ AddUserHook(boil.BeforeUpsertHook, userBeforeUpsertHook)
+ if err = o.doBeforeUpsertHooks(ctx, nil); err != nil {
+ t.Errorf("Unable to execute doBeforeUpsertHooks: %s", err)
+ }
+ if !reflect.DeepEqual(o, empty) {
+ t.Errorf("Expected BeforeUpsertHook function to empty object, but got: %#v", o)
+ }
+ userBeforeUpsertHooks = []UserHook{}
+
+ AddUserHook(boil.AfterUpsertHook, userAfterUpsertHook)
+ if err = o.doAfterUpsertHooks(ctx, nil); err != nil {
+ t.Errorf("Unable to execute doAfterUpsertHooks: %s", err)
+ }
+ if !reflect.DeepEqual(o, empty) {
+ t.Errorf("Expected AfterUpsertHook function to empty object, but got: %#v", o)
+ }
+ userAfterUpsertHooks = []UserHook{}
+}
+
+func testUsersInsert(t *testing.T) {
+ t.Parallel()
+
+ seed := randomize.NewSeed()
+ var err error
+ o := &User{}
+ if err = randomize.Struct(seed, o, userDBTypes, true, userColumnsWithDefault...); err != nil {
+ t.Errorf("Unable to randomize User struct: %s", err)
+ }
+
+ ctx := context.Background()
+ tx := MustTx(boil.BeginTx(ctx, nil))
+ defer func() { _ = tx.Rollback() }()
+ if err = o.Insert(ctx, tx, boil.Infer()); err != nil {
+ t.Error(err)
+ }
+
+ count, err := Users().Count(ctx, tx)
+ if err != nil {
+ t.Error(err)
+ }
+
+ if count != 1 {
+ t.Error("want one record, got:", count)
+ }
+}
+
+func testUsersInsertWhitelist(t *testing.T) {
+ t.Parallel()
+
+ seed := randomize.NewSeed()
+ var err error
+ o := &User{}
+ if err = randomize.Struct(seed, o, userDBTypes, true); err != nil {
+ t.Errorf("Unable to randomize User struct: %s", err)
+ }
+
+ ctx := context.Background()
+ tx := MustTx(boil.BeginTx(ctx, nil))
+ defer func() { _ = tx.Rollback() }()
+ if err = o.Insert(ctx, tx, boil.Whitelist(userColumnsWithoutDefault...)); err != nil {
+ t.Error(err)
+ }
+
+ count, err := Users().Count(ctx, tx)
+ if err != nil {
+ t.Error(err)
+ }
+
+ if count != 1 {
+ t.Error("want one record, got:", count)
+ }
+}
+
+func testUsersReload(t *testing.T) {
+ t.Parallel()
+
+ seed := randomize.NewSeed()
+ var err error
+ o := &User{}
+ if err = randomize.Struct(seed, o, userDBTypes, true, userColumnsWithDefault...); err != nil {
+ t.Errorf("Unable to randomize User struct: %s", err)
+ }
+
+ ctx := context.Background()
+ tx := MustTx(boil.BeginTx(ctx, nil))
+ defer func() { _ = tx.Rollback() }()
+ if err = o.Insert(ctx, tx, boil.Infer()); err != nil {
+ t.Error(err)
+ }
+
+ if err = o.Reload(ctx, tx); err != nil {
+ t.Error(err)
+ }
+}
+
+func testUsersReloadAll(t *testing.T) {
+ t.Parallel()
+
+ seed := randomize.NewSeed()
+ var err error
+ o := &User{}
+ if err = randomize.Struct(seed, o, userDBTypes, true, userColumnsWithDefault...); err != nil {
+ t.Errorf("Unable to randomize User struct: %s", err)
+ }
+
+ ctx := context.Background()
+ tx := MustTx(boil.BeginTx(ctx, nil))
+ defer func() { _ = tx.Rollback() }()
+ if err = o.Insert(ctx, tx, boil.Infer()); err != nil {
+ t.Error(err)
+ }
+
+ slice := UserSlice{o}
+
+ if err = slice.ReloadAll(ctx, tx); err != nil {
+ t.Error(err)
+ }
+}
+
+func testUsersSelect(t *testing.T) {
+ t.Parallel()
+
+ seed := randomize.NewSeed()
+ var err error
+ o := &User{}
+ if err = randomize.Struct(seed, o, userDBTypes, true, userColumnsWithDefault...); err != nil {
+ t.Errorf("Unable to randomize User struct: %s", err)
+ }
+
+ ctx := context.Background()
+ tx := MustTx(boil.BeginTx(ctx, nil))
+ defer func() { _ = tx.Rollback() }()
+ if err = o.Insert(ctx, tx, boil.Infer()); err != nil {
+ t.Error(err)
+ }
+
+ slice, err := Users().All(ctx, tx)
+ if err != nil {
+ t.Error(err)
+ }
+
+ if len(slice) != 1 {
+ t.Error("want one record, got:", len(slice))
+ }
+}
+
+var (
+ userDBTypes = map[string]string{`ID`: `integer`, `Username`: `character varying`, `Secret`: `character varying`, `Email`: `character varying`, `CreatedAt`: `timestamp with time zone`, `UpdatedAt`: `timestamp with time zone`}
+ _ = bytes.MinRead
+)
+
+func testUsersUpdate(t *testing.T) {
+ t.Parallel()
+
+ if 0 == len(userPrimaryKeyColumns) {
+ t.Skip("Skipping table with no primary key columns")
+ }
+ if len(userAllColumns) == len(userPrimaryKeyColumns) {
+ t.Skip("Skipping table with only primary key columns")
+ }
+
+ seed := randomize.NewSeed()
+ var err error
+ o := &User{}
+ if err = randomize.Struct(seed, o, userDBTypes, true, userColumnsWithDefault...); err != nil {
+ t.Errorf("Unable to randomize User struct: %s", err)
+ }
+
+ ctx := context.Background()
+ tx := MustTx(boil.BeginTx(ctx, nil))
+ defer func() { _ = tx.Rollback() }()
+ if err = o.Insert(ctx, tx, boil.Infer()); err != nil {
+ t.Error(err)
+ }
+
+ count, err := Users().Count(ctx, tx)
+ if err != nil {
+ t.Error(err)
+ }
+
+ if count != 1 {
+ t.Error("want one record, got:", count)
+ }
+
+ if err = randomize.Struct(seed, o, userDBTypes, true, userPrimaryKeyColumns...); err != nil {
+ t.Errorf("Unable to randomize User struct: %s", err)
+ }
+
+ if rowsAff, err := o.Update(ctx, tx, boil.Infer()); err != nil {
+ t.Error(err)
+ } else if rowsAff != 1 {
+ t.Error("should only affect one row but affected", rowsAff)
+ }
+}
+
+func testUsersSliceUpdateAll(t *testing.T) {
+ t.Parallel()
+
+ if len(userAllColumns) == len(userPrimaryKeyColumns) {
+ t.Skip("Skipping table with only primary key columns")
+ }
+
+ seed := randomize.NewSeed()
+ var err error
+ o := &User{}
+ if err = randomize.Struct(seed, o, userDBTypes, true, userColumnsWithDefault...); err != nil {
+ t.Errorf("Unable to randomize User struct: %s", err)
+ }
+
+ ctx := context.Background()
+ tx := MustTx(boil.BeginTx(ctx, nil))
+ defer func() { _ = tx.Rollback() }()
+ if err = o.Insert(ctx, tx, boil.Infer()); err != nil {
+ t.Error(err)
+ }
+
+ count, err := Users().Count(ctx, tx)
+ if err != nil {
+ t.Error(err)
+ }
+
+ if count != 1 {
+ t.Error("want one record, got:", count)
+ }
+
+ if err = randomize.Struct(seed, o, userDBTypes, true, userPrimaryKeyColumns...); err != nil {
+ t.Errorf("Unable to randomize User struct: %s", err)
+ }
+
+ // Remove Primary keys and unique columns from what we plan to update
+ var fields []string
+ if strmangle.StringSliceMatch(userAllColumns, userPrimaryKeyColumns) {
+ fields = userAllColumns
+ } else {
+ fields = strmangle.SetComplement(
+ userAllColumns,
+ userPrimaryKeyColumns,
+ )
+ }
+
+ value := reflect.Indirect(reflect.ValueOf(o))
+ typ := reflect.TypeOf(o).Elem()
+ n := typ.NumField()
+
+ updateMap := M{}
+ for _, col := range fields {
+ for i := 0; i < n; i++ {
+ f := typ.Field(i)
+ if f.Tag.Get("boil") == col {
+ updateMap[col] = value.Field(i).Interface()
+ }
+ }
+ }
+
+ slice := UserSlice{o}
+ if rowsAff, err := slice.UpdateAll(ctx, tx, updateMap); err != nil {
+ t.Error(err)
+ } else if rowsAff != 1 {
+ t.Error("wanted one record updated but got", rowsAff)
+ }
+}
+
+func testUsersUpsert(t *testing.T) {
+ t.Parallel()
+
+ if len(userAllColumns) == len(userPrimaryKeyColumns) {
+ t.Skip("Skipping table with only primary key columns")
+ }
+
+ seed := randomize.NewSeed()
+ var err error
+ // Attempt the INSERT side of an UPSERT
+ o := User{}
+ if err = randomize.Struct(seed, &o, userDBTypes, true); err != nil {
+ t.Errorf("Unable to randomize User struct: %s", err)
+ }
+
+ ctx := context.Background()
+ tx := MustTx(boil.BeginTx(ctx, nil))
+ defer func() { _ = tx.Rollback() }()
+ if err = o.Upsert(ctx, tx, false, nil, boil.Infer(), boil.Infer()); err != nil {
+ t.Errorf("Unable to upsert User: %s", err)
+ }
+
+ count, err := Users().Count(ctx, tx)
+ if err != nil {
+ t.Error(err)
+ }
+ if count != 1 {
+ t.Error("want one record, got:", count)
+ }
+
+ // Attempt the UPDATE side of an UPSERT
+ if err = randomize.Struct(seed, &o, userDBTypes, false, userPrimaryKeyColumns...); err != nil {
+ t.Errorf("Unable to randomize User struct: %s", err)
+ }
+
+ if err = o.Upsert(ctx, tx, true, nil, boil.Infer(), boil.Infer()); err != nil {
+ t.Errorf("Unable to upsert User: %s", err)
+ }
+
+ count, err = Users().Count(ctx, tx)
+ if err != nil {
+ t.Error(err)
+ }
+ if count != 1 {
+ t.Error("want one record, got:", count)
+ }
+}