53 lines
1.1 KiB
Go
53 lines
1.1 KiB
Go
|
package types
|
||
|
|
||
|
import "testing"
|
||
|
|
||
|
func TestNewPaginationTokenFromString(t *testing.T) {
|
||
|
shouldPass := map[string]PaginationToken{
|
||
|
"2": PaginationToken{
|
||
|
Type: PaginationTokenTypeStream,
|
||
|
PDUPosition: 2,
|
||
|
},
|
||
|
"s4": PaginationToken{
|
||
|
Type: PaginationTokenTypeStream,
|
||
|
PDUPosition: 4,
|
||
|
},
|
||
|
"s3_1": PaginationToken{
|
||
|
Type: PaginationTokenTypeStream,
|
||
|
PDUPosition: 3,
|
||
|
EDUTypingPosition: 1,
|
||
|
},
|
||
|
"t3_1_4": PaginationToken{
|
||
|
Type: PaginationTokenTypeTopology,
|
||
|
PDUPosition: 3,
|
||
|
EDUTypingPosition: 1,
|
||
|
},
|
||
|
}
|
||
|
|
||
|
shouldFail := []string{
|
||
|
"",
|
||
|
"s_1",
|
||
|
"s_",
|
||
|
"a3_4",
|
||
|
"b",
|
||
|
"b-1",
|
||
|
"-4",
|
||
|
}
|
||
|
|
||
|
for test, expected := range shouldPass {
|
||
|
result, err := NewPaginationTokenFromString(test)
|
||
|
if err != nil {
|
||
|
t.Error(err)
|
||
|
}
|
||
|
if *result != expected {
|
||
|
t.Errorf("expected %v but got %v", expected.String(), result.String())
|
||
|
}
|
||
|
}
|
||
|
|
||
|
for _, test := range shouldFail {
|
||
|
if _, err := NewPaginationTokenFromString(test); err == nil {
|
||
|
t.Errorf("input '%v' should have errored but didn't", test)
|
||
|
}
|
||
|
}
|
||
|
}
|