diff options
author | Yuuta Liang <yuutaw@student.cs.ubc.ca> | 2023-10-26 05:00:12 +0800 |
---|---|---|
committer | Yuuta Liang <yuutaw@student.cs.ubc.ca> | 2023-10-26 05:00:12 +0800 |
commit | 578b7d1db256d9a582cef45ae5d13d858a977416 (patch) | |
tree | b856cc5af32a0d649321f501f2966d013cade6c0 /src/test/persistence/DecoderTest.java | |
parent | f73bca3372a31f360d894dcbe8580cef779af739 (diff) | |
download | jca-578b7d1db256d9a582cef45ae5d13d858a977416.tar jca-578b7d1db256d9a582cef45ae5d13d858a977416.tar.gz jca-578b7d1db256d9a582cef45ae5d13d858a977416.tar.bz2 jca-578b7d1db256d9a582cef45ae5d13d858a977416.zip |
Add persistence
Signed-off-by: Yuuta Liang <yuutaw@student.cs.ubc.ca>
Diffstat (limited to 'src/test/persistence/DecoderTest.java')
-rw-r--r-- | src/test/persistence/DecoderTest.java | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/src/test/persistence/DecoderTest.java b/src/test/persistence/DecoderTest.java new file mode 100644 index 0000000..96f94e7 --- /dev/null +++ b/src/test/persistence/DecoderTest.java @@ -0,0 +1,81 @@ +package persistence; + +import model.asn1.exceptions.InvalidDBException; +import model.ca.CertificationAuthority; +import org.json.JSONObject; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import java.nio.file.Path; + +import static org.junit.jupiter.api.Assertions.*; + +public class DecoderTest { + private JSONObject invalidKey1; + private JSONObject invalidKey2; + private JSONObject invalidCert; + private JSONObject invalidTemplate1; + private JSONObject invalidTemplate2; + private JSONObject invalidSigned; + private JSONObject invalidRevoked1; + private JSONObject invalidRevoked2; + private JSONObject invalidLog; + + private JSONObject validMinimal; + private JSONObject validFull; + + @BeforeEach + void setup() { + invalidKey1 = FS.read(Path.of("data", "invalid_key_1.json")); + invalidKey2 = FS.read(Path.of("data", "invalid_key_2.json")); + invalidCert = FS.read(Path.of("data", "invalid_cert.json")); + invalidTemplate1 = FS.read(Path.of("data", "invalid_template_1.json")); + invalidTemplate2 = FS.read(Path.of("data", "invalid_template_2.json")); + invalidSigned = FS.read(Path.of("data", "invalid_signed.json")); + invalidRevoked1 = FS.read(Path.of("data", "invalid_revoked_1.json")); + invalidRevoked2 = FS.read(Path.of("data", "invalid_revoked_2.json")); + invalidLog = FS.read(Path.of("data", "invalid_log.json")); + + validMinimal = FS.read(Path.of("data", "valid_minimal.json")); + validFull = FS.read(Path.of("data", "valid_full.json")); + } + + @Test + void testDecodeSuccessful() throws Throwable { + CertificationAuthority ca = Decoder.decodeCA(validMinimal); + assertNull(ca.getPublicKey()); + assertEquals(CertificationAuthority.SERIAL_DEFAULT, ca.getSerial()); + assertEquals(0, ca.getTemplates().size()); + assertEquals(0, ca.getSigned().size()); + assertEquals(0, ca.getLogs().size()); + assertEquals(0, ca.getRevoked().size()); + assertNull(ca.getCertificate()); + + ca = Decoder.decodeCA(validFull); + assertNotNull(ca.getPublicKey()); + assertNotNull(ca.getKey()); + assertNotNull(ca.getCertificate()); + assertEquals(1, ca.getRevoked().size()); + assertEquals(2, ca.getSigned().size()); + assertEquals(7, ca.getLogs().size()); + } + + @Test + void testDecodeFail() throws Throwable { + assertThrows(InvalidDBException.class, () -> Decoder.decodeCA(invalidKey1)); + assertThrows(InvalidDBException.class, () -> Decoder.decodeCA(invalidKey2)); + assertThrows(InvalidDBException.class, () -> Decoder.decodeCA(invalidCert)); + assertThrows(InvalidDBException.class, () -> Decoder.decodeCA(invalidSigned)); + assertThrows(InvalidDBException.class, () -> Decoder.decodeCA(invalidTemplate1)); + assertThrows(InvalidDBException.class, () -> Decoder.decodeCA(invalidTemplate2)); + assertThrows(InvalidDBException.class, () -> Decoder.decodeCA(invalidLog)); + assertThrows(InvalidDBException.class, () -> Decoder.decodeCA(invalidRevoked1)); + assertThrows(InvalidDBException.class, () -> Decoder.decodeCA(invalidRevoked2)); + } + + @Test + void testEncode() throws Throwable { + assertTrue(validFull.similar(Decoder.encodeCA(Decoder.decodeCA(validFull)))); + assertTrue(validMinimal.similar(Decoder.encodeCA(Decoder.decodeCA(validMinimal)))); + } +} |