diff options
Diffstat (limited to 'src/test')
3 files changed, 199 insertions, 202 deletions
diff --git a/src/test/java/org/uic/barcode/asn1/test/UperEncodeObjectIdentifierTest.java b/src/test/java/org/uic/barcode/asn1/test/UperEncodeObjectIdentifierTest.java index edf3348..4b09604 100644 --- a/src/test/java/org/uic/barcode/asn1/test/UperEncodeObjectIdentifierTest.java +++ b/src/test/java/org/uic/barcode/asn1/test/UperEncodeObjectIdentifierTest.java @@ -1,76 +1,75 @@ -package org.uic.barcode.asn1.test;
-
-import static org.junit.Assert.assertEquals;
-import java.util.logging.Level;
-
-import org.junit.jupiter.api.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;
-
-class UperEncodeObjectIdentifierTest {
-
-
- /**
- * Example from the Standard on UPER.
- <pre>
- TestRecord ::= [APPLICATION 0] IMPLICIT SEQUENCE {
- value1 OBJECT IDENTIFIER,
- value2 OBJECT IDENTIFIER,
- value3 OBJECT IDENTIFIER
- }
-
- value TestRecord ::= {
- value1 2.16.840.1.101.3.4.3.1,
- value2 2.16.840.1.101.3.4.3.2,
- value3 1.2.840.10045.3.1.7
- }
- </pre>
- */
-
- @Sequence
- public static class TestRecord {
-
- @FieldOrder(order = 0)
- @RestrictedString(CharacterRestriction.ObjectIdentifier)
- String value1 = "2.16.840.1.101.3.4.3.1"; //DSA SHA224
-
- @FieldOrder(order = 1)
- @RestrictedString(CharacterRestriction.ObjectIdentifier)
- String value2 = "2.16.840.1.101.3.4.3.2"; //DSA SHA248
-
- @FieldOrder(order = 2)
- @RestrictedString(CharacterRestriction.ObjectIdentifier)
- String value3 = "1.2.840.10045.3.1.7"; //ECC
-
- public TestRecord() {}
-
- }
-
- @Test
- public void testEncode() throws IllegalArgumentException, IllegalAccessException {
- TestRecord record = new TestRecord();
- byte[] encoded = UperEncoder.encode(record);
- String hex = UperEncoder.hexStringFromBytes(encoded);
- UperEncoder.logger.log(Level.FINEST,String.format("data hex: %s", hex));
- assertEquals("0960864801650304030109608648016503040302082A8648CE3D030107",hex);
- }
-
- @Test
- public void testDecode() throws IllegalArgumentException, IllegalAccessException {
- TestRecord record = new TestRecord();
- byte[] encoded = UperEncoder.encode(record);
- String hex = UperEncoder.hexStringFromBytes(encoded);
- UperEncoder.logger.log(Level.FINEST,String.format("data hex: %s", hex));
- assertEquals("0960864801650304030109608648016503040302082A8648CE3D030107",hex);
- TestRecord result = UperEncoder.decode(encoded, TestRecord.class);
- assertEquals(result.value1,record.value1);
- assertEquals(result.value2,record.value2);
- assertEquals(result.value3,record.value3);
- }
-
-
-}
+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.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 UperEncodeObjectIdentifierTest { + + + /** + * Example from the Standard on UPER. + <pre> + TestRecord ::= [APPLICATION 0] IMPLICIT SEQUENCE { + value1 OBJECT IDENTIFIER, + value2 OBJECT IDENTIFIER, + value3 OBJECT IDENTIFIER + } + + value TestRecord ::= { + value1 2.16.840.1.101.3.4.3.1, + value2 2.16.840.1.101.3.4.3.2, + value3 1.2.840.10045.3.1.7 + } + </pre> + */ + + @Sequence + public static class TestRecord { + + @FieldOrder(order = 0) + @RestrictedString(CharacterRestriction.ObjectIdentifier) + String value1 = "2.16.840.1.101.3.4.3.1"; //DSA SHA224 + + @FieldOrder(order = 1) + @RestrictedString(CharacterRestriction.ObjectIdentifier) + String value2 = "2.16.840.1.101.3.4.3.2"; //DSA SHA248 + + @FieldOrder(order = 2) + @RestrictedString(CharacterRestriction.ObjectIdentifier) + String value3 = "1.2.840.10045.3.1.7"; //ECC + + public TestRecord() {} + + } + + @Test + public void testEncode() throws IllegalArgumentException, IllegalAccessException { + TestRecord record = new TestRecord(); + byte[] encoded = UperEncoder.encode(record); + String hex = UperEncoder.hexStringFromBytes(encoded); + UperEncoder.logger.log(Level.FINEST,String.format("data hex: %s", hex)); + assertEquals("0960864801650304030109608648016503040302082A8648CE3D030107",hex); + } + + @Test + public void testDecode() throws IllegalArgumentException, IllegalAccessException { + TestRecord record = new TestRecord(); + byte[] encoded = UperEncoder.encode(record); + String hex = UperEncoder.hexStringFromBytes(encoded); + UperEncoder.logger.log(Level.FINEST,String.format("data hex: %s", hex)); + assertEquals("0960864801650304030109608648016503040302082A8648CE3D030107",hex); + TestRecord result = UperEncoder.decode(encoded, TestRecord.class); + assertEquals(result.value1,record.value1); + assertEquals(result.value2,record.value2); + assertEquals(result.value3,record.value3); + } + + +} diff --git a/src/test/java/org/uic/barcode/asn1/test/UperEncodeStringTest.java b/src/test/java/org/uic/barcode/asn1/test/UperEncodeStringTest.java index 5f4edc8..75ace32 100644 --- a/src/test/java/org/uic/barcode/asn1/test/UperEncodeStringTest.java +++ b/src/test/java/org/uic/barcode/asn1/test/UperEncodeStringTest.java @@ -50,7 +50,7 @@ public class UperEncodeStringTest { @Test public void testEncode() throws IllegalArgumentException, IllegalAccessException { - //Teststring: AêñüC + //Teststring: AêñüC String original = new String("A" + "\u00ea" + "\u00f1" + "\u00fc" + "C"); TestRecord record = new TestRecord(original, "Meier"); @@ -63,7 +63,7 @@ public class UperEncodeStringTest { @Test public void testEncodeUtf8() throws IllegalArgumentException, IllegalAccessException { - //"ä½ å¥½å?—" + //"你好å?—" String original = new String("\u00e4" + "\u00bd" + "\u00a0" + "\u00e5" + "\u00a5" + "\u00bd" + "\u00e5" + "\u0090" + "\u0097"); TestRecord record = new TestRecord(original, "Meier"); byte[] encoded = UperEncoder.encode(record); @@ -76,7 +76,7 @@ public class UperEncodeStringTest { @Test public void testDecode() throws IllegalArgumentException, IllegalAccessException { - //Teststring: AêñüC + //Teststring: AêñüC String original = new String("A" + "\u00ea" + "\u00f1" + "\u00fc" + "C"); TestRecord record = new TestRecord(original, "Meier"); @@ -91,7 +91,7 @@ public class UperEncodeStringTest { @Test public void testDecodeUtf8() throws IllegalArgumentException, IllegalAccessException { - //"ä½ å¥½å?—" + //"你好å?—" String original = new String("\u00e4" + "\u00bd" + "\u00a0" + "\u00e5" + "\u00a5" + "\u00bd" + "\u00e5" + "\u0090" + "\u0097"); TestRecord record = new TestRecord(original, "Meier"); byte[] encoded = UperEncoder.encode(record); diff --git a/src/test/java/org/uic/barcode/ticketTestDB/DecodeSparpreisTicketDBTest.java b/src/test/java/org/uic/barcode/ticketTestDB/DecodeSparpreisTicketDBTest.java index 480ab39..979b3ca 100644 --- a/src/test/java/org/uic/barcode/ticketTestDB/DecodeSparpreisTicketDBTest.java +++ b/src/test/java/org/uic/barcode/ticketTestDB/DecodeSparpreisTicketDBTest.java @@ -1,123 +1,121 @@ -package org.uic.barcode.ticketTestDB;
-
-import static org.junit.jupiter.api.Assertions.assertAll;
-
-import java.util.TimeZone;
-
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.uic.barcode.Decoder;
-import org.uic.barcode.asn1.uper.UperEncoder;
-import org.uic.barcode.staticFrame.ticketLayoutBarcode.TicketLayout;
-import org.uic.barcode.ticket.api.spec.IOpenTicket;
-import org.uic.barcode.ticket.api.spec.IPassengerType;
-import org.uic.barcode.ticket.api.spec.ITariff;
-import org.uic.barcode.ticket.api.spec.ITrainLink;
-import org.uic.barcode.ticket.api.spec.ITraveler;
-import org.uic.barcode.ticket.api.spec.IUicRailTicket;
-
-public class DecodeSparpreisTicketDBTest {
-
- TimeZone defaulttimeZone = null;
-
- /**
- * Prepare tickets.
- */
- @Before public void prepare() {
- defaulttimeZone = TimeZone.getDefault();
- //decode in local CET time zone
- TimeZone.setDefault(TimeZone.getTimeZone("CET"));
- }
-
-
- /**
- * clean up
- */
- @After public void resetTimeZone() {
- TimeZone.setDefault(defaulttimeZone);
- }
-
- @Test
- public void testDecoder() throws Exception {
-
-
- byte[] content = UperEncoder.bytesFromHexString(getEncodingV2Hex());
-
- // try to decode
- Decoder decoder = new Decoder(content);
- TicketLayout layout = decoder.getLayout();
- IUicRailTicket ticket = decoder.getUicTicket();
-
-
- Assert.assertNotNull(ticket);
-
- Assert.assertNotNull(ticket.getDocumentData());
- Assert.assertNotNull(ticket.getIssuerDetails());
- Assert.assertNotNull(ticket.getTravelerDetails());
-
- assert(ticket.getIssuerDetails().getIssuer().equals("1080"));
- assert(ticket.getIssuerDetails().getIssuerPNR().equals("D260V48G"));
- String issuingDate = ticket.getIssuerDetails().getIssuingDate().toString();
- assert(issuingDate.equals("Fri Oct 30 11:50:00 CET 2020"));
- assert(ticket.getIssuerDetails().getSecurityProvider().equals("1080"));
- assert(ticket.getIssuerDetails().isSecurePaperTicket() == false);
- assert(ticket.getIssuerDetails().isActivated() == true);
- assert(ticket.getIssuerDetails().isSpecimen() == false);
-
- assert(ticket.getTravelerDetails().getTravelers().size() == 1);
- ITraveler traveler = ticket.getTravelerDetails().getTravelers().iterator().next();
- assert(traveler.getFirstName().equals("Karsten"));
- assert(traveler.getLastName().equals("Will"));
- assert(traveler.isTicketHolder() == true);
-
- assert(ticket.getDocumentData().size() == 1);
- IOpenTicket openTicket = (IOpenTicket) ticket.getDocumentData().iterator().next();
- Assert.assertNotNull(openTicket.getValidRegionList());
- assert(openTicket.getReference().equals("CN0CTUMY"));
- String fromDate = openTicket.getValidFrom().toString();
- assert(fromDate.equals("Thu Nov 05 00:00:00 CET 2020"));
- assert(openTicket.getValidFromUTCoffset() == -4L);
- String toDate = openTicket.getValidUntil().toString();
- assert(toDate.equals("Fri Nov 06 10:00:00 CET 2020"));
- assert(openTicket.getValidUntilUTCoffset() == -4L);
-
- Assert.assertNotNull(openTicket.getTariffs());
- assert(openTicket.getTariffs().size() == 1);
- ITariff tariff = openTicket.getTariffs().iterator().next();
- assert(tariff.getNumberOfPassengers() == 1);
- assert(tariff.getPassengerType().equals(IPassengerType.adult));
- assert(tariff.getTariffDescription().equals("Super Sparpreis"));
-
- ITrainLink tl = (ITrainLink) openTicket.getValidRegionList().iterator().next();
- Assert.assertNotNull(tl);
- assert(tl.getTrain().equals("ICE973"));
- String departureDate = tl.getDepartureDateTime().toString();
- assert(departureDate.equals("Fri Nov 06 11:58:00 CET 2020"));
- Assert.assertNull(layout);
- Assert.assertNotNull(decoder);
- }
-
- public static String getEncodingV2Hex() {
-
- return "2355543032313038303030303032782e" +
- "2fe184a1d85e89e9338b298ec61aeba2" +
- "48ce722056ca940a967c8a1d39126e2c" +
- "628c4fcea91ba35216a0a350f894de5e" +
- "bd7b8909920fde947feede0e20c43031" +
- "3939789c01bc0043ff555f464c455831" +
- "333031383862b20086e10dc125ea2815" +
- "110881051c844464d985668e23a00a80" +
- "000e96c2e4e6e8cadc08aed2d8d90104" +
- "44d7be0100221ce610ea559b64364c38" +
- "a82361d1cb5e1e5d32a3d0979bd099c8" +
- "426b0b7373432b4b6852932baba3634b" +
- "733b2b715ab34b09d101e18981c181f1" +
- "424221521291521292a17a3a920a1152" +
- "5a095282314952b20a49529952826278" +
- "083001a4c38ae5bb303ace7003800700" +
- "14b00240400f53757065722053706172" +
- "7072656973c41e4a03";
- }
+package org.uic.barcode.ticketTestDB; + +import java.util.TimeZone; + +import org.junit.After; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.uic.barcode.Decoder; +import org.uic.barcode.asn1.uper.UperEncoder; +import org.uic.barcode.staticFrame.ticketLayoutBarcode.TicketLayout; +import org.uic.barcode.ticket.api.spec.IOpenTicket; +import org.uic.barcode.ticket.api.spec.IPassengerType; +import org.uic.barcode.ticket.api.spec.ITariff; +import org.uic.barcode.ticket.api.spec.ITrainLink; +import org.uic.barcode.ticket.api.spec.ITraveler; +import org.uic.barcode.ticket.api.spec.IUicRailTicket; + +public class DecodeSparpreisTicketDBTest { + + TimeZone defaulttimeZone = null; + + /** + * Prepare tickets. + */ + @Before public void prepare() { + defaulttimeZone = TimeZone.getDefault(); + //decode in local CET time zone + TimeZone.setDefault(TimeZone.getTimeZone("CET")); + } + + + /** + * clean up + */ + @After public void resetTimeZone() { + TimeZone.setDefault(defaulttimeZone); + } + + @Test + public void testDecoder() throws Exception { + + + byte[] content = UperEncoder.bytesFromHexString(getEncodingV2Hex()); + + // try to decode + Decoder decoder = new Decoder(content); + TicketLayout layout = decoder.getLayout(); + IUicRailTicket ticket = decoder.getUicTicket(); + + + Assert.assertNotNull(ticket); + + Assert.assertNotNull(ticket.getDocumentData()); + Assert.assertNotNull(ticket.getIssuerDetails()); + Assert.assertNotNull(ticket.getTravelerDetails()); + + assert(ticket.getIssuerDetails().getIssuer().equals("1080")); + assert(ticket.getIssuerDetails().getIssuerPNR().equals("D260V48G")); + String issuingDate = ticket.getIssuerDetails().getIssuingDate().toString(); + assert(issuingDate.equals("Fri Oct 30 11:50:00 CET 2020")); + assert(ticket.getIssuerDetails().getSecurityProvider().equals("1080")); + assert(ticket.getIssuerDetails().isSecurePaperTicket() == false); + assert(ticket.getIssuerDetails().isActivated() == true); + assert(ticket.getIssuerDetails().isSpecimen() == false); + + assert(ticket.getTravelerDetails().getTravelers().size() == 1); + ITraveler traveler = ticket.getTravelerDetails().getTravelers().iterator().next(); + assert(traveler.getFirstName().equals("Karsten")); + assert(traveler.getLastName().equals("Will")); + assert(traveler.isTicketHolder() == true); + + assert(ticket.getDocumentData().size() == 1); + IOpenTicket openTicket = (IOpenTicket) ticket.getDocumentData().iterator().next(); + Assert.assertNotNull(openTicket.getValidRegionList()); + assert(openTicket.getReference().equals("CN0CTUMY")); + String fromDate = openTicket.getValidFrom().toString(); + assert(fromDate.equals("Thu Nov 05 00:00:00 CET 2020")); + assert(openTicket.getValidFromUTCoffset() == -4L); + String toDate = openTicket.getValidUntil().toString(); + assert(toDate.equals("Fri Nov 06 10:00:00 CET 2020")); + assert(openTicket.getValidUntilUTCoffset() == -4L); + + Assert.assertNotNull(openTicket.getTariffs()); + assert(openTicket.getTariffs().size() == 1); + ITariff tariff = openTicket.getTariffs().iterator().next(); + assert(tariff.getNumberOfPassengers() == 1); + assert(tariff.getPassengerType().equals(IPassengerType.adult)); + assert(tariff.getTariffDescription().equals("Super Sparpreis")); + + ITrainLink tl = (ITrainLink) openTicket.getValidRegionList().iterator().next(); + Assert.assertNotNull(tl); + assert(tl.getTrain().equals("ICE973")); + String departureDate = tl.getDepartureDateTime().toString(); + assert(departureDate.equals("Fri Nov 06 11:58:00 CET 2020")); + Assert.assertNull(layout); + Assert.assertNotNull(decoder); + } + + public static String getEncodingV2Hex() { + + return "2355543032313038303030303032782e" + + "2fe184a1d85e89e9338b298ec61aeba2" + + "48ce722056ca940a967c8a1d39126e2c" + + "628c4fcea91ba35216a0a350f894de5e" + + "bd7b8909920fde947feede0e20c43031" + + "3939789c01bc0043ff555f464c455831" + + "333031383862b20086e10dc125ea2815" + + "110881051c844464d985668e23a00a80" + + "000e96c2e4e6e8cadc08aed2d8d90104" + + "44d7be0100221ce610ea559b64364c38" + + "a82361d1cb5e1e5d32a3d0979bd099c8" + + "426b0b7373432b4b6852932baba3634b" + + "733b2b715ab34b09d101e18981c181f1" + + "424221521291521292a17a3a920a1152" + + "5a095282314952b20a49529952826278" + + "083001a4c38ae5bb303ace7003800700" + + "14b00240400f53757065722053706172" + + "7072656973c41e4a03"; + } }
\ No newline at end of file |