diff options
author | CGantert345 <57003061+CGantert345@users.noreply.github.com> | 2021-12-02 14:55:33 +0100 |
---|---|---|
committer | CGantert345 <57003061+CGantert345@users.noreply.github.com> | 2021-12-02 14:55:33 +0100 |
commit | 9ac22eb70e6b6ce9e09e2bfe64c9d42da8e0c07e (patch) | |
tree | 963d7d98fd08ba3292f80d43fddf8aaf84c69392 /src/test/java/org/uic/barcode/asn1 | |
parent | additional tests (diff) | |
download | UIC-barcode-9ac22eb70e6b6ce9e09e2bfe64c9d42da8e0c07e.tar UIC-barcode-9ac22eb70e6b6ce9e09e2bfe64c9d42da8e0c07e.tar.gz UIC-barcode-9ac22eb70e6b6ce9e09e2bfe64c9d42da8e0c07e.tar.bz2 UIC-barcode-9ac22eb70e6b6ce9e09e2bfe64c9d42da8e0c07e.tar.lz UIC-barcode-9ac22eb70e6b6ce9e09e2bfe64c9d42da8e0c07e.tar.xz UIC-barcode-9ac22eb70e6b6ce9e09e2bfe64c9d42da8e0c07e.tar.zst UIC-barcode-9ac22eb70e6b6ce9e09e2bfe64c9d42da8e0c07e.zip |
Diffstat (limited to '')
-rw-r--r-- | src/test/java/org/uic/barcode/asn1/test/UperEncodeRestrictedStringLengthTest.java | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/src/test/java/org/uic/barcode/asn1/test/UperEncodeRestrictedStringLengthTest.java b/src/test/java/org/uic/barcode/asn1/test/UperEncodeRestrictedStringLengthTest.java new file mode 100644 index 0000000..6e3d4ee --- /dev/null +++ b/src/test/java/org/uic/barcode/asn1/test/UperEncodeRestrictedStringLengthTest.java @@ -0,0 +1,65 @@ +package org.uic.barcode.asn1.test; + +import static org.junit.Assert.assertEquals; + +import java.util.logging.Level; + +import org.junit.Test; +import org.uic.barcode.asn1.datatypes.Asn1Optional; +import org.uic.barcode.asn1.datatypes.CharacterRestriction; +import org.uic.barcode.asn1.datatypes.FieldOrder; +import org.uic.barcode.asn1.datatypes.RestrictedString; +import org.uic.barcode.asn1.datatypes.Sequence; +import org.uic.barcode.asn1.datatypes.SizeRange; +import org.uic.barcode.asn1.uper.UperEncoder; + + +public class UperEncodeRestrictedStringLengthTest { + + /** + * Example from the Standard on UPER. + <pre> + World-Schema DEFINITIONS AUTOMATIC TAGS ::= + BEGIN + TestRecord ::= [APPLICATION 0] IMPLICIT SEQUENCE { + testString1 IA5String (SIZE(1..2)) OPTIONAL + } + END + + value TestRecord ::= { + testString1 "A" + } + + </pre> + */ + + + + @Sequence + public static class TestRecord { + + @FieldOrder(order = 0) + @RestrictedString(CharacterRestriction.IA5String) + @SizeRange(minValue = 1, maxValue = 2) + @Asn1Optional() String value; + + public TestRecord() { + } + + public TestRecord(String utf8) { + this.value = utf8; + } + } + + + @Test public void testEncode1() throws IllegalArgumentException, IllegalAccessException { + TestRecord record = new TestRecord("A"); + byte[] encoded = UperEncoder.encode(record); + String hex = UperEncoder.hexStringFromBytes(encoded); + UperEncoder.logger.log(Level.FINEST,String.format("data hex: %s", hex)); + assertEquals("A080",hex); + TestRecord result = UperEncoder.decode(encoded, TestRecord.class); + assertEquals(record.value,result.value); + } + +} |