01: package org.bouncycastle.asn1.test;
02:
03: import java.io.IOException;
04:
05: import org.bouncycastle.asn1.ASN1Encodable;
06: import org.bouncycastle.asn1.ASN1InputStream;
07: import org.bouncycastle.asn1.ASN1Sequence;
08: import org.bouncycastle.asn1.DERObjectIdentifier;
09: import org.bouncycastle.asn1.esf.CommitmentTypeIdentifier;
10: import org.bouncycastle.asn1.esf.CommitmentTypeQualifier;
11: import org.bouncycastle.util.test.SimpleTest;
12:
13: public class CommitmentTypeQualifierUnitTest extends SimpleTest {
14: public String getName() {
15: return "CommitmentTypeQualifier";
16: }
17:
18: public void performTest() throws Exception {
19: CommitmentTypeQualifier ctq = new CommitmentTypeQualifier(
20: CommitmentTypeIdentifier.proofOfOrigin);
21:
22: checkConstruction(ctq, CommitmentTypeIdentifier.proofOfOrigin,
23: null);
24:
25: ASN1Encodable info = new DERObjectIdentifier("1.2");
26:
27: ctq = new CommitmentTypeQualifier(
28: CommitmentTypeIdentifier.proofOfOrigin, info);
29:
30: checkConstruction(ctq, CommitmentTypeIdentifier.proofOfOrigin,
31: info);
32:
33: ctq = CommitmentTypeQualifier.getInstance(null);
34:
35: if (ctq != null) {
36: fail("null getInstance() failed.");
37: }
38:
39: try {
40: CommitmentTypeQualifier.getInstance(new Object());
41:
42: fail("getInstance() failed to detect bad object.");
43: } catch (IllegalArgumentException e) {
44: // expected
45: }
46: }
47:
48: private void checkConstruction(CommitmentTypeQualifier mv,
49: DERObjectIdentifier commitmenttTypeId,
50: ASN1Encodable qualifier) throws IOException {
51: checkStatement(mv, commitmenttTypeId, qualifier);
52:
53: mv = CommitmentTypeQualifier.getInstance(mv);
54:
55: checkStatement(mv, commitmenttTypeId, qualifier);
56:
57: ASN1InputStream aIn = new ASN1InputStream(mv.toASN1Object()
58: .getEncoded());
59:
60: ASN1Sequence seq = (ASN1Sequence) aIn.readObject();
61:
62: mv = CommitmentTypeQualifier.getInstance(seq);
63:
64: checkStatement(mv, commitmenttTypeId, qualifier);
65: }
66:
67: private void checkStatement(CommitmentTypeQualifier ctq,
68: DERObjectIdentifier commitmentTypeId,
69: ASN1Encodable qualifier) {
70: if (!ctq.getCommitmentTypeIdentifier().equals(commitmentTypeId)) {
71: fail("commitmentTypeIds don't match.");
72: }
73:
74: if (qualifier != null) {
75: if (!ctq.getQualifier().equals(qualifier)) {
76: fail("qualifiers don't match.");
77: }
78: } else if (ctq.getQualifier() != null) {
79: fail("qualifier found when none expected.");
80: }
81: }
82:
83: public static void main(String[] args) {
84: runTest(new CommitmentTypeQualifierUnitTest());
85: }
86: }
|