package org.bouncycastle.asn1.test; import java.util.Random; import org.bouncycastle.asn1.DERSequence; import org.bouncycastle.asn1.cmc.BodyPartID; import org.bouncycastle.asn1.cmc.BodyPartPath; import org.bouncycastle.util.test.SimpleTest; public class BodyPartPathTest extends SimpleTest { public void performTest() throws Exception { Random rand = new Random(); { BodyPartID[] bpid = new BodyPartID[Math.abs(rand.nextInt()) % 20]; for (int t = 0; t < bpid.length; t++) { bpid[t] = new BodyPartID(Math.abs(rand.nextLong() % 4294967295L)); } BodyPartPath bpp = new BodyPartPath(bpid); DERSequence _bpp = (DERSequence)bpp.toASN1Primitive(); byte[] b = bpp.getEncoded(); // // Decode and compare results. // BodyPartPath resList = BodyPartPath.getInstance(b); DERSequence _resList = (DERSequence)resList.toASN1Primitive(); isEquals(_bpp.size(), _resList.size()); for (int j = 0; j < _bpp.size(); j++) { isEquals(_resList.getObjectAt(j), _bpp.getObjectAt(j)); } } { // // Compare when same thing instantiated via different constructors. // BodyPartID bpid = new BodyPartID(Math.abs(rand.nextLong() % 4294967295L)); BodyPartPath bpidList = new BodyPartPath(bpid); // Single entry constructor. BodyPartPath resList = new BodyPartPath(new BodyPartID[]{bpid}); // Array constructor. DERSequence _bpidList = (DERSequence)bpidList.toASN1Primitive(); DERSequence _resList = (DERSequence)resList.toASN1Primitive(); isEquals(_bpidList, _resList); } } public String getName() { return "BodyPartPathTest"; } public static void main(String[] args) { runTest(new BodyPartPathTest()); } }