View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *   http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
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              // good
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  }