diff options
Diffstat (limited to 'core/src/test/java/org/spongycastle/asn1/test/ContentHintsUnitTest.java')
-rw-r--r-- | core/src/test/java/org/spongycastle/asn1/test/ContentHintsUnitTest.java | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/core/src/test/java/org/spongycastle/asn1/test/ContentHintsUnitTest.java b/core/src/test/java/org/spongycastle/asn1/test/ContentHintsUnitTest.java new file mode 100644 index 00000000..b0610f64 --- /dev/null +++ b/core/src/test/java/org/spongycastle/asn1/test/ContentHintsUnitTest.java @@ -0,0 +1,87 @@ +package org.spongycastle.asn1.test; + +import java.io.IOException; + +import org.spongycastle.asn1.ASN1InputStream; +import org.spongycastle.asn1.ASN1ObjectIdentifier; +import org.spongycastle.asn1.ASN1Sequence; +import org.spongycastle.asn1.DERUTF8String; +import org.spongycastle.asn1.ess.ContentHints; + +public class ContentHintsUnitTest + extends ASN1UnitTest +{ + public String getName() + { + return "ContentHints"; + } + + public void performTest() + throws Exception + { + DERUTF8String contentDescription = new DERUTF8String("Description"); + ASN1ObjectIdentifier contentType = new ASN1ObjectIdentifier("1.2.2.3"); + + ContentHints hints = new ContentHints(contentType); + + checkConstruction(hints, contentType, null); + + hints = new ContentHints(contentType, contentDescription); + + checkConstruction(hints, contentType, contentDescription); + + hints = ContentHints.getInstance(null); + + if (hints != null) + { + fail("null getInstance() failed."); + } + + try + { + ContentHints.getInstance(new Object()); + + fail("getInstance() failed to detect bad object."); + } + catch (IllegalArgumentException e) + { + // expected + } + } + + private void checkConstruction( + ContentHints hints, + ASN1ObjectIdentifier contentType, + DERUTF8String description) + throws IOException + { + checkValues(hints, contentType, description); + + hints = ContentHints.getInstance(hints); + + checkValues(hints, contentType, description); + + ASN1InputStream aIn = new ASN1InputStream(hints.toASN1Primitive().getEncoded()); + + ASN1Sequence seq = (ASN1Sequence)aIn.readObject(); + + hints = ContentHints.getInstance(seq); + + checkValues(hints, contentType, description); + } + + private void checkValues( + ContentHints hints, + ASN1ObjectIdentifier contentType, + DERUTF8String description) + { + checkMandatoryField("contentType", contentType, hints.getContentType()); + checkOptionalField("description", description, hints.getContentDescription()); + } + + public static void main( + String[] args) + { + runTest(new ContentHintsUnitTest()); + } +} |