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);
}
}
}