62 lines
1.4 KiB
Go
62 lines
1.4 KiB
Go
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())
|
|
}
|
|
}
|