diff options
Diffstat (limited to 'core/src/test/java/org/spongycastle/asn1/test/DeclarationOfMajorityUnitTest.java')
-rw-r--r-- | core/src/test/java/org/spongycastle/asn1/test/DeclarationOfMajorityUnitTest.java | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/core/src/test/java/org/spongycastle/asn1/test/DeclarationOfMajorityUnitTest.java b/core/src/test/java/org/spongycastle/asn1/test/DeclarationOfMajorityUnitTest.java new file mode 100644 index 00000000..ec0d3974 --- /dev/null +++ b/core/src/test/java/org/spongycastle/asn1/test/DeclarationOfMajorityUnitTest.java @@ -0,0 +1,90 @@ +package org.spongycastle.asn1.test; + +import java.io.IOException; + +import org.spongycastle.asn1.ASN1GeneralizedTime; +import org.spongycastle.asn1.ASN1InputStream; +import org.spongycastle.asn1.DERTaggedObject; +import org.spongycastle.asn1.isismtt.x509.DeclarationOfMajority; + +public class DeclarationOfMajorityUnitTest + extends ASN1UnitTest +{ + public String getName() + { + return "DeclarationOfMajority"; + } + + public void performTest() + throws Exception + { + ASN1GeneralizedTime dateOfBirth = new ASN1GeneralizedTime("20070315173729Z"); + DeclarationOfMajority decl = new DeclarationOfMajority(dateOfBirth); + + checkConstruction(decl, DeclarationOfMajority.dateOfBirth, dateOfBirth, -1); + + decl = new DeclarationOfMajority(6); + + checkConstruction(decl, DeclarationOfMajority.notYoungerThan, null, 6); + + decl = DeclarationOfMajority.getInstance(null); + + if (decl != null) + { + fail("null getInstance() failed."); + } + + try + { + DeclarationOfMajority.getInstance(new Object()); + + fail("getInstance() failed to detect bad object."); + } + catch (IllegalArgumentException e) + { + // expected + } + } + + private void checkConstruction( + DeclarationOfMajority decl, + int type, + ASN1GeneralizedTime dateOfBirth, + int notYoungerThan) + throws IOException + { + checkValues(decl, type, dateOfBirth, notYoungerThan); + + decl = DeclarationOfMajority.getInstance(decl); + + checkValues(decl, type, dateOfBirth, notYoungerThan); + + ASN1InputStream aIn = new ASN1InputStream(decl.toASN1Object().getEncoded()); + + DERTaggedObject info = (DERTaggedObject)aIn.readObject(); + + decl = DeclarationOfMajority.getInstance(info); + + checkValues(decl, type, dateOfBirth, notYoungerThan); + } + + private void checkValues( + DeclarationOfMajority decl, + int type, + ASN1GeneralizedTime dateOfBirth, + int notYoungerThan) + { + checkMandatoryField("type", type, decl.getType()); + checkOptionalField("dateOfBirth", dateOfBirth, decl.getDateOfBirth()); + if (notYoungerThan != -1 && notYoungerThan != decl.notYoungerThan()) + { + fail("notYoungerThan mismatch"); + } + } + + public static void main( + String[] args) + { + runTest(new DeclarationOfMajorityUnitTest()); + } +} |