github.com/Ali-iotechsys/sqlboiler/v4@v4.0.0-20221208124957-6aec9a5f1f71/templates/test/relationship_one_to_one.go.tpl (about) 1 {{- if .Table.IsJoinTable -}} 2 {{- else -}} 3 {{- range $rel := .Table.ToOneRelationships -}} 4 {{- $ltable := $.Aliases.Table $rel.Table -}} 5 {{- $ftable := $.Aliases.Table $rel.ForeignTable -}} 6 {{- $relAlias := $ftable.Relationship $rel.Name -}} 7 {{- $usesPrimitives := usesPrimitives $.Tables $rel.Table $rel.Column $rel.ForeignTable $rel.ForeignColumn -}} 8 {{- $colField := $ltable.Column $rel.Column -}} 9 {{- $fcolField := $ftable.Column $rel.ForeignColumn }} 10 func test{{$ltable.UpSingular}}OneToOne{{$ftable.UpSingular}}Using{{$relAlias.Local}}(t *testing.T) { 11 {{if not $.NoContext}}ctx := context.Background(){{end}} 12 tx := MustTx({{if $.NoContext}}boil.Begin(){{else}}boil.BeginTx(ctx, nil){{end}}) 13 defer func() { _ = tx.Rollback() }() 14 15 var foreign {{$ftable.UpSingular}} 16 var local {{$ltable.UpSingular}} 17 18 seed := randomize.NewSeed() 19 if err := randomize.Struct(seed, &foreign, {{$ftable.DownSingular}}DBTypes, true, {{$ftable.DownSingular}}ColumnsWithDefault...); err != nil { 20 t.Errorf("Unable to randomize {{$ftable.UpSingular}} struct: %s", err) 21 } 22 if err := randomize.Struct(seed, &local, {{$ltable.DownSingular}}DBTypes, true, {{$ltable.DownSingular}}ColumnsWithDefault...); err != nil { 23 t.Errorf("Unable to randomize {{$ltable.UpSingular}} struct: %s", err) 24 } 25 26 if err := local.Insert({{if not $.NoContext}}ctx, {{end -}} tx, boil.Infer()); err != nil { 27 t.Fatal(err) 28 } 29 30 {{if $usesPrimitives -}} 31 foreign.{{$fcolField}} = local.{{$colField}} 32 {{else -}} 33 queries.Assign(&foreign.{{$fcolField}}, local.{{$colField}}) 34 {{end -}} 35 if err := foreign.Insert({{if not $.NoContext}}ctx, {{end -}} tx, boil.Infer()); err != nil { 36 t.Fatal(err) 37 } 38 39 check, err := local.{{$relAlias.Local}}().One({{if not $.NoContext}}ctx, {{end -}} tx) 40 if err != nil { 41 t.Fatal(err) 42 } 43 44 {{if $usesPrimitives -}} 45 if check.{{$fcolField}} != foreign.{{$fcolField}} { 46 {{else -}} 47 if !queries.Equal(check.{{$fcolField}}, foreign.{{$fcolField}}) { 48 {{end -}} 49 t.Errorf("want: %v, got %v", foreign.{{$fcolField}}, check.{{$fcolField}}) 50 } 51 52 {{if not $.NoHooks -}} 53 ranAfterSelectHook := false 54 Add{{$ftable.UpSingular}}Hook(boil.AfterSelectHook, func({{if not $.NoContext}}ctx context.Context, {{end}}e boil.ContextExecutor, o *{{$ftable.UpSingular}}) error { 55 ranAfterSelectHook = true 56 return nil 57 }) 58 {{- end}} 59 60 slice := {{$ltable.UpSingular}}Slice{&local} 61 if err = local.L.Load{{$relAlias.Local}}({{if not $.NoContext}}ctx, {{end -}} tx, false, (*[]*{{$ltable.UpSingular}})(&slice), nil); err != nil { 62 t.Fatal(err) 63 } 64 if local.R.{{$relAlias.Local}} == nil { 65 t.Error("struct should have been eager loaded") 66 } 67 68 local.R.{{$relAlias.Local}} = nil 69 if err = local.L.Load{{$relAlias.Local}}({{if not $.NoContext}}ctx, {{end -}} tx, true, &local, nil); err != nil { 70 t.Fatal(err) 71 } 72 if local.R.{{$relAlias.Local}} == nil { 73 t.Error("struct should have been eager loaded") 74 } 75 76 {{if not $.NoHooks -}} 77 if !ranAfterSelectHook { 78 t.Error("failed to run AfterSelect hook for relationship") 79 } 80 {{- end}} 81 } 82 83 {{end -}}{{/* range */}} 84 {{- end -}}{{/* join table */}}