| 1094 | } |
| 1095 | |
| 1096 | func TestOffset(t *testing.T) { |
| 1097 | for i := 0; i < 20; i++ { |
| 1098 | DB.Save(&User{Name: fmt.Sprintf("OffsetUser%v", i)}) |
| 1099 | } |
| 1100 | var users1, users2, users3, users4 []User |
| 1101 | |
| 1102 | DB.Limit(100).Where("name like ?", "OffsetUser%").Order("age desc").Find(&users1).Offset(3).Find(&users2).Offset(5).Find(&users3).Offset(-1).Find(&users4) |
| 1103 | |
| 1104 | if (len(users1) != len(users4)) || (len(users1)-len(users2) != 3) || (len(users1)-len(users3) != 5) { |
| 1105 | t.Errorf("Offset should work") |
| 1106 | } |
| 1107 | |
| 1108 | DB.Where("name like ?", "OffsetUser%").Order("age desc").Find(&users1).Offset(3).Find(&users2).Offset(5).Find(&users3).Offset(-1).Find(&users4) |
| 1109 | |
| 1110 | if (len(users1) != len(users4)) || (len(users1)-len(users2) != 3) || (len(users1)-len(users3) != 5) { |
| 1111 | t.Errorf("Offset should work without limit.") |
| 1112 | } |
| 1113 | } |
| 1114 | |
| 1115 | func TestSearchWithMap(t *testing.T) { |
| 1116 | users := []User{ |