-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathmock.go
50 lines (41 loc) · 844 Bytes
/
mock.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
package retraced
import (
"errors"
"sync"
)
type MockEventsPager struct {
currentPage int
Pages [][]*EventNode
sync.Mutex
}
func (p *MockEventsPager) NextPage() error {
p.Lock()
defer p.Unlock()
if !p.HasNextPage() {
return errors.New("no next page")
}
p.currentPage++
return nil
}
func (p *MockEventsPager) TotalPages() int {
return len(p.Pages)
}
func (p *MockEventsPager) HasNextPage() bool {
return p.currentPage < len(p.Pages)-1
}
func (p *MockEventsPager) HasPreviousPage() bool {
return p.currentPage > 0
}
func (p *MockEventsPager) CurrentPageNumber() int {
return p.currentPage
}
func (p *MockEventsPager) CurrentResults() []*EventNode {
return p.Pages[p.currentPage]
}
func (p *MockEventsPager) TotalCount() int {
var total int
for _, page := range p.Pages {
total += len(page)
}
return total
}