| package org.bouncycastle.asn1.test; |
| |
| import java.util.Random; |
| |
| import org.bouncycastle.asn1.cmc.BodyPartID; |
| import org.bouncycastle.asn1.cmc.BodyPartPath; |
| import org.bouncycastle.asn1.cmc.BodyPartReference; |
| import org.bouncycastle.util.test.SimpleTest; |
| |
| |
| public class BodyPartReferenceTest |
| extends SimpleTest |
| { |
| |
| public String getName() |
| { |
| return "BodyPartReferenceTest"; |
| } |
| |
| public void performTest() |
| throws Exception |
| { |
| Random rand = new Random(); |
| BodyPartReference ch0 = null; |
| BodyPartReference ch1 = null; |
| { |
| // Choice 1 |
| BodyPartID id = new BodyPartID(Math.abs(rand.nextLong() % 4294967295L)); |
| |
| ch0 = new BodyPartReference(id); |
| byte[] b = ch0.getEncoded(); |
| |
| BodyPartReference brRes = BodyPartReference.getInstance(b); |
| isEquals(brRes, ch0); |
| } |
| |
| { |
| // Choice 2 |
| |
| 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)); |
| } |
| |
| ch1 = new BodyPartReference(new BodyPartPath(bpid)); |
| byte[] b = ch1.getEncoded(); |
| |
| BodyPartReference brRes = BodyPartReference.getInstance(b); |
| isEquals(brRes, ch1); |
| } |
| |
| |
| { |
| // Test choice alternatives are not equal. |
| BodyPartID id = new BodyPartID(Math.abs(rand.nextLong() % 4294967295L)); |
| |
| ch0 = new BodyPartReference(id); |
| ch1 = new BodyPartReference(new BodyPartPath(id)); |
| |
| try |
| { |
| isEquals(ch0, ch1); |
| fail("Must not be equal."); |
| } |
| catch (Throwable t) |
| { |
| // Ignored |
| } |
| } |
| |
| } |
| |
| public static void main(String[] args) |
| { |
| runTest(new BodyPartReferenceTest()); |
| } |
| |
| } |