|
@@ -108,6 +108,32 @@ func TestClientReturnsNonemptyPage(t *testing.T) {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+func TestClientReturnsNonemptyPage2(t *testing.T) {
|
|
|
|
+ itemCount := 3
|
|
|
|
+ client := NewNoopClient[any](itemCount, nil,
|
|
|
|
+ []*Aggr[any]{{1, 2}, {3}},
|
|
|
|
+ )
|
|
|
|
+ pagePool := make(chan Page[any], 1)
|
|
|
|
+ for i := 0; i < cap(pagePool); i++ {
|
|
|
|
+ tmp := Aggr[any](make([]any, 0, 2))
|
|
|
|
+ pagePool <- &tmp
|
|
|
|
+ }
|
|
|
|
+ pager := NewPager(client, pagePool)
|
|
|
|
+ var elem int
|
|
|
|
+ var i int
|
|
|
|
+ for p := range pager.IterPages() {
|
|
|
|
+ elem = p.Elems()[0].(int)
|
|
|
|
+ i++
|
|
|
|
+ pagePool <- p
|
|
|
|
+ }
|
|
|
|
+ if err := pager.LastErr(); err != nil {
|
|
|
|
+ t.Errorf("unexpected error in pager: %v", err)
|
|
|
|
+ }
|
|
|
|
+ if elem != 3 {
|
|
|
|
+ t.Errorf("unexpected value: '%v'", elem)
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
func TestClientReturnsFewerPagesThanExpected(t *testing.T) {
|
|
func TestClientReturnsFewerPagesThanExpected(t *testing.T) {
|
|
pageSize := 1
|
|
pageSize := 1
|
|
itemCount := pageSize + 1
|
|
itemCount := pageSize + 1
|