| 117 | return p.PagedList(ctx, options) |
| 118 | } |
| 119 | func TestListPager_List(t *testing.T) { |
| 120 | type fields struct { |
| 121 | PageSize int64 |
| 122 | PageFn ListPageFunc |
| 123 | FullListIfExpired bool |
| 124 | } |
| 125 | type args struct { |
| 126 | ctx context.Context |
| 127 | options metav1.ListOptions |
| 128 | } |
| 129 | tests := []struct { |
| 130 | name string |
| 131 | fields fields |
| 132 | args args |
| 133 | want runtime.Object |
| 134 | wantErr bool |
| 135 | isExpired bool |
| 136 | }{ |
| 137 | { |
| 138 | name: "empty page", |
| 139 | fields: fields{PageSize: 10, PageFn: (&testPager{t: t, expectPage: 10, remaining: 0, rv: "rv:20"}).PagedList}, |
| 140 | args: args{}, |
| 141 | want: list(0, "rv:20"), |
| 142 | }, |
| 143 | { |
| 144 | name: "one page", |
| 145 | fields: fields{PageSize: 10, PageFn: (&testPager{t: t, expectPage: 10, remaining: 9, rv: "rv:20"}).PagedList}, |
| 146 | args: args{}, |
| 147 | want: list(9, "rv:20"), |
| 148 | }, |
| 149 | { |
| 150 | name: "one full page", |
| 151 | fields: fields{PageSize: 10, PageFn: (&testPager{t: t, expectPage: 10, remaining: 10, rv: "rv:20"}).PagedList}, |
| 152 | args: args{}, |
| 153 | want: list(10, "rv:20"), |
| 154 | }, |
| 155 | { |
| 156 | name: "two pages", |
| 157 | fields: fields{PageSize: 10, PageFn: (&testPager{t: t, expectPage: 10, remaining: 11, rv: "rv:20"}).PagedList}, |
| 158 | args: args{}, |
| 159 | want: list(11, "rv:20"), |
| 160 | }, |
| 161 | { |
| 162 | name: "three pages", |
| 163 | fields: fields{PageSize: 10, PageFn: (&testPager{t: t, expectPage: 10, remaining: 21, rv: "rv:20"}).PagedList}, |
| 164 | args: args{}, |
| 165 | want: list(21, "rv:20"), |
| 166 | }, |
| 167 | { |
| 168 | name: "expires on second page", |
| 169 | fields: fields{PageSize: 10, PageFn: (&testPager{t: t, expectPage: 10, remaining: 21, rv: "rv:20"}).ExpiresOnSecondPage}, |
| 170 | args: args{}, |
| 171 | wantErr: true, |
| 172 | isExpired: true, |
| 173 | }, |
| 174 | { |
| 175 | name: "expires on second page and then lists", |
| 176 | fields: fields{ |