diff options
Diffstat (limited to 'libraries/spongycastle/core/src/test/java/org/spongycastle/asn1/test/ProfessionInfoUnitTest.java')
-rw-r--r-- | libraries/spongycastle/core/src/test/java/org/spongycastle/asn1/test/ProfessionInfoUnitTest.java | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/libraries/spongycastle/core/src/test/java/org/spongycastle/asn1/test/ProfessionInfoUnitTest.java b/libraries/spongycastle/core/src/test/java/org/spongycastle/asn1/test/ProfessionInfoUnitTest.java new file mode 100644 index 000000000..d8fe671a2 --- /dev/null +++ b/libraries/spongycastle/core/src/test/java/org/spongycastle/asn1/test/ProfessionInfoUnitTest.java @@ -0,0 +1,118 @@ +package org.spongycastle.asn1.test; + +import java.io.IOException; + +import org.spongycastle.asn1.ASN1InputStream; +import org.spongycastle.asn1.ASN1ObjectIdentifier; +import org.spongycastle.asn1.ASN1Sequence; +import org.spongycastle.asn1.DERObjectIdentifier; +import org.spongycastle.asn1.DEROctetString; +import org.spongycastle.asn1.isismtt.x509.NamingAuthority; +import org.spongycastle.asn1.isismtt.x509.ProcurationSyntax; +import org.spongycastle.asn1.isismtt.x509.ProfessionInfo; +import org.spongycastle.asn1.x500.DirectoryString; + +public class ProfessionInfoUnitTest + extends ASN1UnitTest +{ + public String getName() + { + return "ProfessionInfo"; + } + + public void performTest() + throws Exception + { + NamingAuthority auth = new NamingAuthority(new DERObjectIdentifier("1.2.3"), "url", new DirectoryString("fred")); + DirectoryString[] professionItems = { new DirectoryString("substitution") }; + ASN1ObjectIdentifier[] professionOids = { new ASN1ObjectIdentifier("1.2.3") }; + String registrationNumber = "12345"; + DEROctetString addProfInfo = new DEROctetString(new byte[20]); + + ProfessionInfo info = new ProfessionInfo(auth, professionItems, professionOids, registrationNumber, addProfInfo); + + checkConstruction(info, auth, professionItems, professionOids, registrationNumber, addProfInfo); + + info = new ProfessionInfo(null, professionItems, professionOids, registrationNumber, addProfInfo); + + checkConstruction(info, null, professionItems, professionOids, registrationNumber, addProfInfo); + + info = new ProfessionInfo(auth, professionItems, null, registrationNumber, addProfInfo); + + checkConstruction(info, auth, professionItems, null, registrationNumber, addProfInfo); + + info = new ProfessionInfo(auth, professionItems, professionOids, null, addProfInfo); + + checkConstruction(info, auth, professionItems, professionOids, null, addProfInfo); + + info = new ProfessionInfo(auth, professionItems, professionOids, registrationNumber, null); + + checkConstruction(info, auth, professionItems, professionOids, registrationNumber, null); + + info = ProfessionInfo.getInstance(null); + + if (info != null) + { + fail("null getInstance() failed."); + } + + try + { + ProcurationSyntax.getInstance(new Object()); + + fail("getInstance() failed to detect bad object."); + } + catch (IllegalArgumentException e) + { + // expected + } + } + + private void checkConstruction( + ProfessionInfo profInfo, + NamingAuthority auth, + DirectoryString[] professionItems, + DERObjectIdentifier[] professionOids, + String registrationNumber, + DEROctetString addProfInfo) + throws IOException + { + checkValues(profInfo, auth, professionItems, professionOids, registrationNumber, addProfInfo); + + profInfo = ProfessionInfo.getInstance(profInfo); + + checkValues(profInfo, auth, professionItems, professionOids, registrationNumber, addProfInfo); + + ASN1InputStream aIn = new ASN1InputStream(profInfo.toASN1Object().getEncoded()); + + ASN1Sequence seq = (ASN1Sequence)aIn.readObject(); + + profInfo = ProfessionInfo.getInstance(seq); + + checkValues(profInfo, auth, professionItems, professionOids, registrationNumber, addProfInfo); + } + + private void checkValues( + ProfessionInfo profInfo, + NamingAuthority auth, + DirectoryString[] professionItems, + DERObjectIdentifier[] professionOids, + String registrationNumber, + DEROctetString addProfInfo) + { + checkOptionalField("auth", auth, profInfo.getNamingAuthority()); + checkMandatoryField("professionItems", professionItems[0], profInfo.getProfessionItems()[0]); + if (professionOids != null) + { + checkOptionalField("professionOids", professionOids[0], profInfo.getProfessionOIDs()[0]); + } + checkOptionalField("registrationNumber", registrationNumber, profInfo.getRegistrationNumber()); + checkOptionalField("addProfessionInfo", addProfInfo, profInfo.getAddProfessionInfo()); + } + + public static void main( + String[] args) + { + runTest(new ProfessionInfoUnitTest()); + } +} |