(t *testing.T)
| 142 | } |
| 143 | |
| 144 | func TestMapEncoder(t *testing.T) { |
| 145 | entries := []*MapEntryEncoder{ |
| 146 | GenerateMapEntry(func(keyE *Encoder, valueE *Encoder) { |
| 147 | keyE.EncodeBool(false) |
| 148 | valueE.EncodeTextString("false") |
| 149 | }), |
| 150 | GenerateMapEntry(func(keyE *Encoder, valueE *Encoder) { |
| 151 | keyE.EncodeInt(-1) |
| 152 | valueE.EncodeTextString("int -1") |
| 153 | }), |
| 154 | GenerateMapEntry(func(keyE *Encoder, valueE *Encoder) { |
| 155 | keyE.EncodeInt(10) |
| 156 | valueE.EncodeTextString("int 10") |
| 157 | }), |
| 158 | GenerateMapEntry(func(keyE *Encoder, valueE *Encoder) { |
| 159 | keyE.EncodeInt(100) |
| 160 | valueE.EncodeTextString("int 100") |
| 161 | }), |
| 162 | GenerateMapEntry(func(keyE *Encoder, valueE *Encoder) { |
| 163 | keyE.EncodeTextString("aa") |
| 164 | valueE.EncodeTextString("string \"aa\"") |
| 165 | }), |
| 166 | GenerateMapEntry(func(keyE *Encoder, valueE *Encoder) { |
| 167 | keyE.EncodeTextString("z") |
| 168 | valueE.EncodeTextString("string \"z\"") |
| 169 | }), |
| 170 | GenerateMapEntry(func(keyE *Encoder, valueE *Encoder) { |
| 171 | keyE.EncodeArrayHeader(1) |
| 172 | keyE.EncodeInt(-1) |
| 173 | valueE.EncodeTextString("array [-1]") |
| 174 | }), |
| 175 | GenerateMapEntry(func(keyE *Encoder, valueE *Encoder) { |
| 176 | keyE.EncodeArrayHeader(1) |
| 177 | keyE.EncodeInt(100) |
| 178 | valueE.EncodeTextString("array [100]") |
| 179 | }), |
| 180 | } |
| 181 | |
| 182 | // The keys in every map MUST be sorted in the bytewise lexicographic order of |
| 183 | // their canonical encodings. For example, the following keys are correctly |
| 184 | // sorted: |
| 185 | // 1. 10, encoded as 0A. |
| 186 | // 2. 100, encoded as 18 64. |
| 187 | // 3. -1, encoded as 20. |
| 188 | // 4. “z”, encoded as 61 7A. |
| 189 | // 5. “aa”, encoded as 62 61 61. |
| 190 | // 6. [100], encoded as 81 18 64. |
| 191 | // 7. [-1], encoded as 81 20. |
| 192 | // 8. false, encoded as F4. |
| 193 | exp := fromHex(strings.Join([]string{ |
| 194 | "A8", // length |
| 195 | "0A 66 69 6E 74 20 31 30", |
| 196 | "18 64 67 69 6E 74", |
| 197 | "20 31 30 30 20 66 69 6E 74 20 2D 31", |
| 198 | "61 7A 6A 73 74 72 69 6E 67 20 22 7A 22", |
| 199 | "62 61 61 6B 73 74 72 69 6E 67 20 22 61 61 22", |
| 200 | "81 18 64 6B 61 72 72 61 79 20 5B 31 30 30 5D", |
| 201 | "81 20 6A 61 72 72 61 79 20 5B 2D 31 5D", |
nothing calls this directly
no test coverage detected