MCPcopy
hub / github.com/go-gorm/gorm / TestGenericsSubQuery

Function TestGenericsSubQuery

tests/generics_test.go:823–853  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

821}
822
823func TestGenericsSubQuery(t *testing.T) {
824 ctx := context.Background()
825 users := []User{
826 {Name: "GenericsSubquery_1", Age: 10},
827 {Name: "GenericsSubquery_2", Age: 20},
828 {Name: "GenericsSubquery_3", Age: 30},
829 {Name: "GenericsSubquery_4", Age: 40},
830 }
831
832 if err := gorm.G[User](DB).CreateInBatches(ctx, &users, len(users)); err != nil {
833 t.Fatalf("CreateInBatches failed: %v", err)
834 }
835
836 results, err := gorm.G[User](DB).Where("name IN (?)", gorm.G[User](DB).Select("name").Where("name LIKE ?", "GenericsSubquery%")).Find(ctx)
837 if err != nil {
838 t.Fatalf("got error: %v", err)
839 }
840
841 if len(results) != 4 {
842 t.Errorf("Four users should be found, instead found %d", len(results))
843 }
844
845 results, err = gorm.G[User](DB).Where("name IN (?)", gorm.G[User](DB).Select("name").Where("name IN ?", []string{"GenericsSubquery_1", "GenericsSubquery_2"}).Or("name = ?", "GenericsSubquery_3")).Find(ctx)
846 if err != nil {
847 t.Fatalf("got error: %v", err)
848 }
849
850 if len(results) != 3 {
851 t.Errorf("Three users should be found, instead found %d", len(results))
852 }
853}
854
855func TestGenericsUpsert(t *testing.T) {
856 ctx := context.Background()

Callers

nothing calls this directly

Calls 5

CreateInBatchesMethod · 0.65
FindMethod · 0.65
WhereMethod · 0.65
SelectMethod · 0.65
OrMethod · 0.65

Tested by

no test coverage detected