(t *testing.T)
| 821 | } |
| 822 | |
| 823 | func 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 | |
| 855 | func TestGenericsUpsert(t *testing.T) { |
| 856 | ctx := context.Background() |
nothing calls this directly
no test coverage detected