package org.bouncycastle.asn1.test; import org.bouncycastle.asn1.ASN1Encodable; import org.bouncycastle.asn1.ASN1Integer; import org.bouncycastle.asn1.DERSequence; import org.bouncycastle.asn1.DERUTF8String; import org.bouncycastle.asn1.cmc.BodyPartID; import org.bouncycastle.asn1.cmc.BodyPartReference; import org.bouncycastle.asn1.cmc.ControlsProcessed; import org.bouncycastle.util.test.SimpleTest; public class ControlsProcessedTest extends SimpleTest { public static void main(String[] args) { runTest(new ControlsProcessedTest()); } public String getName() { return "ControlsProcessedTest"; } public void performTest() throws Exception { ControlsProcessed cp = new ControlsProcessed(new BodyPartReference[]{new BodyPartReference(new BodyPartID(12L)), new BodyPartReference(new BodyPartID(14L))}); byte[] b = cp.getEncoded(); ControlsProcessed cpResult = ControlsProcessed.getInstance(b); isTrue(cpResult.getBodyList().length == cp.getBodyList().length); isEquals(cpResult.getBodyList()[0], cp.getBodyList()[0]); isEquals(cpResult.getBodyList()[1], cp.getBodyList()[1]); // // Incorrect sequence size. // try { ControlsProcessed.getInstance(new DERSequence( new ASN1Encodable[]{new ASN1Integer(12L), new DERUTF8String("Monkeys") })); fail("Must accept only sequence length of 1"); } catch (Throwable t) { isEquals(t.getClass(), IllegalArgumentException.class); } } }