package cursortoken import ( "git.blackforestbytes.com/BlackForestBytes/goext/tst" "testing" ) func TestPageToken(t *testing.T) { tok := Page(5) tst.AssertEqual(t, tok.Token(), "$5") tst.AssertFalse(t, tok.IsEnd()) tst.AssertFalse(t, tok.IsStart()) } func TestPageTokenOne(t *testing.T) { tok := Page(1) tst.AssertEqual(t, tok.Token(), "$1") tst.AssertFalse(t, tok.IsEnd()) tst.AssertTrue(t, tok.IsStart()) } func TestPageTokenLarge(t *testing.T) { tok := Page(123456) tst.AssertEqual(t, tok.Token(), "$123456") } func TestPageTokenZero(t *testing.T) { tok := Page(0) tst.AssertEqual(t, tok.Token(), "$0") tst.AssertFalse(t, tok.IsEnd()) tst.AssertFalse(t, tok.IsStart()) } func TestPageEndToken(t *testing.T) { tok := PageEnd() tst.AssertEqual(t, tok.Token(), "$end") tst.AssertTrue(t, tok.IsEnd()) tst.AssertFalse(t, tok.IsStart()) } func TestPaginatedStartMode(t *testing.T) { tok := CTPaginated{Mode: CTMStart, Page: 0} tst.AssertEqual(t, tok.Token(), "$1") tst.AssertTrue(t, tok.IsStart()) tst.AssertFalse(t, tok.IsEnd()) } func TestPaginatedEndMode(t *testing.T) { tok := CTPaginated{Mode: CTMEnd, Page: 99} tst.AssertEqual(t, tok.Token(), "$end") tst.AssertTrue(t, tok.IsEnd()) } func TestPaginatedRoundTrip(t *testing.T) { for _, page := range []int{2, 3, 7, 100, 9999} { tok := Page(page) decoded, err := Decode(tok.Token()) tst.AssertNoErr(t, err) tst.AssertEqual(t, decoded.Token(), tok.Token()) } }