(t *testing.T)
| 89 | } |
| 90 | |
| 91 | func TestDecodePaginationKey(t *testing.T) { |
| 92 | type testCase struct { |
| 93 | name string |
| 94 | input []byte |
| 95 | wantStates []byte |
| 96 | wantPrefix []byte |
| 97 | wantKey []byte |
| 98 | wantUnsol []byte |
| 99 | wantErr bool |
| 100 | wantErrString string |
| 101 | } |
| 102 | |
| 103 | tests := []testCase{ |
| 104 | { |
| 105 | name: "fail/too short key", |
| 106 | input: []byte{0x01, 0x02, 0x03, 0x04}, |
| 107 | wantErr: true, |
| 108 | }, |
| 109 | { |
| 110 | name: "fail/invalid checksum", |
| 111 | input: []byte{0x01, 0x02, 0x03, 0x04, 0x01, 65}, |
| 112 | wantErr: true, |
| 113 | wantErrString: "pagination: invalid key: invalid checksum, 0x01020304 != 0x591952b8", |
| 114 | }, |
| 115 | { |
| 116 | name: "fail/invalid states length", |
| 117 | input: []byte{0xA5, 0x05, 0xDF, 0x1B, 1}, |
| 118 | wantErr: true, |
| 119 | wantErrString: "pagination: invalid key: invalid state length", |
| 120 | }, |
| 121 | { |
| 122 | name: "fail/invalid prefix length", |
| 123 | input: []byte{0x90, 0x9F, 0xB2, 0xF2, 0x01, 0x01, 0x01}, |
| 124 | wantErr: true, |
| 125 | wantErrString: "pagination: invalid key: invalid state length", |
| 126 | }, |
| 127 | { |
| 128 | name: "fail/invalid key length", |
| 129 | input: []byte{0x07, 0x0D, 0x81, 0xEB, 0x01, 0x01, 0x01, 0x02, 0x01}, |
| 130 | wantErr: true, |
| 131 | wantErrString: "pagination: invalid key: invalid state length", |
| 132 | }, |
| 133 | { |
| 134 | name: "fail/invalid unsolicited length", |
| 135 | input: []byte{0x3A, 0xC6, 0xEF, 0x36, 0x01, 0x01, 0x01, 0x02, 0x01, 0x03, 0x01}, |
| 136 | wantErr: true, |
| 137 | wantErrString: "pagination: invalid key: invalid state length", |
| 138 | }, |
| 139 | { |
| 140 | name: "pass/without unsolicited", |
| 141 | input: makeTestKey(t, []byte{1}, []byte{2}, []byte{3}, nil), |
| 142 | wantStates: []byte{1}, |
| 143 | wantPrefix: []byte{2}, |
| 144 | wantKey: []byte{3}, |
| 145 | wantUnsol: nil, |
| 146 | wantErr: false, |
| 147 | wantErrString: "", |
| 148 | }, |
nothing calls this directly
no test coverage detected