// 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 testVotes(t *testing.T) { t.Parallel() query := Votes() if query.Query == nil { t.Error("expected a query, got nothing") } } func testVotesDelete(t *testing.T) { t.Parallel() seed := randomize.NewSeed() var err error o := &Vote{} if err = randomize.Struct(seed, o, voteDBTypes, true, voteColumnsWithDefault...); err != nil { t.Errorf("Unable to randomize Vote 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 := Votes().Count(ctx, tx) if err != nil { t.Error(err) } if count != 0 { t.Error("want zero records, got:", count) } } func testVotesQueryDeleteAll(t *testing.T) { t.Parallel() seed := randomize.NewSeed() var err error o := &Vote{} if err = randomize.Struct(seed, o, voteDBTypes, true, voteColumnsWithDefault...); err != nil { t.Errorf("Unable to randomize Vote 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 := Votes().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 := Votes().Count(ctx, tx) if err != nil { t.Error(err) } if count != 0 { t.Error("want zero records, got:", count) } } func testVotesSliceDeleteAll(t *testing.T) { t.Parallel() seed := randomize.NewSeed() var err error o := &Vote{} if err = randomize.Struct(seed, o, voteDBTypes, true, voteColumnsWithDefault...); err != nil { t.Errorf("Unable to randomize Vote 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 := VoteSlice{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 := Votes().Count(ctx, tx) if err != nil { t.Error(err) } if count != 0 { t.Error("want zero records, got:", count) } } func testVotesExists(t *testing.T) { t.Parallel() seed := randomize.NewSeed() var err error o := &Vote{} if err = randomize.Struct(seed, o, voteDBTypes, true, voteColumnsWithDefault...); err != nil { t.Errorf("Unable to randomize Vote 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 := VoteExists(ctx, tx, o.ID) if err != nil { t.Errorf("Unable to check if Vote exists: %s", err) } if !e { t.Errorf("Expected VoteExists to return true, but got false.") } } func testVotesFind(t *testing.T) { t.Parallel() seed := randomize.NewSeed() var err error o := &Vote{} if err = randomize.Struct(seed, o, voteDBTypes, true, voteColumnsWithDefault...); err != nil { t.Errorf("Unable to randomize Vote 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) } voteFound, err := FindVote(ctx, tx, o.ID) if err != nil { t.Error(err) } if voteFound == nil { t.Error("want a record, got nil") } } func testVotesBind(t *testing.T) { t.Parallel() seed := randomize.NewSeed() var err error o := &Vote{} if err = randomize.Struct(seed, o, voteDBTypes, true, voteColumnsWithDefault...); err != nil { t.Errorf("Unable to randomize Vote 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 = Votes().Bind(ctx, tx, o); err != nil { t.Error(err) } } func testVotesOne(t *testing.T) { t.Parallel() seed := randomize.NewSeed() var err error o := &Vote{} if err = randomize.Struct(seed, o, voteDBTypes, true, voteColumnsWithDefault...); err != nil { t.Errorf("Unable to randomize Vote 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 := Votes().One(ctx, tx); err != nil { t.Error(err) } else if x == nil { t.Error("expected to get a non nil record") } } func testVotesAll(t *testing.T) { t.Parallel() seed := randomize.NewSeed() var err error voteOne := &Vote{} voteTwo := &Vote{} if err = randomize.Struct(seed, voteOne, voteDBTypes, false, voteColumnsWithDefault...); err != nil { t.Errorf("Unable to randomize Vote struct: %s", err) } if err = randomize.Struct(seed, voteTwo, voteDBTypes, false, voteColumnsWithDefault...); err != nil { t.Errorf("Unable to randomize Vote struct: %s", err) } ctx := context.Background() tx := MustTx(boil.BeginTx(ctx, nil)) defer func() { _ = tx.Rollback() }() if err = voteOne.Insert(ctx, tx, boil.Infer()); err != nil { t.Error(err) } if err = voteTwo.Insert(ctx, tx, boil.Infer()); err != nil { t.Error(err) } slice, err := Votes().All(ctx, tx) if err != nil { t.Error(err) } if len(slice) != 2 { t.Error("want 2 records, got:", len(slice)) } } func testVotesCount(t *testing.T) { t.Parallel() var err error seed := randomize.NewSeed() voteOne := &Vote{} voteTwo := &Vote{} if err = randomize.Struct(seed, voteOne, voteDBTypes, false, voteColumnsWithDefault...); err != nil { t.Errorf("Unable to randomize Vote struct: %s", err) } if err = randomize.Struct(seed, voteTwo, voteDBTypes, false, voteColumnsWithDefault...); err != nil { t.Errorf("Unable to randomize Vote struct: %s", err) } ctx := context.Background() tx := MustTx(boil.BeginTx(ctx, nil)) defer func() { _ = tx.Rollback() }() if err = voteOne.Insert(ctx, tx, boil.Infer()); err != nil { t.Error(err) } if err = voteTwo.Insert(ctx, tx, boil.Infer()); err != nil { t.Error(err) } count, err := Votes().Count(ctx, tx) if err != nil { t.Error(err) } if count != 2 { t.Error("want 2 records, got:", count) } } func voteBeforeInsertHook(ctx context.Context, e boil.ContextExecutor, o *Vote) error { *o = Vote{} return nil } func voteAfterInsertHook(ctx context.Context, e boil.ContextExecutor, o *Vote) error { *o = Vote{} return nil } func voteAfterSelectHook(ctx context.Context, e boil.ContextExecutor, o *Vote) error { *o = Vote{} return nil } func voteBeforeUpdateHook(ctx context.Context, e boil.ContextExecutor, o *Vote) error { *o = Vote{} return nil } func voteAfterUpdateHook(ctx context.Context, e boil.ContextExecutor, o *Vote) error { *o = Vote{} return nil } func voteBeforeDeleteHook(ctx context.Context, e boil.ContextExecutor, o *Vote) error { *o = Vote{} return nil } func voteAfterDeleteHook(ctx context.Context, e boil.ContextExecutor, o *Vote) error { *o = Vote{} return nil } func voteBeforeUpsertHook(ctx context.Context, e boil.ContextExecutor, o *Vote) error { *o = Vote{} return nil } func voteAfterUpsertHook(ctx context.Context, e boil.ContextExecutor, o *Vote) error { *o = Vote{} return nil } func testVotesHooks(t *testing.T) { t.Parallel() var err error ctx := context.Background() empty := &Vote{} o := &Vote{} seed := randomize.NewSeed() if err = randomize.Struct(seed, o, voteDBTypes, false); err != nil { t.Errorf("Unable to randomize Vote object: %s", err) } AddVoteHook(boil.BeforeInsertHook, voteBeforeInsertHook) 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) } voteBeforeInsertHooks = []VoteHook{} AddVoteHook(boil.AfterInsertHook, voteAfterInsertHook) 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) } voteAfterInsertHooks = []VoteHook{} AddVoteHook(boil.AfterSelectHook, voteAfterSelectHook) 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) } voteAfterSelectHooks = []VoteHook{} AddVoteHook(boil.BeforeUpdateHook, voteBeforeUpdateHook) 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) } voteBeforeUpdateHooks = []VoteHook{} AddVoteHook(boil.AfterUpdateHook, voteAfterUpdateHook) 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) } voteAfterUpdateHooks = []VoteHook{} AddVoteHook(boil.BeforeDeleteHook, voteBeforeDeleteHook) 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) } voteBeforeDeleteHooks = []VoteHook{} AddVoteHook(boil.AfterDeleteHook, voteAfterDeleteHook) 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) } voteAfterDeleteHooks = []VoteHook{} AddVoteHook(boil.BeforeUpsertHook, voteBeforeUpsertHook) 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) } voteBeforeUpsertHooks = []VoteHook{} AddVoteHook(boil.AfterUpsertHook, voteAfterUpsertHook) 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) } voteAfterUpsertHooks = []VoteHook{} } func testVotesInsert(t *testing.T) { t.Parallel() seed := randomize.NewSeed() var err error o := &Vote{} if err = randomize.Struct(seed, o, voteDBTypes, true, voteColumnsWithDefault...); err != nil { t.Errorf("Unable to randomize Vote 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 := Votes().Count(ctx, tx) if err != nil { t.Error(err) } if count != 1 { t.Error("want one record, got:", count) } } func testVotesInsertWhitelist(t *testing.T) { t.Parallel() seed := randomize.NewSeed() var err error o := &Vote{} if err = randomize.Struct(seed, o, voteDBTypes, true); err != nil { t.Errorf("Unable to randomize Vote struct: %s", err) } ctx := context.Background() tx := MustTx(boil.BeginTx(ctx, nil)) defer func() { _ = tx.Rollback() }() if err = o.Insert(ctx, tx, boil.Whitelist(voteColumnsWithoutDefault...)); err != nil { t.Error(err) } count, err := Votes().Count(ctx, tx) if err != nil { t.Error(err) } if count != 1 { t.Error("want one record, got:", count) } } func testVoteToOneCommentUsingComment(t *testing.T) { ctx := context.Background() tx := MustTx(boil.BeginTx(ctx, nil)) defer func() { _ = tx.Rollback() }() var local Vote var foreign Comment seed := randomize.NewSeed() if err := randomize.Struct(seed, &local, voteDBTypes, true, voteColumnsWithDefault...); err != nil { t.Errorf("Unable to randomize Vote struct: %s", err) } if err := randomize.Struct(seed, &foreign, commentDBTypes, false, commentColumnsWithDefault...); err != nil { t.Errorf("Unable to randomize Comment struct: %s", err) } if err := foreign.Insert(ctx, tx, boil.Infer()); err != nil { t.Fatal(err) } queries.Assign(&local.CommentID, foreign.ID) if err := local.Insert(ctx, tx, boil.Infer()); err != nil { t.Fatal(err) } check, err := local.Comment().One(ctx, tx) if err != nil { t.Fatal(err) } if !queries.Equal(check.ID, foreign.ID) { t.Errorf("want: %v, got %v", foreign.ID, check.ID) } ranAfterSelectHook := false AddCommentHook(boil.AfterSelectHook, func(ctx context.Context, e boil.ContextExecutor, o *Comment) error { ranAfterSelectHook = true return nil }) slice := VoteSlice{&local} if err = local.L.LoadComment(ctx, tx, false, (*[]*Vote)(&slice), nil); err != nil { t.Fatal(err) } if local.R.Comment == nil { t.Error("struct should have been eager loaded") } local.R.Comment = nil if err = local.L.LoadComment(ctx, tx, true, &local, nil); err != nil { t.Fatal(err) } if local.R.Comment == nil { t.Error("struct should have been eager loaded") } if !ranAfterSelectHook { t.Error("failed to run AfterSelect hook for relationship") } } func testVoteToOnePostUsingPost(t *testing.T) { ctx := context.Background() tx := MustTx(boil.BeginTx(ctx, nil)) defer func() { _ = tx.Rollback() }() var local Vote var foreign Post seed := randomize.NewSeed() if err := randomize.Struct(seed, &local, voteDBTypes, true, voteColumnsWithDefault...); err != nil { t.Errorf("Unable to randomize Vote struct: %s", err) } if err := randomize.Struct(seed, &foreign, postDBTypes, false, postColumnsWithDefault...); err != nil { t.Errorf("Unable to randomize Post struct: %s", err) } if err := foreign.Insert(ctx, tx, boil.Infer()); err != nil { t.Fatal(err) } queries.Assign(&local.PostID, foreign.ID) if err := local.Insert(ctx, tx, boil.Infer()); err != nil { t.Fatal(err) } check, err := local.Post().One(ctx, tx) if err != nil { t.Fatal(err) } if !queries.Equal(check.ID, foreign.ID) { t.Errorf("want: %v, got %v", foreign.ID, check.ID) } ranAfterSelectHook := false AddPostHook(boil.AfterSelectHook, func(ctx context.Context, e boil.ContextExecutor, o *Post) error { ranAfterSelectHook = true return nil }) slice := VoteSlice{&local} if err = local.L.LoadPost(ctx, tx, false, (*[]*Vote)(&slice), nil); err != nil { t.Fatal(err) } if local.R.Post == nil { t.Error("struct should have been eager loaded") } local.R.Post = nil if err = local.L.LoadPost(ctx, tx, true, &local, nil); err != nil { t.Fatal(err) } if local.R.Post == nil { t.Error("struct should have been eager loaded") } if !ranAfterSelectHook { t.Error("failed to run AfterSelect hook for relationship") } } func testVoteToOneSetOpCommentUsingComment(t *testing.T) { var err error ctx := context.Background() tx := MustTx(boil.BeginTx(ctx, nil)) defer func() { _ = tx.Rollback() }() var a Vote var b, c Comment seed := randomize.NewSeed() if err = randomize.Struct(seed, &a, voteDBTypes, false, strmangle.SetComplement(votePrimaryKeyColumns, voteColumnsWithoutDefault)...); err != nil { t.Fatal(err) } if err = randomize.Struct(seed, &b, commentDBTypes, false, strmangle.SetComplement(commentPrimaryKeyColumns, commentColumnsWithoutDefault)...); err != nil { t.Fatal(err) } if err = randomize.Struct(seed, &c, commentDBTypes, false, strmangle.SetComplement(commentPrimaryKeyColumns, commentColumnsWithoutDefault)...); err != nil { t.Fatal(err) } if err := a.Insert(ctx, tx, boil.Infer()); err != nil { t.Fatal(err) } if err = b.Insert(ctx, tx, boil.Infer()); err != nil { t.Fatal(err) } for i, x := range []*Comment{&b, &c} { err = a.SetComment(ctx, tx, i != 0, x) if err != nil { t.Fatal(err) } if a.R.Comment != x { t.Error("relationship struct not set to correct value") } if x.R.Votes[0] != &a { t.Error("failed to append to foreign relationship struct") } if !queries.Equal(a.CommentID, x.ID) { t.Error("foreign key was wrong value", a.CommentID) } zero := reflect.Zero(reflect.TypeOf(a.CommentID)) reflect.Indirect(reflect.ValueOf(&a.CommentID)).Set(zero) if err = a.Reload(ctx, tx); err != nil { t.Fatal("failed to reload", err) } if !queries.Equal(a.CommentID, x.ID) { t.Error("foreign key was wrong value", a.CommentID, x.ID) } } } func testVoteToOneRemoveOpCommentUsingComment(t *testing.T) { var err error ctx := context.Background() tx := MustTx(boil.BeginTx(ctx, nil)) defer func() { _ = tx.Rollback() }() var a Vote var b Comment seed := randomize.NewSeed() if err = randomize.Struct(seed, &a, voteDBTypes, false, strmangle.SetComplement(votePrimaryKeyColumns, voteColumnsWithoutDefault)...); err != nil { t.Fatal(err) } if err = randomize.Struct(seed, &b, commentDBTypes, false, strmangle.SetComplement(commentPrimaryKeyColumns, commentColumnsWithoutDefault)...); err != nil { t.Fatal(err) } if err = a.Insert(ctx, tx, boil.Infer()); err != nil { t.Fatal(err) } if err = a.SetComment(ctx, tx, true, &b); err != nil { t.Fatal(err) } if err = a.RemoveComment(ctx, tx, &b); err != nil { t.Error("failed to remove relationship") } count, err := a.Comment().Count(ctx, tx) if err != nil { t.Error(err) } if count != 0 { t.Error("want no relationships remaining") } if a.R.Comment != nil { t.Error("R struct entry should be nil") } if !queries.IsValuerNil(a.CommentID) { t.Error("foreign key value should be nil") } if len(b.R.Votes) != 0 { t.Error("failed to remove a from b's relationships") } } func testVoteToOneSetOpPostUsingPost(t *testing.T) { var err error ctx := context.Background() tx := MustTx(boil.BeginTx(ctx, nil)) defer func() { _ = tx.Rollback() }() var a Vote var b, c Post seed := randomize.NewSeed() if err = randomize.Struct(seed, &a, voteDBTypes, false, strmangle.SetComplement(votePrimaryKeyColumns, voteColumnsWithoutDefault)...); err != nil { t.Fatal(err) } if err = randomize.Struct(seed, &b, postDBTypes, false, strmangle.SetComplement(postPrimaryKeyColumns, postColumnsWithoutDefault)...); err != nil { t.Fatal(err) } if err = randomize.Struct(seed, &c, postDBTypes, false, strmangle.SetComplement(postPrimaryKeyColumns, postColumnsWithoutDefault)...); err != nil { t.Fatal(err) } if err := a.Insert(ctx, tx, boil.Infer()); err != nil { t.Fatal(err) } if err = b.Insert(ctx, tx, boil.Infer()); err != nil { t.Fatal(err) } for i, x := range []*Post{&b, &c} { err = a.SetPost(ctx, tx, i != 0, x) if err != nil { t.Fatal(err) } if a.R.Post != x { t.Error("relationship struct not set to correct value") } if x.R.Votes[0] != &a { t.Error("failed to append to foreign relationship struct") } if !queries.Equal(a.PostID, x.ID) { t.Error("foreign key was wrong value", a.PostID) } zero := reflect.Zero(reflect.TypeOf(a.PostID)) reflect.Indirect(reflect.ValueOf(&a.PostID)).Set(zero) if err = a.Reload(ctx, tx); err != nil { t.Fatal("failed to reload", err) } if !queries.Equal(a.PostID, x.ID) { t.Error("foreign key was wrong value", a.PostID, x.ID) } } } func testVoteToOneRemoveOpPostUsingPost(t *testing.T) { var err error ctx := context.Background() tx := MustTx(boil.BeginTx(ctx, nil)) defer func() { _ = tx.Rollback() }() var a Vote var b Post seed := randomize.NewSeed() if err = randomize.Struct(seed, &a, voteDBTypes, false, strmangle.SetComplement(votePrimaryKeyColumns, voteColumnsWithoutDefault)...); err != nil { t.Fatal(err) } if err = randomize.Struct(seed, &b, postDBTypes, false, strmangle.SetComplement(postPrimaryKeyColumns, postColumnsWithoutDefault)...); err != nil { t.Fatal(err) } if err = a.Insert(ctx, tx, boil.Infer()); err != nil { t.Fatal(err) } if err = a.SetPost(ctx, tx, true, &b); err != nil { t.Fatal(err) } if err = a.RemovePost(ctx, tx, &b); err != nil { t.Error("failed to remove relationship") } count, err := a.Post().Count(ctx, tx) if err != nil { t.Error(err) } if count != 0 { t.Error("want no relationships remaining") } if a.R.Post != nil { t.Error("R struct entry should be nil") } if !queries.IsValuerNil(a.PostID) { t.Error("foreign key value should be nil") } if len(b.R.Votes) != 0 { t.Error("failed to remove a from b's relationships") } } func testVotesReload(t *testing.T) { t.Parallel() seed := randomize.NewSeed() var err error o := &Vote{} if err = randomize.Struct(seed, o, voteDBTypes, true, voteColumnsWithDefault...); err != nil { t.Errorf("Unable to randomize Vote 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 testVotesReloadAll(t *testing.T) { t.Parallel() seed := randomize.NewSeed() var err error o := &Vote{} if err = randomize.Struct(seed, o, voteDBTypes, true, voteColumnsWithDefault...); err != nil { t.Errorf("Unable to randomize Vote 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 := VoteSlice{o} if err = slice.ReloadAll(ctx, tx); err != nil { t.Error(err) } } func testVotesSelect(t *testing.T) { t.Parallel() seed := randomize.NewSeed() var err error o := &Vote{} if err = randomize.Struct(seed, o, voteDBTypes, true, voteColumnsWithDefault...); err != nil { t.Errorf("Unable to randomize Vote 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 := Votes().All(ctx, tx) if err != nil { t.Error(err) } if len(slice) != 1 { t.Error("want one record, got:", len(slice)) } } var ( voteDBTypes = map[string]string{`ID`: `integer`, `PostID`: `integer`, `CommentID`: `integer`, `UserID`: `integer`, `Inc`: `integer`, `CreatedAt`: `timestamp with time zone`, `UpdatedAt`: `timestamp with time zone`} _ = bytes.MinRead ) func testVotesUpdate(t *testing.T) { t.Parallel() if 0 == len(votePrimaryKeyColumns) { t.Skip("Skipping table with no primary key columns") } if len(voteAllColumns) == len(votePrimaryKeyColumns) { t.Skip("Skipping table with only primary key columns") } seed := randomize.NewSeed() var err error o := &Vote{} if err = randomize.Struct(seed, o, voteDBTypes, true, voteColumnsWithDefault...); err != nil { t.Errorf("Unable to randomize Vote 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 := Votes().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, voteDBTypes, true, votePrimaryKeyColumns...); err != nil { t.Errorf("Unable to randomize Vote 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 testVotesSliceUpdateAll(t *testing.T) { t.Parallel() if len(voteAllColumns) == len(votePrimaryKeyColumns) { t.Skip("Skipping table with only primary key columns") } seed := randomize.NewSeed() var err error o := &Vote{} if err = randomize.Struct(seed, o, voteDBTypes, true, voteColumnsWithDefault...); err != nil { t.Errorf("Unable to randomize Vote 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 := Votes().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, voteDBTypes, true, votePrimaryKeyColumns...); err != nil { t.Errorf("Unable to randomize Vote struct: %s", err) } // Remove Primary keys and unique columns from what we plan to update var fields []string if strmangle.StringSliceMatch(voteAllColumns, votePrimaryKeyColumns) { fields = voteAllColumns } else { fields = strmangle.SetComplement( voteAllColumns, votePrimaryKeyColumns, ) } 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 := VoteSlice{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 testVotesUpsert(t *testing.T) { t.Parallel() if len(voteAllColumns) == len(votePrimaryKeyColumns) { t.Skip("Skipping table with only primary key columns") } seed := randomize.NewSeed() var err error // Attempt the INSERT side of an UPSERT o := Vote{} if err = randomize.Struct(seed, &o, voteDBTypes, true); err != nil { t.Errorf("Unable to randomize Vote 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 Vote: %s", err) } count, err := Votes().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, voteDBTypes, false, votePrimaryKeyColumns...); err != nil { t.Errorf("Unable to randomize Vote struct: %s", err) } if err = o.Upsert(ctx, tx, true, nil, boil.Infer(), boil.Infer()); err != nil { t.Errorf("Unable to upsert Vote: %s", err) } count, err = Votes().Count(ctx, tx) if err != nil { t.Error(err) } if count != 1 { t.Error("want one record, got:", count) } }