aboutsummaryrefslogtreecommitdiffstats
path: root/libraries/spongycastle/core/src/test/java/org/spongycastle/asn1/test/IssuingDistributionPointUnitTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/spongycastle/core/src/test/java/org/spongycastle/asn1/test/IssuingDistributionPointUnitTest.java')
-rw-r--r--libraries/spongycastle/core/src/test/java/org/spongycastle/asn1/test/IssuingDistributionPointUnitTest.java122
1 files changed, 122 insertions, 0 deletions
diff --git a/libraries/spongycastle/core/src/test/java/org/spongycastle/asn1/test/IssuingDistributionPointUnitTest.java b/libraries/spongycastle/core/src/test/java/org/spongycastle/asn1/test/IssuingDistributionPointUnitTest.java
new file mode 100644
index 000000000..6453d7079
--- /dev/null
+++ b/libraries/spongycastle/core/src/test/java/org/spongycastle/asn1/test/IssuingDistributionPointUnitTest.java
@@ -0,0 +1,122 @@
+package org.spongycastle.asn1.test;
+
+import java.io.IOException;
+
+import org.spongycastle.asn1.ASN1Primitive;
+import org.spongycastle.asn1.ASN1Sequence;
+import org.spongycastle.asn1.x509.DistributionPointName;
+import org.spongycastle.asn1.x509.GeneralName;
+import org.spongycastle.asn1.x509.GeneralNames;
+import org.spongycastle.asn1.x509.IssuingDistributionPoint;
+import org.spongycastle.asn1.x509.ReasonFlags;
+import org.spongycastle.asn1.x509.X509Name;
+import org.spongycastle.util.test.SimpleTest;
+
+public class IssuingDistributionPointUnitTest
+ extends SimpleTest
+{
+ public String getName()
+ {
+ return "IssuingDistributionPoint";
+ }
+
+ public void performTest()
+ throws Exception
+ {
+ DistributionPointName name = new DistributionPointName(
+ new GeneralNames(new GeneralName(new X509Name("cn=test"))));
+ ReasonFlags reasonFlags = new ReasonFlags(ReasonFlags.cACompromise);
+
+ checkPoint(6, name, true, true, reasonFlags, true, true);
+
+ checkPoint(2, name, false, false, reasonFlags, false, false);
+
+ checkPoint(0, null, false, false, null, false, false);
+
+ try
+ {
+ IssuingDistributionPoint.getInstance(new Object());
+
+ fail("getInstance() failed to detect bad object.");
+ }
+ catch (IllegalArgumentException e)
+ {
+ // expected
+ }
+ }
+
+ private void checkPoint(
+ int size,
+ DistributionPointName distributionPoint,
+ boolean onlyContainsUserCerts,
+ boolean onlyContainsCACerts,
+ ReasonFlags onlySomeReasons,
+ boolean indirectCRL,
+ boolean onlyContainsAttributeCerts)
+ throws IOException
+ {
+ IssuingDistributionPoint point = new IssuingDistributionPoint(distributionPoint, onlyContainsUserCerts, onlyContainsCACerts, onlySomeReasons, indirectCRL, onlyContainsAttributeCerts);
+
+ checkValues(point, distributionPoint, onlyContainsUserCerts, onlyContainsCACerts, onlySomeReasons, indirectCRL, onlyContainsAttributeCerts);
+
+ ASN1Sequence seq = ASN1Sequence.getInstance(ASN1Primitive.fromByteArray(point.getEncoded()));
+
+ if (seq.size() != size)
+ {
+ fail("size mismatch");
+ }
+
+ point = IssuingDistributionPoint.getInstance(seq);
+
+ checkValues(point, distributionPoint, onlyContainsUserCerts, onlyContainsCACerts, onlySomeReasons, indirectCRL, onlyContainsAttributeCerts);
+ }
+
+ private void checkValues(IssuingDistributionPoint point, DistributionPointName distributionPoint, boolean onlyContainsUserCerts, boolean onlyContainsCACerts, ReasonFlags onlySomeReasons, boolean indirectCRL, boolean onlyContainsAttributeCerts)
+ {
+ if (point.onlyContainsUserCerts() != onlyContainsUserCerts)
+ {
+ fail("mismatch on onlyContainsUserCerts");
+ }
+
+ if (point.onlyContainsCACerts() != onlyContainsCACerts)
+ {
+ fail("mismatch on onlyContainsCACerts");
+ }
+
+ if (point.isIndirectCRL() != indirectCRL)
+ {
+ fail("mismatch on indirectCRL");
+ }
+
+ if (point.onlyContainsAttributeCerts() != onlyContainsAttributeCerts)
+ {
+ fail("mismatch on onlyContainsAttributeCerts");
+ }
+
+ if (!isEquiv(onlySomeReasons, point.getOnlySomeReasons()))
+ {
+ fail("mismatch on onlySomeReasons");
+ }
+
+ if (!isEquiv(distributionPoint, point.getDistributionPoint()))
+ {
+ fail("mismatch on distributionPoint");
+ }
+ }
+
+ private boolean isEquiv(Object o1, Object o2)
+ {
+ if (o1 == null)
+ {
+ return o2 == null;
+ }
+
+ return o1.equals(o2);
+ }
+
+ public static void main(
+ String[] args)
+ {
+ runTest(new IssuingDistributionPointUnitTest());
+ }
+} \ No newline at end of file