diff options
author | CGantert345 <57003061+CGantert345@users.noreply.github.com> | 2021-11-25 16:39:28 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-11-25 16:39:28 +0100 |
commit | c9f27f2de9b3fa713d10cb2f8014aad4e8af3070 (patch) | |
tree | ca00d8bae19bfcb5d7d55b388b568136ea62b57d /src/test/java/org/uic/barcode/asn1 | |
parent | Merge pull request #34 from UnionInternationalCheminsdeFer/1.2.7 (diff) | |
parent | test and bug fix on countermark and viaStation (diff) | |
download | UIC-barcode-1.2.8.tar UIC-barcode-1.2.8.tar.gz UIC-barcode-1.2.8.tar.bz2 UIC-barcode-1.2.8.tar.lz UIC-barcode-1.2.8.tar.xz UIC-barcode-1.2.8.tar.zst UIC-barcode-1.2.8.zip |
Diffstat (limited to 'src/test/java/org/uic/barcode/asn1')
4 files changed, 256 insertions, 0 deletions
diff --git a/src/test/java/org/uic/barcode/asn1/test/GenAlphabet.java b/src/test/java/org/uic/barcode/asn1/test/GenAlphabet.java new file mode 100644 index 0000000..a08392e --- /dev/null +++ b/src/test/java/org/uic/barcode/asn1/test/GenAlphabet.java @@ -0,0 +1,11 @@ +package org.uic.barcode.asn1.test;
+
+import org.uic.barcode.asn1.datatypes.Alphabet;
+
+public class GenAlphabet extends Alphabet {
+
+ public GenAlphabet() {
+ super("ACGT");
+ }
+
+}
diff --git a/src/test/java/org/uic/barcode/asn1/test/UperEncodeBitStringTest.java b/src/test/java/org/uic/barcode/asn1/test/UperEncodeBitStringTest.java new file mode 100644 index 0000000..94f29c2 --- /dev/null +++ b/src/test/java/org/uic/barcode/asn1/test/UperEncodeBitStringTest.java @@ -0,0 +1,82 @@ +package org.uic.barcode.asn1.test; + +import static org.junit.Assert.assertEquals; + +import java.util.ArrayList; +import java.util.logging.Level; + +import org.junit.Test; +import org.uic.barcode.asn1.datatypes.Asn1Optional; +import org.uic.barcode.asn1.datatypes.Bitstring; +import org.uic.barcode.asn1.datatypes.FieldOrder; +import org.uic.barcode.asn1.datatypes.FixedSize; +import org.uic.barcode.asn1.datatypes.Sequence; +import org.uic.barcode.asn1.uper.UperEncoder; + + +public class UperEncodeBitStringTest { + + /** + * Example from the Standard on UPER. + <pre> + World-Schema DEFINITIONS AUTOMATIC TAGS ::= + BEGIN + TestRecord ::= [APPLICATION 0] IMPLICIT SEQUENCE { + value BIT STRING (SIZE(3)) OPTIONAL + } + END + + + rec1value TestRecord ::= { + value '001'B + } + </pre> + + + + */ + @Sequence + public static class TestRecord { + + @FieldOrder(order = 0) + @Asn1Optional() + @Bitstring() + @FixedSize(3) + ArrayList<Boolean> booleans = null; + + public TestRecord() { + this(false,false,true); + } + + public TestRecord(Boolean value1,Boolean value2,Boolean value3 ) { + booleans = new ArrayList<Boolean>(); + booleans.add(value1); + booleans.add(value2); + booleans.add(value3); + } + } + + + @Test public void testEncode() throws IllegalArgumentException, IllegalAccessException { + TestRecord record = new TestRecord(false,false,true); + byte[] encoded = UperEncoder.encode(record); + String hex = UperEncoder.hexStringFromBytes(encoded); + UperEncoder.logger.log(Level.FINEST,String.format("data hex: %s", hex)); + assertEquals("90",hex); + } + + + @Test public void testDecode() throws IllegalArgumentException, IllegalAccessException { + TestRecord record = new TestRecord(false,false,true); + byte[] encoded = UperEncoder.encode(record); + String hex = UperEncoder.hexStringFromBytes(encoded); + UperEncoder.logger.log(Level.FINEST,String.format("data hex: %s", hex)); + assertEquals("90",hex); + TestRecord result = UperEncoder.decode(encoded, TestRecord.class); + assertEquals(result.booleans.get(0),record.booleans.get(0)); + assertEquals(result.booleans.get(1),record.booleans.get(1)); + assertEquals(result.booleans.get(2),record.booleans.get(2)); + + } + +} diff --git a/src/test/java/org/uic/barcode/asn1/test/UperEncodeStringCustomAlphabetTest.java b/src/test/java/org/uic/barcode/asn1/test/UperEncodeStringCustomAlphabetTest.java new file mode 100644 index 0000000..03b8bac --- /dev/null +++ b/src/test/java/org/uic/barcode/asn1/test/UperEncodeStringCustomAlphabetTest.java @@ -0,0 +1,82 @@ +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.uper.UperEncoder; + + +public class UperEncodeStringCustomAlphabetTest { + + /** + * Example from the Standard on UPER. + <pre> + World-Schema DEFINITIONS AUTOMATIC TAGS ::= + BEGIN + TestRecord ::= [APPLICATION 0] IMPLICIT SEQUENCE { + value1 PrintableString ( FROM ("ACGT") ) OPTIONAL, + value2 PrintableString ( FROM ("ACGT") ) OPTIONAL + } + END + + rec1value TestRecord ::= { + value1 "ACGT", + value2 "ACTGCATCGA" + } + </pre> + */ + @Sequence + public static class TestRecord { + + @FieldOrder(order = 0) + @RestrictedString(value = CharacterRestriction.VisibleString, alphabet = GenAlphabet.class) + @Asn1Optional() String value1; + + @FieldOrder(order = 1) + @RestrictedString(value = CharacterRestriction.VisibleString, alphabet = GenAlphabet.class) + @Asn1Optional() String value2; + + public TestRecord() { + } + + public TestRecord(String v1, String v2) { + this.value1 = v1; + this.value2 = v2; + } + } + + + @Test public void testEncode() throws IllegalArgumentException, IllegalAccessException { + + + TestRecord record = new TestRecord("ACGT", "ACTGCATCGA"); + byte[] encoded = UperEncoder.encode(record); + String hex = UperEncoder.hexStringFromBytes(encoded); + UperEncoder.logger.log(Level.FINEST,String.format("data hex: %s", hex)); + assertEquals("C106C2879360",hex); + + } + + + @Test public void testDecode() throws IllegalArgumentException, IllegalAccessException { + + TestRecord record = new TestRecord("ACGT", "ACTGCATCGA"); + byte[] encoded = UperEncoder.encode(record); + String hex = UperEncoder.hexStringFromBytes(encoded); + UperEncoder.logger.log(Level.FINEST,String.format("data hex: %s", hex)); + assertEquals("C106C2879360",hex); + TestRecord result = UperEncoder.decode(encoded, TestRecord.class); + assertEquals(result.value1,record.value1); + assertEquals(result.value2,record.value2); + } + + + +} diff --git a/src/test/java/org/uic/barcode/asn1/test/UperEncodeVarBitStringTest.java b/src/test/java/org/uic/barcode/asn1/test/UperEncodeVarBitStringTest.java new file mode 100644 index 0000000..d6212e2 --- /dev/null +++ b/src/test/java/org/uic/barcode/asn1/test/UperEncodeVarBitStringTest.java @@ -0,0 +1,81 @@ +package org.uic.barcode.asn1.test; + +import static org.junit.Assert.assertEquals; + +import java.util.ArrayList; +import java.util.List; +import java.util.logging.Level; + +import org.junit.Test; +import org.uic.barcode.asn1.datatypes.Asn1Optional; +import org.uic.barcode.asn1.datatypes.Asn1VarSizeBitstring; +import org.uic.barcode.asn1.datatypes.FieldOrder; +import org.uic.barcode.asn1.datatypes.Sequence; +import org.uic.barcode.asn1.uper.UperEncoder; + + +public class UperEncodeVarBitStringTest { + + /** + * Example from the Standard on UPER. + <pre> + World-Schema DEFINITIONS AUTOMATIC TAGS ::= + BEGIN + TestRecord ::= [APPLICATION 0] IMPLICIT SEQUENCE { + value BIT STRING OPTIONAL, + } + END + + + rec1value TestRecord ::= { + value '001'B + } + </pre> + + + + */ + @Sequence + public static class TestRecord { + + @FieldOrder(order = 0) + @Asn1Optional() Asn1VarSizeBitstring value; + + public TestRecord() { + this(false,false,true); + } + + public TestRecord(Boolean value1,Boolean value2,Boolean value3 ) { + List<Boolean> booleans = new ArrayList<Boolean>(); + booleans.add(value1); + booleans.add(value2); + booleans.add(value3); + this.value = new Asn1VarSizeBitstring(booleans); + + } + } + + + @Test public void testEncode() throws IllegalArgumentException, IllegalAccessException { + TestRecord record = new TestRecord(false,false,true); + byte[] encoded = UperEncoder.encode(record); + String hex = UperEncoder.hexStringFromBytes(encoded); + UperEncoder.logger.log(Level.FINEST,String.format("data hex: %s", hex)); + assertEquals("8190",hex); + } + + + @Test public void testDecode() throws IllegalArgumentException, IllegalAccessException { + TestRecord record = new TestRecord(false,false,true); + byte[] encoded = UperEncoder.encode(record); + String hex = UperEncoder.hexStringFromBytes(encoded); + UperEncoder.logger.log(Level.FINEST,String.format("data hex: %s", hex)); + assertEquals("8190",hex); + TestRecord result = UperEncoder.decode(encoded, TestRecord.class); + assertEquals(result.value.get(0),record.value.get(0)); + assertEquals(result.value.get(1),record.value.get(1)); + assertEquals(result.value.get(2),record.value.get(2)); + + } + +} |