aboutsummaryrefslogtreecommitdiff
path: root/src/models/votes_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/models/votes_test.go')
-rw-r--r--src/models/votes_test.go1072
1 files changed, 1072 insertions, 0 deletions
diff --git a/src/models/votes_test.go b/src/models/votes_test.go
new file mode 100644
index 0000000..c7f4f51
--- /dev/null
+++ b/src/models/votes_test.go
@@ -0,0 +1,1072 @@
+// 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)
+ }
+}