tech.ydb.shaded.bouncycastle.asn1.test.ProfessionInfoUnitTest Maven / Gradle / Ivy
package org.bouncycastle.asn1.test;
import java.io.IOException;
import org.bouncycastle.asn1.ASN1InputStream;
import org.bouncycastle.asn1.ASN1ObjectIdentifier;
import org.bouncycastle.asn1.ASN1Sequence;
import org.bouncycastle.asn1.DEROctetString;
import org.bouncycastle.asn1.isismtt.x509.NamingAuthority;
import org.bouncycastle.asn1.isismtt.x509.ProcurationSyntax;
import org.bouncycastle.asn1.isismtt.x509.ProfessionInfo;
import org.bouncycastle.asn1.x500.DirectoryString;
public class ProfessionInfoUnitTest
    extends ASN1UnitTest
{
    public String getName()
    {
        return "ProfessionInfo";
    }
    public void performTest()
        throws Exception
    {
        NamingAuthority auth =  new NamingAuthority(new ASN1ObjectIdentifier("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,
        ASN1ObjectIdentifier[] 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.toASN1Primitive().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,
        ASN1ObjectIdentifier[] 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());
    }
}
    © 2015 - 2025 Weber Informatics LLC | Privacy Policy