Skip to content

Commit 0d27d97

Browse files
committed
Merge branch '2.9'
2 parents 994614a + abf15a6 commit 0d27d97

File tree

1 file changed

+25
-35
lines changed

1 file changed

+25
-35
lines changed

cbor/src/test/java/com/fasterxml/jackson/dataformat/cbor/MapAndArrayTest.java

Lines changed: 25 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,11 @@ public void testCborBasicMap() throws IOException {
3232
gen.close();
3333

3434
byte [] bytes = payloadOut.toByteArray();
35-
String hexData = javax.xml.bind.DatatypeConverter.printHexBinary(bytes);
35+
String hexData = asHex(bytes);
3636

3737
assertTrue(hexData.equalsIgnoreCase("bf6346756ef563416d7421ff"));
3838
}
39-
39+
4040
public void testCborUnsizedMap() throws IOException {
4141
/* {_"Fun": true, 1504: -33, 1505: false, 13171233041: 22}
4242
@@ -72,8 +72,7 @@ public void testCborUnsizedMap() throws IOException {
7272
gen.writeNumber(22);
7373
gen.close();
7474

75-
byte[] bytes = payloadOut.toByteArray();
76-
String hexData = javax.xml.bind.DatatypeConverter.printHexBinary(bytes);
75+
String hexData = asHex(payloadOut.toByteArray());
7776

7877
assertTrue(hexData.equalsIgnoreCase("bf6346756ef51905e038201905e1f41b000000031111111116ff"));
7978
}
@@ -125,9 +124,7 @@ public void testCborSizedMap() throws IOException {
125124
gen.writeEndObject();
126125
gen.close();
127126

128-
byte[] bytes = payloadOut.toByteArray();
129-
String hexData = javax.xml.bind.DatatypeConverter.printHexBinary(bytes);
130-
127+
String hexData = asHex(payloadOut.toByteArray());
131128
assertTrue(hexData.equalsIgnoreCase("A51905e038201905e1f41905E26346756e63416d748202031905E3F4"));
132129
}
133130

@@ -177,9 +174,8 @@ public void testCborSizedMapWithParserTest() throws IOException {
177174
gen.writeEndObject();
178175
gen.close();
179176

180-
byte[] bytes = payloadOut.toByteArray();
181-
String hexData = javax.xml.bind.DatatypeConverter.printHexBinary(bytes);
182-
177+
final byte[] bytes = payloadOut.toByteArray();
178+
String hexData = asHex(bytes);
183179
assertTrue(hexData.equalsIgnoreCase("BF1905e038201905e1f41905E26346756e1905E39F616303F4FF1B0000000311111111F4FF"));
184180

185181
/*
@@ -211,9 +207,7 @@ public void testCborUnsizedMapWithArrayAsKey() throws IOException {
211207
gen.writeEndArray();
212208
gen.close();
213209

214-
byte[] bytes = payloadOut.toByteArray();
215-
String hexData = javax.xml.bind.DatatypeConverter.printHexBinary(bytes);
216-
210+
String hexData = asHex(payloadOut.toByteArray());
217211
assertTrue(hexData.equalsIgnoreCase("bf61610161629f0203ffff"));
218212
}
219213

@@ -273,9 +267,7 @@ public void testCborMultilevelMapWithMultilevelArrays() throws IOException {
273267
gen.writeEndObject();
274268
gen.close();
275269

276-
byte[] bytes = payloadOut.toByteArray();
277-
String hexData = javax.xml.bind.DatatypeConverter.printHexBinary(bytes);
278-
270+
String hexData = asHex(payloadOut.toByteArray());
279271
assertTrue(hexData.equalsIgnoreCase("a461610161629f0203ff1905dd856346756e182c9f182d182e82182f1830ffa2636b6579bf67636f6d706c65781832ff183362353218351905debf18366576616c75651837a21838183d1839183eff"));
280272
}
281273

@@ -309,9 +301,7 @@ public void testCborUnsizedMapWithAllInside() throws IOException {
309301
gen.writeEndObject();
310302
gen.close();
311303

312-
byte[] bytes = payloadOut.toByteArray();
313-
String hexData = javax.xml.bind.DatatypeConverter.printHexBinary(bytes);
314-
304+
String hexData = asHex(payloadOut.toByteArray());
315305
assertTrue(hexData.equalsIgnoreCase("BF1905e0A11909C838201905e1f41905E26346756e1905E39F616303F4FF1B0000000311111111F4FF"));
316306
}
317307

@@ -337,9 +327,7 @@ public void testCborArraysInArray() throws IOException {
337327
gen.writeEndArray();
338328
gen.close();
339329

340-
byte[] bytes = payloadOut.toByteArray();
341-
String hexData = javax.xml.bind.DatatypeConverter.printHexBinary(bytes);
342-
330+
String hexData = asHex(payloadOut.toByteArray());
343331
assertTrue(hexData.equalsIgnoreCase("9f018202039f0405ffff"));
344332
}
345333

@@ -384,9 +372,7 @@ public void testCborArraysInUnsizedArray() throws IOException {
384372
gen.writeEndArray();
385373
gen.close();
386374

387-
byte[] bytes = payloadOut.toByteArray();
388-
String hexData = javax.xml.bind.DatatypeConverter.printHexBinary(bytes);
389-
375+
String hexData = asHex(payloadOut.toByteArray());
390376
assertTrue(hexData.equalsIgnoreCase("9f018202039f0405ff8306079f080808820101ff8209099f0001ffff"));
391377
}
392378

@@ -428,9 +414,7 @@ public void testCborArraysInSizedArray() throws IOException {
428414
gen.writeEndArray(); // [1,[_2,3,4,_][_4,[5,[_6,6,6]]],[7,8,[_9,10]]]
429415
gen.close();
430416

431-
byte[] bytes = payloadOut.toByteArray();
432-
String hexData = javax.xml.bind.DatatypeConverter.printHexBinary(bytes);
433-
417+
String hexData = asHex(payloadOut.toByteArray());
434418
assertTrue(hexData.equalsIgnoreCase("84019f020304ff9f0482059f060606ffff8307089f090aff"));
435419
}
436420

@@ -471,9 +455,7 @@ public void testCborSizedArray() throws IOException {
471455
gen.writeEndArray();
472456
gen.close();
473457

474-
byte[] bytes = payloadOut.toByteArray();
475-
String hexData = javax.xml.bind.DatatypeConverter.printHexBinary(bytes);
476-
458+
String hexData = asHex(payloadOut.toByteArray());
477459
assertTrue(hexData.equalsIgnoreCase("8318219901000102030405060708090A0B0C0D0E0F101112131415161718181819181A181B181C181D181E181F1820182118221823182418251826182718281829182A182B182C182D182E182F1830183118321833183418351836183718381839183A183B183C183D183E183F1840184118421843184418451846184718481849184A184B184C184D184E184F1850185118521853185418551856185718581859185A185B185C185D185E185F1860186118621863186418651866186718681869186A186B186C186D186E186F1870187118721873187418751876187718781879187A187B187C187D187E187F1880188118821883188418851886188718881889188A188B188C188D188E188F1890189118921893189418951896189718981899189A189B189C189D189E189F18A018A118A218A318A418A518A618A718A818A918AA18AB18AC18AD18AE18AF18B018B118B218B318B418B518B618B718B818B918BA18BB18BC18BD18BE18BF18C018C118C218C318C418C518C618C718C818C918CA18CB18CC18CD18CE18CF18D018D118D218D318D418D518D618D718D818D918DA18DB18DC18DD18DE18DF18E018E118E218E318E418E518E618E718E818E918EA18EB18EC18ED18EE18EF18F018F118F218F318F418F518F618F718F818F918FA18FB18FC18FD18FE18FF1901001822"));
478460
}
479461

@@ -496,9 +478,17 @@ public void testCborSizedArrayWithMap() throws IOException {
496478
gen.writeEndArray();
497479
gen.close();
498480

499-
byte[] bytes = payloadOut.toByteArray();
500-
String hexData = javax.xml.bind.DatatypeConverter.printHexBinary(bytes);
501-
481+
String hexData = asHex(payloadOut.toByteArray());
502482
assertTrue(hexData.equalsIgnoreCase("826161bf6162616361646165ff"));
503483
}
504-
}
484+
485+
private String asHex(byte[] data) {
486+
// Let's NOT rely on JDK converters as things get trickier with Java 9.
487+
// Brute force and ugly but will do
488+
StringBuilder sb = new StringBuilder(data.length * 2);
489+
for (int i = 0, end = data.length; i < end; ++i) {
490+
sb.append(String.format("%02x", data[i] & 0xFF));
491+
}
492+
return sb.toString();
493+
}
494+
}

0 commit comments

Comments
 (0)