diff options
| author | Alexander Kavon <me+git@alexkavon.com> | 2024-01-22 00:35:44 -0500 |
|---|---|---|
| committer | Alexander Kavon <me+git@alexkavon.com> | 2024-01-22 00:35:44 -0500 |
| commit | d6fdb3a460eb228d7b1cd7870b7ef6c8c7391f0b (patch) | |
| tree | f0fdc9963f9da9eae89e34ddbd401f8fc2cdd65c /src/models/users_test.go | |
| parent | 857a7dd47a42faeee4c91e8089905b2ba7135bb7 (diff) | |
sqlboiler and generated models
Diffstat (limited to 'src/models/users_test.go')
| -rw-r--r-- | src/models/users_test.go | 732 |
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) + } +} |
