1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.eclipse.aether.util;
20
21 import org.junit.jupiter.api.Test;
22
23 import static org.eclipse.aether.util.StringDigestUtil.fromHexString;
24 import static org.eclipse.aether.util.StringDigestUtil.toHexString;
25 import static org.junit.jupiter.api.Assertions.*;
26
27 public class StringDigestUtilTest {
28 @Test
29 void sha1Simple() {
30 assertEquals(StringDigestUtil.sha1(null), "da39a3ee5e6b4b0d3255bfef95601890afd80709");
31 assertEquals(StringDigestUtil.sha1(""), "da39a3ee5e6b4b0d3255bfef95601890afd80709");
32 assertEquals(StringDigestUtil.sha1("something"), "1af17e73721dbe0c40011b82ed4bb1a7dbe3ce29");
33 assertEquals(StringDigestUtil.sha1().update(null).digest(), "da39a3ee5e6b4b0d3255bfef95601890afd80709");
34 assertEquals(StringDigestUtil.sha1().update("").digest(), "da39a3ee5e6b4b0d3255bfef95601890afd80709");
35 assertEquals(StringDigestUtil.sha1().update("something").digest(), "1af17e73721dbe0c40011b82ed4bb1a7dbe3ce29");
36 assertEquals(
37 StringDigestUtil.sha1().update("some").update("thing").digest(),
38 "1af17e73721dbe0c40011b82ed4bb1a7dbe3ce29");
39 }
40
41 @Test
42 void sha1Manual() {
43 assertEquals(new StringDigestUtil("SHA-1").digest(), "da39a3ee5e6b4b0d3255bfef95601890afd80709");
44 assertEquals(new StringDigestUtil("SHA-1").update("").digest(), "da39a3ee5e6b4b0d3255bfef95601890afd80709");
45 assertEquals(
46 new StringDigestUtil("SHA-1").update("something").digest(), "1af17e73721dbe0c40011b82ed4bb1a7dbe3ce29");
47 assertEquals(new StringDigestUtil("SHA-1").update(null).digest(), "da39a3ee5e6b4b0d3255bfef95601890afd80709");
48 assertEquals(new StringDigestUtil("SHA-1").update("").digest(), "da39a3ee5e6b4b0d3255bfef95601890afd80709");
49 assertEquals(
50 new StringDigestUtil("SHA-1").update("something").digest(), "1af17e73721dbe0c40011b82ed4bb1a7dbe3ce29");
51 assertEquals(
52 new StringDigestUtil("SHA-1").update("some").update("thing").digest(),
53 "1af17e73721dbe0c40011b82ed4bb1a7dbe3ce29");
54 }
55
56 @Test
57 void md5Manual() {
58 assertEquals(new StringDigestUtil("MD5").digest(), "d41d8cd98f00b204e9800998ecf8427e");
59 assertEquals(new StringDigestUtil("MD5").update("").digest(), "d41d8cd98f00b204e9800998ecf8427e");
60 assertEquals(new StringDigestUtil("MD5").update("something").digest(), "437b930db84b8079c2dd804a71936b5f");
61 assertEquals(new StringDigestUtil("MD5").update(null).digest(), "d41d8cd98f00b204e9800998ecf8427e");
62 assertEquals(new StringDigestUtil("MD5").update("").digest(), "d41d8cd98f00b204e9800998ecf8427e");
63 assertEquals(new StringDigestUtil("MD5").update("something").digest(), "437b930db84b8079c2dd804a71936b5f");
64 assertEquals(
65 new StringDigestUtil("MD5").update("some").update("thing").digest(),
66 "437b930db84b8079c2dd804a71936b5f");
67 }
68
69 @Test
70 void unsupportedAlg() {
71 try {
72 new StringDigestUtil("FOO-BAR");
73 fail("StringDigestUtil should throw");
74 } catch (IllegalStateException e) {
75
76 }
77 }
78
79 @Test
80 void testToHexString() {
81 assertNull(toHexString(null));
82 assertEquals("", toHexString(new byte[] {}));
83 assertEquals("00", toHexString(new byte[] {0}));
84 assertEquals("ff", toHexString(new byte[] {-1}));
85 assertEquals("00017f", toHexString(new byte[] {0, 1, 127}));
86 }
87
88 @Test
89 void testFromHexString() {
90 assertNull(fromHexString(null));
91 assertArrayEquals(new byte[] {}, fromHexString(""));
92 assertArrayEquals(new byte[] {0}, fromHexString("00"));
93 assertArrayEquals(new byte[] {-1}, fromHexString("ff"));
94 assertArrayEquals(new byte[] {0, 1, 127}, fromHexString("00017f"));
95 }
96 }