aboutsummaryrefslogtreecommitdiff
path: root/src/test/ui/UtilsTest.java
diff options
context:
space:
mode:
authorYuuta Liang <yuutaw@students.cs.ubc.ca>2023-10-14 05:12:06 +0800
committerYuuta Liang <yuutaw@students.cs.ubc.ca>2023-10-14 05:12:06 +0800
commit0bcc057e741af3fbc108f42b75f9d42f48f6a51e (patch)
treed638c81c0778554a8902efc59000e61db74060be /src/test/ui/UtilsTest.java
parentf369da34cf9aca151df0150d90e651e6a88ee700 (diff)
downloadjca-0bcc057e741af3fbc108f42b75f9d42f48f6a51e.tar
jca-0bcc057e741af3fbc108f42b75f9d42f48f6a51e.tar.gz
jca-0bcc057e741af3fbc108f42b75f9d42f48f6a51e.tar.bz2
jca-0bcc057e741af3fbc108f42b75f9d42f48f6a51e.zip
Implement the CA
Signed-off-by: Yuuta Liang <yuutaw@students.cs.ubc.ca>
Diffstat (limited to 'src/test/ui/UtilsTest.java')
-rw-r--r--src/test/ui/UtilsTest.java67
1 files changed, 67 insertions, 0 deletions
diff --git a/src/test/ui/UtilsTest.java b/src/test/ui/UtilsTest.java
new file mode 100644
index 0000000..a7b4a52
--- /dev/null
+++ b/src/test/ui/UtilsTest.java
@@ -0,0 +1,67 @@
+package ui;
+
+import model.asn1.exceptions.ParseException;
+import org.junit.jupiter.api.Test;
+
+import java.nio.charset.StandardCharsets;
+import java.util.stream.IntStream;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+public class UtilsTest {
+ @Test
+ void testByteToByte() {
+ final byte[] primitive = new byte[]{ 1, 1, 4, 5, 1, 4 };
+ final Byte[] boxed = new Byte[]{ 1, 1, 4, 5, 1, 4 };
+ assertArrayEquals(primitive, Utils.byteToByte(boxed));
+ assertArrayEquals(boxed, Utils.byteToByte(primitive));
+ }
+
+ @Test
+ void testBytesToInt() throws ParseException {
+ assertEquals(1, Utils.bytesToInt(new Byte[]{ 1 }));
+ assertEquals(257, Utils.bytesToInt(new Byte[]{ 1, 1 }));
+ assertThrows(ParseException.class, () -> Utils.bytesToInt(new Byte[]{ 1, -1, -1, -1, -1 }));
+ }
+
+ @Test
+ void testValToByte() {
+ assertArrayEquals(new Byte[]{ 0 },
+ Utils.valToByte(0));
+ assertArrayEquals(new Byte[]{ 1 },
+ Utils.valToByte(1));
+ assertArrayEquals(new Byte[]{ 1, 1 },
+ Utils.valToByte(257));
+ assertArrayEquals(new Byte[]{ -1 },
+ Utils.valToByte(-1));
+ }
+
+ @Test
+ void testParsePEM() throws ParseException {
+ assertArrayEquals(IntStream.range(0, 48).mapToObj(i -> (byte) 1).toArray(Byte[]::new),
+ Utils.parsePEM(Utils.byteToByte(("-----BEGIN BLABLA-----\n" +
+ "AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB\n" +
+ "-----END BLABLA-----").getBytes(StandardCharsets.UTF_8)),
+ "BLABLA"));
+ assertThrows(ParseException.class, () -> {
+ Utils.parsePEM(Utils.byteToByte(("-----BEGIN BLABLA-----\n" +
+ "AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB\n" +
+ "-----END BLABLA-----").getBytes(StandardCharsets.UTF_8)),
+ "LALA");
+ });
+ assertThrows(ParseException.class, () -> {
+ Utils.parsePEM(Utils.byteToByte(("-----BEGIN BLABLA-----" +
+ "AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB" +
+ "-----END BLABLA-----").getBytes(StandardCharsets.UTF_8)),
+ "BLABLA");
+ });
+ }
+
+ @Test
+ void testToPEM() {
+ assertEquals("-----BEGIN ABC-----\n" +
+ "AQ==\n" +
+ "-----END ABC-----",
+ Utils.toPEM(new Byte[]{ 0x1 }, "ABC"));
+ }
+}