aboutsummaryrefslogtreecommitdiffstats
path: root/libraries/spongycastle/prov/src/test/java/org/spongycastle/jce/provider/test/X509CertificatePairTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/spongycastle/prov/src/test/java/org/spongycastle/jce/provider/test/X509CertificatePairTest.java')
-rw-r--r--libraries/spongycastle/prov/src/test/java/org/spongycastle/jce/provider/test/X509CertificatePairTest.java147
1 files changed, 147 insertions, 0 deletions
diff --git a/libraries/spongycastle/prov/src/test/java/org/spongycastle/jce/provider/test/X509CertificatePairTest.java b/libraries/spongycastle/prov/src/test/java/org/spongycastle/jce/provider/test/X509CertificatePairTest.java
new file mode 100644
index 000000000..dcfea2de2
--- /dev/null
+++ b/libraries/spongycastle/prov/src/test/java/org/spongycastle/jce/provider/test/X509CertificatePairTest.java
@@ -0,0 +1,147 @@
+package org.spongycastle.jce.provider.test;
+
+import org.spongycastle.jce.provider.BouncyCastleProvider;
+import org.spongycastle.util.test.SimpleTest;
+import org.spongycastle.x509.X509CertificatePair;
+
+import java.io.ByteArrayInputStream;
+import java.security.Security;
+import java.security.cert.CertificateEncodingException;
+import java.security.cert.CertificateFactory;
+import java.security.cert.X509Certificate;
+
+public class X509CertificatePairTest
+ extends SimpleTest
+{
+ public void performTest()
+ throws Exception
+ {
+ CertificateFactory cf = CertificateFactory.getInstance("X.509", "SC");
+
+ X509Certificate rootCert = (X509Certificate)cf.generateCertificate(
+ new ByteArrayInputStream(CertPathTest.rootCertBin));
+ X509Certificate interCert = (X509Certificate)cf.generateCertificate(
+ new ByteArrayInputStream(CertPathTest.interCertBin));
+ X509Certificate finalCert = (X509Certificate)cf.generateCertificate(
+ new ByteArrayInputStream(CertPathTest.finalCertBin));
+
+
+ X509CertificatePair pair1 = new X509CertificatePair(rootCert, interCert);
+ X509CertificatePair pair2 = new X509CertificatePair(rootCert, interCert);
+ X509CertificatePair pair3 = new X509CertificatePair(interCert, finalCert);
+ X509CertificatePair pair4 = new X509CertificatePair(rootCert, finalCert);
+ X509CertificatePair pair5 = new X509CertificatePair(rootCert, null);
+ X509CertificatePair pair6 = new X509CertificatePair(rootCert, null);
+ X509CertificatePair pair7 = new X509CertificatePair(null, rootCert);
+ X509CertificatePair pair8 = new X509CertificatePair(null, rootCert);
+
+ if (!pair1.equals(pair2))
+ {
+ fail("pair1 pair2 equality test");
+ }
+
+ if (!pair5.equals(pair6))
+ {
+ fail("pair1 pair2 equality test");
+ }
+
+ if (!pair7.equals(pair8))
+ {
+ fail("pair1 pair2 equality test");
+ }
+
+ if (pair1.equals(null))
+ {
+ fail("pair1 null equality test");
+ }
+
+ if (pair1.hashCode() != pair2.hashCode())
+ {
+ fail("pair1 pair2 hashCode equality test");
+ }
+
+ if (pair1.equals(pair3))
+ {
+ fail("pair1 pair3 inequality test");
+ }
+
+ if (pair1.equals(pair4))
+ {
+ fail("pair1 pair4 inequality test");
+ }
+
+ if (pair1.equals(pair5))
+ {
+ fail("pair1 pair5 inequality test");
+ }
+
+ if (pair1.equals(pair7))
+ {
+ fail("pair1 pair7 inequality test");
+ }
+
+ if (pair5.equals(pair1))
+ {
+ fail("pair5 pair1 inequality test");
+ }
+
+ if (pair7.equals(pair1))
+ {
+ fail("pair7 pair1 inequality test");
+ }
+
+ if (pair1.getForward() != rootCert)
+ {
+ fail("pair1 forward test");
+ }
+
+ if (pair1.getReverse() != interCert)
+ {
+ fail("pair1 reverse test");
+ }
+
+ if (!areEqual(pair1.getEncoded(), pair2.getEncoded()))
+ {
+ fail("encoding check");
+ }
+
+ pair4 = new X509CertificatePair(rootCert, TestUtils.createExceptionCertificate(false));
+
+ try
+ {
+ pair4.getEncoded();
+
+ fail("no exception on bad getEncoded()");
+ }
+ catch (CertificateEncodingException e)
+ {
+ // expected
+ }
+
+ pair4 = new X509CertificatePair(rootCert, TestUtils.createExceptionCertificate(true));
+
+ try
+ {
+ pair4.getEncoded();
+
+ fail("no exception on exception getEncoded()");
+ }
+ catch (CertificateEncodingException e)
+ {
+ // expected
+ }
+ }
+
+ public String getName()
+ {
+ return "X509CertificatePair";
+ }
+
+ public static void main(String[] args)
+ {
+ Security.addProvider(new BouncyCastleProvider());
+
+ runTest(new X509CertificatePairTest());
+ }
+
+}