From 5732dd6f3858f591ae3a4cdf8b24eee91f14c4e0 Mon Sep 17 00:00:00 2001 From: CGantert345 <57003061+CGantert345@users.noreply.github.com> Date: Thu, 1 Apr 2021 12:50:26 +0200 Subject: - fix for train link, date and time is not defined optional --- pom.xml | 16 +- .../org/uic/barcode/staticFrame/StaticFrame.java | 1 - .../barcode/ticket/api/asn/omv1/TrainLinkType.java | 4 +- .../barcode/ticket/api/asn/omv2/TrainLinkType.java | 4 +- .../barcode/ticket/api/impl/SimpleTrainLink.java | 15 +- .../AsnLevelPassTimeZoneTestTicketV1.java | 578 --------------------- .../test/testtickets/CustomerCardTestTicketV1.java | 175 ------- .../test/testtickets/CustomerCardTestTicketV2.java | 175 ------- .../api/test/testtickets/DelayTestTicketV3.java | 163 ------ .../test/testtickets/FipTimeZoneTestTicketV1.java | 155 ------ .../test/testtickets/FipTimeZoneTestTicketV2.java | 155 ------ .../api/test/testtickets/OpenTestTicketV1.java | 578 --------------------- .../OpenTicketTimeZoneTestTicketV1.java | 157 ------ .../OpenTicketTimeZoneTestTicketV2.java | 157 ------ .../api/test/testtickets/ParkingTestTicketV1.java | 147 ------ .../api/test/testtickets/ParkingTestTicketV2.java | 147 ------ .../api/test/testtickets/PassTestTicketV1.java | 150 ------ .../testtickets/PassTimeZoneTestTicketCase1V1.java | 168 ------ .../testtickets/PassTimeZoneTestTicketCase2V1.java | 165 ------ .../testtickets/PassTimeZoneTestTicketCase3V1.java | 204 -------- .../test/testtickets/PassTimeZoneTestTicketV2.java | 168 ------ .../test/testtickets/ReservationTestTicketV1.java | 201 ------- .../test/testtickets/ReservationTestTicketV2.java | 201 ------- .../testtickets/SimpleTicketLinkTestTicket.java | 574 -------------------- .../api/test/testtickets/SimpleUicTestTicket.java | 244 --------- .../testtickets/StationPassageTestTicketV1.java | 183 ------- .../testtickets/StationPassageTestTicketV2.java | 183 ------- .../api/test/testtickets/VoucherTestTicketV1.java | 145 ------ .../api/test/testtickets/VoucherTestTicketV2.java | 145 ------ .../AsnLevelPassTimeZoneTestTicketV1.java | 578 +++++++++++++++++++++ .../test/testtickets/CustomerCardTestTicketV1.java | 175 +++++++ .../test/testtickets/CustomerCardTestTicketV2.java | 175 +++++++ .../api/test/testtickets/DelayTestTicketV3.java | 163 ++++++ .../test/testtickets/FipTimeZoneTestTicketV1.java | 155 ++++++ .../test/testtickets/FipTimeZoneTestTicketV2.java | 155 ++++++ .../api/test/testtickets/OpenTestTicketV1.java | 578 +++++++++++++++++++++ .../OpenTicketTimeZoneTestTicketV1.java | 157 ++++++ .../OpenTicketTimeZoneTestTicketV2.java | 157 ++++++ .../api/test/testtickets/ParkingTestTicketV1.java | 147 ++++++ .../api/test/testtickets/ParkingTestTicketV2.java | 147 ++++++ .../api/test/testtickets/PassTestTicketV1.java | 150 ++++++ .../testtickets/PassTimeZoneTestTicketCase1V1.java | 168 ++++++ .../testtickets/PassTimeZoneTestTicketCase2V1.java | 165 ++++++ .../testtickets/PassTimeZoneTestTicketCase3V1.java | 204 ++++++++ .../test/testtickets/PassTimeZoneTestTicketV2.java | 168 ++++++ .../test/testtickets/ReservationTestTicketV1.java | 201 +++++++ .../test/testtickets/ReservationTestTicketV2.java | 201 +++++++ .../testtickets/SimpleTicketLinkTestTicket.java | 574 ++++++++++++++++++++ .../api/test/testtickets/SimpleUicTestTicket.java | 244 +++++++++ .../testtickets/StationPassageTestTicketV1.java | 183 +++++++ .../testtickets/StationPassageTestTicketV2.java | 183 +++++++ .../api/test/testtickets/VoucherTestTicketV1.java | 145 ++++++ .../api/test/testtickets/VoucherTestTicketV2.java | 145 ++++++ .../ticketTestDB/DecodeSparpreisTicketDBTest.java | 61 +++ 54 files changed, 5397 insertions(+), 5340 deletions(-) delete mode 100644 src/main/java/org/uic/barcode/ticket/api/test/testtickets/AsnLevelPassTimeZoneTestTicketV1.java delete mode 100644 src/main/java/org/uic/barcode/ticket/api/test/testtickets/CustomerCardTestTicketV1.java delete mode 100644 src/main/java/org/uic/barcode/ticket/api/test/testtickets/CustomerCardTestTicketV2.java delete mode 100644 src/main/java/org/uic/barcode/ticket/api/test/testtickets/DelayTestTicketV3.java delete mode 100644 src/main/java/org/uic/barcode/ticket/api/test/testtickets/FipTimeZoneTestTicketV1.java delete mode 100644 src/main/java/org/uic/barcode/ticket/api/test/testtickets/FipTimeZoneTestTicketV2.java delete mode 100644 src/main/java/org/uic/barcode/ticket/api/test/testtickets/OpenTestTicketV1.java delete mode 100644 src/main/java/org/uic/barcode/ticket/api/test/testtickets/OpenTicketTimeZoneTestTicketV1.java delete mode 100644 src/main/java/org/uic/barcode/ticket/api/test/testtickets/OpenTicketTimeZoneTestTicketV2.java delete mode 100644 src/main/java/org/uic/barcode/ticket/api/test/testtickets/ParkingTestTicketV1.java delete mode 100644 src/main/java/org/uic/barcode/ticket/api/test/testtickets/ParkingTestTicketV2.java delete mode 100644 src/main/java/org/uic/barcode/ticket/api/test/testtickets/PassTestTicketV1.java delete mode 100644 src/main/java/org/uic/barcode/ticket/api/test/testtickets/PassTimeZoneTestTicketCase1V1.java delete mode 100644 src/main/java/org/uic/barcode/ticket/api/test/testtickets/PassTimeZoneTestTicketCase2V1.java delete mode 100644 src/main/java/org/uic/barcode/ticket/api/test/testtickets/PassTimeZoneTestTicketCase3V1.java delete mode 100644 src/main/java/org/uic/barcode/ticket/api/test/testtickets/PassTimeZoneTestTicketV2.java delete mode 100644 src/main/java/org/uic/barcode/ticket/api/test/testtickets/ReservationTestTicketV1.java delete mode 100644 src/main/java/org/uic/barcode/ticket/api/test/testtickets/ReservationTestTicketV2.java delete mode 100644 src/main/java/org/uic/barcode/ticket/api/test/testtickets/SimpleTicketLinkTestTicket.java delete mode 100644 src/main/java/org/uic/barcode/ticket/api/test/testtickets/SimpleUicTestTicket.java delete mode 100644 src/main/java/org/uic/barcode/ticket/api/test/testtickets/StationPassageTestTicketV1.java delete mode 100644 src/main/java/org/uic/barcode/ticket/api/test/testtickets/StationPassageTestTicketV2.java delete mode 100644 src/main/java/org/uic/barcode/ticket/api/test/testtickets/VoucherTestTicketV1.java delete mode 100644 src/main/java/org/uic/barcode/ticket/api/test/testtickets/VoucherTestTicketV2.java create mode 100644 src/test/java/org/uic/barcode/ticket/api/test/testtickets/AsnLevelPassTimeZoneTestTicketV1.java create mode 100644 src/test/java/org/uic/barcode/ticket/api/test/testtickets/CustomerCardTestTicketV1.java create mode 100644 src/test/java/org/uic/barcode/ticket/api/test/testtickets/CustomerCardTestTicketV2.java create mode 100644 src/test/java/org/uic/barcode/ticket/api/test/testtickets/DelayTestTicketV3.java create mode 100644 src/test/java/org/uic/barcode/ticket/api/test/testtickets/FipTimeZoneTestTicketV1.java create mode 100644 src/test/java/org/uic/barcode/ticket/api/test/testtickets/FipTimeZoneTestTicketV2.java create mode 100644 src/test/java/org/uic/barcode/ticket/api/test/testtickets/OpenTestTicketV1.java create mode 100644 src/test/java/org/uic/barcode/ticket/api/test/testtickets/OpenTicketTimeZoneTestTicketV1.java create mode 100644 src/test/java/org/uic/barcode/ticket/api/test/testtickets/OpenTicketTimeZoneTestTicketV2.java create mode 100644 src/test/java/org/uic/barcode/ticket/api/test/testtickets/ParkingTestTicketV1.java create mode 100644 src/test/java/org/uic/barcode/ticket/api/test/testtickets/ParkingTestTicketV2.java create mode 100644 src/test/java/org/uic/barcode/ticket/api/test/testtickets/PassTestTicketV1.java create mode 100644 src/test/java/org/uic/barcode/ticket/api/test/testtickets/PassTimeZoneTestTicketCase1V1.java create mode 100644 src/test/java/org/uic/barcode/ticket/api/test/testtickets/PassTimeZoneTestTicketCase2V1.java create mode 100644 src/test/java/org/uic/barcode/ticket/api/test/testtickets/PassTimeZoneTestTicketCase3V1.java create mode 100644 src/test/java/org/uic/barcode/ticket/api/test/testtickets/PassTimeZoneTestTicketV2.java create mode 100644 src/test/java/org/uic/barcode/ticket/api/test/testtickets/ReservationTestTicketV1.java create mode 100644 src/test/java/org/uic/barcode/ticket/api/test/testtickets/ReservationTestTicketV2.java create mode 100644 src/test/java/org/uic/barcode/ticket/api/test/testtickets/SimpleTicketLinkTestTicket.java create mode 100644 src/test/java/org/uic/barcode/ticket/api/test/testtickets/SimpleUicTestTicket.java create mode 100644 src/test/java/org/uic/barcode/ticket/api/test/testtickets/StationPassageTestTicketV1.java create mode 100644 src/test/java/org/uic/barcode/ticket/api/test/testtickets/StationPassageTestTicketV2.java create mode 100644 src/test/java/org/uic/barcode/ticket/api/test/testtickets/VoucherTestTicketV1.java create mode 100644 src/test/java/org/uic/barcode/ticket/api/test/testtickets/VoucherTestTicketV2.java create mode 100644 src/test/java/org/uic/barcode/ticketTestDB/DecodeSparpreisTicketDBTest.java diff --git a/pom.xml b/pom.xml index e92db31..24157be 100644 --- a/pom.xml +++ b/pom.xml @@ -2,7 +2,7 @@ 4.0.0 org.uic.barcode org.uic.barcode - 1.2.2-SNAPSHOT + 1.2.3-SNAPSHOT jar UIC barcode encoding and decoding of bar code content according to UIC IRS 90918-9 @@ -55,20 +55,6 @@ - - - org.junit.jupiter - junit-jupiter-api - 5.5.1 - test - - - org.bouncycastle - bcprov-jdk15to18 - 1.6.5 - test - - diff --git a/src/main/java/org/uic/barcode/staticFrame/StaticFrame.java b/src/main/java/org/uic/barcode/staticFrame/StaticFrame.java index 5246ac7..639af69 100644 --- a/src/main/java/org/uic/barcode/staticFrame/StaticFrame.java +++ b/src/main/java/org/uic/barcode/staticFrame/StaticFrame.java @@ -488,7 +488,6 @@ public class StaticFrame { throw (new EncodingFormatException(String.format("UIC Barcode Version %s not supported", versionValue))); } - String lengthValue = new String( Arrays.copyOfRange(inputData,offset,offset + 4)); offset = offset + 4; diff --git a/src/main/java/org/uic/barcode/ticket/api/asn/omv1/TrainLinkType.java b/src/main/java/org/uic/barcode/ticket/api/asn/omv1/TrainLinkType.java index 5469c2f..6cc1c42 100644 --- a/src/main/java/org/uic/barcode/ticket/api/asn/omv1/TrainLinkType.java +++ b/src/main/java/org/uic/barcode/ticket/api/asn/omv1/TrainLinkType.java @@ -44,11 +44,11 @@ public class TrainLinkType extends Object { @FieldOrder(order = 2) @IntRange(minValue=0,maxValue=370) - @Asn1Optional public Long travelDate; + public Long travelDate; @FieldOrder(order = 3) @IntRange(minValue=0,maxValue=1440) - @Asn1Optional public Long departureTime; + public Long departureTime; @FieldOrder(order = 4) @IntRange(minValue=-60, maxValue=60) diff --git a/src/main/java/org/uic/barcode/ticket/api/asn/omv2/TrainLinkType.java b/src/main/java/org/uic/barcode/ticket/api/asn/omv2/TrainLinkType.java index f269497..16a101e 100644 --- a/src/main/java/org/uic/barcode/ticket/api/asn/omv2/TrainLinkType.java +++ b/src/main/java/org/uic/barcode/ticket/api/asn/omv2/TrainLinkType.java @@ -44,11 +44,11 @@ public class TrainLinkType extends Object { @FieldOrder(order = 2) @IntRange(minValue=0,maxValue=370) - @Asn1Optional public Long travelDate; + public Long travelDate; @FieldOrder(order = 3) @IntRange(minValue=0,maxValue=1440) - @Asn1Optional public Long departureTime; + public Long departureTime; @FieldOrder(order = 4) @IntRange(minValue=-60, maxValue=60) diff --git a/src/main/java/org/uic/barcode/ticket/api/impl/SimpleTrainLink.java b/src/main/java/org/uic/barcode/ticket/api/impl/SimpleTrainLink.java index 73403cd..12a5305 100644 --- a/src/main/java/org/uic/barcode/ticket/api/impl/SimpleTrainLink.java +++ b/src/main/java/org/uic/barcode/ticket/api/impl/SimpleTrainLink.java @@ -88,7 +88,13 @@ public class SimpleTrainLink implements ITrainLink{ * @see org.uic.ticket.api.spec.ITrainLink#setToStation(java.lang.String) */ public void setToStation(String toStation) { - this.toStation = toStation.trim(); + if (toStation != null) { + this.toStation = toStation.trim(); + } else { + this.toStation = null; + } + + } /* (nicht-Javadoc) @@ -102,7 +108,12 @@ public class SimpleTrainLink implements ITrainLink{ * @see org.uic.ticket.api.spec.ITrainLink#setFromStationName(java.lang.String) */ public void setFromStationName(String fromStationName) { - this.fromStationName = fromStationName.trim(); + if (fromStationName != null) { + this.fromStationName = fromStationName.trim(); + } else { + this.fromStationName = null; + } + } /* (nicht-Javadoc) diff --git a/src/main/java/org/uic/barcode/ticket/api/test/testtickets/AsnLevelPassTimeZoneTestTicketV1.java b/src/main/java/org/uic/barcode/ticket/api/test/testtickets/AsnLevelPassTimeZoneTestTicketV1.java deleted file mode 100644 index 5408638..0000000 --- a/src/main/java/org/uic/barcode/ticket/api/test/testtickets/AsnLevelPassTimeZoneTestTicketV1.java +++ /dev/null @@ -1,578 +0,0 @@ -package org.uic.barcode.ticket.api.test.testtickets; - -import org.uic.barcode.asn1.datatypesimpl.SequenceOfStringUTF8; -import org.uic.barcode.ticket.api.asn.omv1.CardReferenceType; -import org.uic.barcode.ticket.api.asn.omv1.ControlData; -import org.uic.barcode.ticket.api.asn.omv1.CustomerStatusType; -import org.uic.barcode.ticket.api.asn.omv1.DocumentData; -import org.uic.barcode.ticket.api.asn.omv1.ExtensionData; -import org.uic.barcode.ticket.api.asn.omv1.IssuingData; -import org.uic.barcode.ticket.api.asn.omv1.LinkMode; -import org.uic.barcode.ticket.api.asn.omv1.OpenTicketData; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCardReferenceType; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCustomerStatusType; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfDocumentData; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfExtensionData; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTicketLinkType; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTravelerType; -import org.uic.barcode.ticket.api.asn.omv1.StationPassageData; -import org.uic.barcode.ticket.api.asn.omv1.TicketDetailData; -import org.uic.barcode.ticket.api.asn.omv1.TicketLinkType; -import org.uic.barcode.ticket.api.asn.omv1.TicketType; -import org.uic.barcode.ticket.api.asn.omv1.TokenType; -import org.uic.barcode.ticket.api.asn.omv1.TravelClassType; -import org.uic.barcode.ticket.api.asn.omv1.TravelerData; -import org.uic.barcode.ticket.api.asn.omv1.TravelerType; -import org.uic.barcode.ticket.api.asn.omv1.UicRailTicketData; - - - public class AsnLevelPassTimeZoneTestTicketV1 { - - public static UicRailTicketData getUicTestTicket() { - UicRailTicketData ticket = new UicRailTicketData(); - populateTicket(ticket); - return ticket; - } - - /* - value UicRailTicketData ::= { - issuingDetail { - issuingYear 2018 - issuingDay 1 - specimen TRUE, - securePaperTicket FALSE, - activated TRUE, - issuerPNR "issuerTestPNR", - issuedOnLine 12 - } - ,travelerDetail{ - traveler { - { - firstName "John" - ,secondName "Dow" - ,idCard "12345" - ,ticketHolder TRUE - ,status {{customerStatusDescr "senior" }} - } - } - ,groupName "myGroup" - } - ,transportDocument { - { - token {tokenProviderIA5 "VDV", token '82DA'H } - ,ticket openTicket : { - returnIncluded FALSE - ,infoText "openTicketInfo" - ,classCode "second" - } - } - ,{ - ticket stationPassage : { - productName "passage" - ,stationNameUTF8 { "Amsterdam" } - ,validFromDay 0 - ,numberOfDaysValid 123 - } - } - } - ,controlDetail { - identificationByCardReference { - { trailingCardIdNum 100 } - } - ,identificationByIdCard FALSE - ,identificationByPassportId FALSE - ,passportValidationRequired FALSE - ,onlineValidationRequired FALSE - ,ageCheckRequired FALSE - ,reductionCardCheckRequired FALSE - ,infoText "cd" - ,includedTickets { - { referenceIA5 "UED12435867" - ,issuerName "OEBB" - ,issuerPNR "PNR" - ,productOwnerIA5 "test" - ,ticketType pass - ,linkMode onlyValidInCombination - - } - } - } - ,extension { - { extensionId "1", extensionData '82DA'H } - ,{ extensionId "2", extensionData '83DA'H } - } - } - */ - - /* - * asn.1 version 1.3 encoding: -Encoding to the file 'data.uper' using PER UNALIGNED encoding rule... -UicRailTicketData SEQUENCE [root fieldcount (not encoded) = 5] - issuingDetail IssuingData SEQUENCE [root fieldcount (not encoded) = 7] - issuingYear INTEGER [length (not encoded) = 1.0] - 2018 - issuingDay INTEGER [length (not encoded) = 1.1] - 1 - specimen BOOLEAN [length (not encoded) = 0.1] - TRUE - securePaperTicket BOOLEAN [length (not encoded) = 0.1] - FALSE - activated BOOLEAN [length (not encoded) = 0.1] - TRUE - issuerPNR IA5String [length = 13.0] - "issuerTestPNR" - issuedOnLine INTEGER [length = 1.0] - 12 - travelerDetail TravelerData SEQUENCE [root fieldcount (not encoded) = 2] - traveler SEQUENCE OF [count = 1] - TravelerType SEQUENCE [root fieldcount (not encoded) = 5] - firstName UTF8String [length = 4.0] - 0x4a6f686e - secondName UTF8String [length = 3.0] - 0x446f77 - idCard IA5String [length = 5.0] - "12345" - ticketHolder BOOLEAN [length (not encoded) = 0.1] - TRUE - status SEQUENCE OF [count = 1] - CustomerStatusType SEQUENCE [fieldcount (not encoded) = 1] - customerStatusDescr IA5String [length = 6.0] - "senior" - groupName UTF8String [length = 7.0] - 0x6d7947726f7570 - transportDocument SEQUENCE OF [count = 2] - DocumentData SEQUENCE [root fieldcount (not encoded) = 2] - token TokenType SEQUENCE [fieldcount (not encoded) = 2] - tokenProviderIA5 IA5String [length = 3.0] - "VDV" - token OCTET STRING [length = 2.0] - 0x82da - ticket CHOICE [index = 2] - openTicket OpenTicketData SEQUENCE [root fieldcount (not encoded) = 2] - returnIncluded BOOLEAN [length (not encoded) = 0.1] - FALSE - infoText UTF8String [length = 14.0] - 0x6f70656e5469636b6574496e666f - DocumentData SEQUENCE [root fieldcount (not encoded) = 1] - ticket CHOICE [index = 9] - stationPassage StationPassageData SEQUENCE [root fieldcount (not encoded) = 4] - productName UTF8String [length = 7.0] - 0x70617373616765 - stationNameUTF8 SEQUENCE OF [count = 1] - UTF8String [length = 9.0] - 0x416d7374657264616d - validFromDay INTEGER [length (not encoded) = 1.2] - 0 - numberOfDaysValid INTEGER [length = 1.0] - 123 - controlDetail ControlData SEQUENCE [root fieldcount (not encoded) = 9] - identificationByCardReference SEQUENCE OF [count = 1] - CardReferenceType SEQUENCE [root fieldcount (not encoded) = 1] - trailingCardIdNum INTEGER [length = 1.0] - 100 - identificationByIdCard BOOLEAN [length (not encoded) = 0.1] - FALSE - identificationByPassportId BOOLEAN [length (not encoded) = 0.1] - FALSE - passportValidationRequired BOOLEAN [length (not encoded) = 0.1] - FALSE - onlineValidationRequired BOOLEAN [length (not encoded) = 0.1] - FALSE - ageCheckRequired BOOLEAN [length (not encoded) = 0.1] - FALSE - reductionCardCheckRequired BOOLEAN [length (not encoded) = 0.1] - FALSE - infoText UTF8String [length = 2.0] - 0x6364 - includedTickets SEQUENCE OF [count = 1] - TicketLinkType SEQUENCE [root fieldcount (not encoded) = 6] - referenceIA5 IA5String [length = 11.0] - "UED12435867" - issuerName UTF8String [length = 4.0] - 0x4f454242 - issuerPNR IA5String [length = 3.0] - "PNR" - productOwnerIA5 IA5String [length = 4.0] - "test" - ticketType TicketType ENUMERATED [length (not encoded) = 0.2] - 1 - linkMode LinkMode ENUMERATED [length (not encoded) = 0.1] - 1 - extension SEQUENCE OF [count = 2] - ExtensionData SEQUENCE [fieldcount (not encoded) = 2] - extensionId IA5String [length = 1.0] - "1" - extensionData OCTET STRING [length = 2.0] - 0x82da - ExtensionData SEQUENCE [fieldcount (not encoded) = 2] - extensionId IA5String [length = 1.0] - "2" - extensionData OCTET STRING [length = 2.0] - 0x83da -Total encoded length = 154.3 -Encoded successfully in 155 bytes: -78022020 050DD3CF 9F5CBCAA 65E7D284 EA40218A 02D00082 2537B437 01A237BB -82B164CD A3580883 73CBBB4E FE40EDAF 28EE4DEE AE004A03 AD12B014 16D08000 -00000403 9BDC195B 951A58DA D95D125B 999BC480 88040EE0 C2E6E6C2 CECA0212 -82DAE6E8 CAE4C8C2 DA0080BD A6010040 2C800131 B200ADC2 EAC588C5 93466D5C -366E089E 8A848407 4275204E 9979F428 100B1028 2DA01640 507B40 - * - * - */ - - /* - * asn.1 version 2.0 encoding - * - Encoding to the file 'data.uper' using PER UNALIGNED encoding rule... -UicRailTicketData SEQUENCE [root fieldcount (not encoded) = 5] - issuingDetail IssuingData SEQUENCE [root fieldcount (not encoded) = 7] - issuingYear INTEGER [length (not encoded) = 1.0] - 2018 - issuingDay INTEGER [length (not encoded) = 1.1] - 1 - specimen BOOLEAN [length (not encoded) = 0.1] - TRUE - securePaperTicket BOOLEAN [length (not encoded) = 0.1] - FALSE - activated BOOLEAN [length (not encoded) = 0.1] - TRUE - issuerPNR IA5String [length = 13.0] - "issuerTestPNR" - issuedOnLine INTEGER [length = 1.0] - 12 - travelerDetail TravelerData SEQUENCE [root fieldcount (not encoded) = 2] - traveler SEQUENCE OF [count = 1] - TravelerType SEQUENCE [root fieldcount (not encoded) = 5] - firstName UTF8String [length = 4.0] - 0x4a6f686e - secondName UTF8String [length = 3.0] - 0x446f77 - idCard IA5String [length = 5.0] - "12345" - ticketHolder BOOLEAN [length (not encoded) = 0.1] - TRUE - status SEQUENCE OF [count = 1] - CustomerStatusType SEQUENCE [fieldcount (not encoded) = 1] - customerStatusDescr IA5String [length = 6.0] - "senior" - groupName UTF8String [length = 7.0] - 0x6d7947726f7570 - transportDocument SEQUENCE OF [count = 2] - DocumentData SEQUENCE [root fieldcount (not encoded) = 2] - token TokenType SEQUENCE [fieldcount (not encoded) = 2] - tokenProviderIA5 IA5String [length = 3.0] - "VDV" - token OCTET STRING [length = 2.0] - 0x82da - ticket CHOICE [index = 2] - openTicket OpenTicketData SEQUENCE [root fieldcount (not encoded) = 2] - returnIncluded BOOLEAN [length (not encoded) = 0.1] - FALSE - infoText UTF8String [length = 14.0] - 0x6f70656e5469636b6574496e666f - DocumentData SEQUENCE [root fieldcount (not encoded) = 1] - ticket CHOICE [index = 9] - stationPassage StationPassageData SEQUENCE [root fieldcount (not encoded) = 4] - productName UTF8String [length = 7.0] - 0x70617373616765 - stationNameUTF8 SEQUENCE OF [count = 1] - UTF8String [length = 9.0] - 0x416d7374657264616d - validFromDay INTEGER [length (not encoded) = 1.2] - 0 - numberOfDaysValid INTEGER [length = 1.0] - 123 - controlDetail ControlData SEQUENCE [root fieldcount (not encoded) = 9] - identificationByCardReference SEQUENCE OF [count = 1] - CardReferenceType SEQUENCE [root fieldcount (not encoded) = 1] - trailingCardIdNum INTEGER [length = 1.0] - 100 - identificationByIdCard BOOLEAN [length (not encoded) = 0.1] - FALSE - identificationByPassportId BOOLEAN [length (not encoded) = 0.1] - FALSE - passportValidationRequired BOOLEAN [length (not encoded) = 0.1] - FALSE - onlineValidationRequired BOOLEAN [length (not encoded) = 0.1] - FALSE - ageCheckRequired BOOLEAN [length (not encoded) = 0.1] - FALSE - reductionCardCheckRequired BOOLEAN [length (not encoded) = 0.1] - FALSE - infoText UTF8String [length = 2.0] - 0x6364 - includedTickets SEQUENCE OF [count = 1] - TicketLinkType SEQUENCE [root fieldcount (not encoded) = 6] - referenceIA5 IA5String [length = 11.0] - "UED12435867" - issuerName UTF8String [length = 4.0] - 0x4f454242 - issuerPNR IA5String [length = 3.0] - "PNR" - productOwnerIA5 IA5String [length = 4.0] - "test" - ticketType TicketType ENUMERATED [length (not encoded) = 0.2] - 1 - linkMode LinkMode ENUMERATED [length (not encoded) = 0.1] - 1 - extension SEQUENCE OF [count = 2] - ExtensionData SEQUENCE [fieldcount (not encoded) = 2] - extensionId IA5String [length = 1.0] - "1" - extensionData OCTET STRING [length = 2.0] - 0x82da - ExtensionData SEQUENCE [fieldcount (not encoded) = 2] - extensionId IA5String [length = 1.0] - "2" - extensionData OCTET STRING [length = 2.0] - 0x83da -Total encoded length = 154.6 -Encoded successfully in 155 bytes: -78022020 050DD3CF 9F5CBCAA 65E7D284 EA40218A 02D00041 129BDA1B 80D11BDD -C158B266 D1AC0441 B9E5DDA7 7F2076D7 947726F7 57002501 D689580A 0B684000 -00000200 737B832B 72A34B1B 5B2BA24B 73337890 110081DC 185CDCD8 59D94042 -505B5CDD 195C9918 5B401017 B4C02008 05900026 364015B8 5D58B118 B268CDAB -86CDC113 D1509080 E84EA409 D32F3E85 02016205 05B402C8 0A0F68 - * - * - * - */ - - public static String getEncodingV1Hex() { - return "78022020050DD3CF9F5CBCAA65E7D284EA40218A02D000822537B43701A237BB" + - "82B164CDA358088373CBBB4EFE40EDAF28EE4DEEAE004A03AD12B01416D08000" + - "000004039BDC195B951A58DAD95D125B999BC48088040EE0C2E6E6C2CECA0212" + - "82DAE6E8CAE4C8C2DA0080BDA60100402C800131B200ADC2EAC588C593466D5C" + - "366E089E8A8484074275204E9979F428100B10282DA01640507B40"; - } - - public static String getEncodingV2Hex() { - return "78022020050DD3CF9F5CBCAA65E7D284EA40218A02D00041129BDA1B80D11BDD" + - "C158B266D1AC0441B9E5DDA77F2076D7947726F757002501D689580A0B684000" + - "00000200737B832B72A34B1B5B2BA24B73337890110081DC185CDCD859D94042" + - "505B5CDD195C99185B401017B4C0200805900026364015B85D58B118B268CDAB" + - "86CDC113D1509080E84EA409D32F3E850201620505B402C80A0F68"; - } - - - private static void populateTicket(UicRailTicketData ticket) { - - ticket.setControlDetail(new ControlData()); - populate(ticket.getControlDetail()); - - - ticket.setIssuingDetail(new IssuingData()); - populateIssuingData(ticket.getIssuingDetail()); - - TravelerData td = new TravelerData(); - populateTravelerData(td); - ticket.setTravelerDetail(td); - - SequenceOfDocumentData ds = new SequenceOfDocumentData(); - - - //OpenTicket - DocumentData do1 = new DocumentData(); - addOpenTicketData(do1); - ds.add(do1); - - //StationPassage - DocumentData do2 = new DocumentData(); - addStationPassage(do2); - ds.add(do2); - - ticket.setTransportDocument(ds); - - SequenceOfExtensionData ed = new SequenceOfExtensionData(); - populateExtensionSequence(ed); - ticket.setExtension(ed); - - } - - /* - ticket stationPassage : { - productName "passage" - ,stationNameUTF8 { "Amsterdam" } - ,validFromDay 0 - ,numberOfDaysValid 123 - } - */ - private static void addStationPassage(DocumentData dd) { - TicketDetailData tdd = new TicketDetailData(); - StationPassageData sp = new StationPassageData(); - sp.setProductName("passage"); - sp.setValidFromDay(0L); - sp.setNumberOfDaysValid(123L); - SequenceOfStringUTF8 ss = new SequenceOfStringUTF8(); - ss.add("Amsterdam"); - sp.setStationNameUTF8(ss); - tdd.setStationPassage(sp); - dd.setTicket(tdd); - } - - /* - { - token {tokenProviderIA5 "VDV", token '82DA'H } - ,ticket openTicket : { - returnIncluded FALSE - infoText "openTicketInfo" - } - } - */ - - - - private static void addOpenTicketData(DocumentData dd) { - TokenType to = new TokenType(); - to.setTokenProviderIA5("VDV"); - byte[] ba = { (byte) 0x82, (byte) 0xDA }; - to.setToken(ba); - dd.setToken(to); - - TicketDetailData tdd = new TicketDetailData(); - OpenTicketData otd = new OpenTicketData(); - otd.setInfoText("openTicketInfo"); - otd.setClassCode(TravelClassType.first); - otd.setReturnIncluded(false); - tdd.setOpenTicket(otd); - dd.setTicket(tdd); - } - - - /* - ,travelerDetail{ - traveler { - { - firstName "John" - ,secondName "Dow" - ,idCard "12345" - ,ticketHolder TRUE - ,status {{customerStatusDescr "senior" }} - } - } - ,groupName "myGroup" - } - */ - - private static void populateTravelerData(TravelerData td) { - td.setGroupName("myGroup"); - SequenceOfTravelerType trs = new SequenceOfTravelerType(); - TravelerType tr = new TravelerType(); - tr.setIdCard("12345"); - tr.setFirstName("John"); - tr.setSecondName("Dow"); - tr.setTicketHolder(true); - SequenceOfCustomerStatusType ts = new SequenceOfCustomerStatusType(); - CustomerStatusType cst = new CustomerStatusType(); - cst.setCustomerStatusDescr("senior"); - ts.add(cst); - tr.setStatus(ts); - trs.add(tr); - td.setTraveler(trs); - } - - /* - ,issuingDetail { - issuingYear 2018 - issuingDay 1 - specimen TRUE, - securePaperTicket FALSE, - activated TRUE, - issuerPNR "issuerTestPNR", - issuedOnLine 12 - } - */ - private static void populateIssuingData(IssuingData issuingDetail) { - issuingDetail.setIssuingYear(2018L); - issuingDetail.setIssuingDay(1L); - issuingDetail.setIssuerPNR("issuerTestPNR"); - issuingDetail.setSpecimen(true); - issuingDetail.setSecurePaperTicket(false); - issuingDetail.setActivated(true); - issuingDetail.setIssuedOnLine(12L); - } - - /* - ,extension { - { extensionId "1", extensionData '82DA'H } - ,{ extensionId "2", extensionData '83DA'H } - } - */ - private static void populateExtensionSequence(SequenceOfExtensionData ed) { - ExtensionData ed1 = new ExtensionData(); - ed1.setExtensionId("1"); - byte[] ba1 = { (byte) 0x82, (byte) 0xDA }; - ed1.setExtensionData(ba1); - ExtensionData ed2 = new ExtensionData(); - ed2.setExtensionId("2"); - byte[] ba2 = { (byte) 0x83, (byte) 0xDA }; - ed2.setExtensionData(ba2); - ed.add(ed1); - ed.add(ed2); - } - - /* - ,controlDetail { - identificationByCardReference { - { trailingCardIdNum 100 } - } - ,identificationByIdCard FALSE - ,identificationByPassportId FALSE - ,passportValidationRequired FALSE - ,onlineValidationRequired FALSE - ,ageCheckRequired FALSE - ,reductionCardCheckRequired FALSE - ,infoText "cd" - ,includedTickets { - { productOwnerIA5 "test" - , - - - } - } - } - */ - private static void populate(ControlData controlDetail) { - controlDetail.infoText = "cd"; - controlDetail.setAgeCheckRequired(false); - controlDetail.setIdentificationByIdCard(false); - controlDetail.setIdentificationByPassportId(false); - controlDetail.setOnlineValidationRequired(false); - controlDetail.setPassportValidationRequired(false); - controlDetail.setReductionCardCheckRequired(false); - controlDetail.setIdentificationByCardReference(new SequenceOfCardReferenceType()); - controlDetail.getIdentificationByCardReference().add(populateCardRefrence()); - SequenceOfTicketLinkType sit = new SequenceOfTicketLinkType(); - populateLinkedTickets(sit); - controlDetail.setIncludedTickets(sit); - } - - - /* - * - */ - private static void populateLinkedTickets(SequenceOfTicketLinkType sequenceOfTicketLinkType) { - TicketLinkType tlt = new TicketLinkType(); - tlt.productOwnerIA5="test"; - tlt.setTicketType(TicketType.pass); - tlt.setIssuerPNR("PNR"); - tlt.setReferenceIA5("UED12435867"); - tlt.setLinkMode(LinkMode.onlyValidInCombination); - tlt.setIssuerName("OEBB"); - sequenceOfTicketLinkType.add(tlt); - } - - /* - { - trailingCardIdNum 100 - } - */ - private static CardReferenceType populateCardRefrence() { - CardReferenceType cr = new CardReferenceType(); - cr.setTrailingCardIdNum(100L); - return cr; - } - - - - } diff --git a/src/main/java/org/uic/barcode/ticket/api/test/testtickets/CustomerCardTestTicketV1.java b/src/main/java/org/uic/barcode/ticket/api/test/testtickets/CustomerCardTestTicketV1.java deleted file mode 100644 index 09faac8..0000000 --- a/src/main/java/org/uic/barcode/ticket/api/test/testtickets/CustomerCardTestTicketV1.java +++ /dev/null @@ -1,175 +0,0 @@ -package org.uic.barcode.ticket.api.test.testtickets; - -import org.uic.barcode.ticket.api.asn.omv1.CardReferenceType; -import org.uic.barcode.ticket.api.asn.omv1.ControlData; -import org.uic.barcode.ticket.api.asn.omv1.CustomerCardData; -import org.uic.barcode.ticket.api.asn.omv1.CustomerStatusType; -import org.uic.barcode.ticket.api.asn.omv1.DocumentData; -import org.uic.barcode.ticket.api.asn.omv1.ExtensionData; -import org.uic.barcode.ticket.api.asn.omv1.GenderType; -import org.uic.barcode.ticket.api.asn.omv1.IssuingData; -import org.uic.barcode.ticket.api.asn.omv1.LinkMode; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCardReferenceType; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCustomerStatusType; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfDocumentData; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfExtensionData; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTicketLinkType; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTravelerType; -import org.uic.barcode.ticket.api.asn.omv1.TicketDetailData; -import org.uic.barcode.ticket.api.asn.omv1.TicketLinkType; -import org.uic.barcode.ticket.api.asn.omv1.TicketType; -import org.uic.barcode.ticket.api.asn.omv1.TravelClassType; -import org.uic.barcode.ticket.api.asn.omv1.TravelerData; -import org.uic.barcode.ticket.api.asn.omv1.TravelerType; -import org.uic.barcode.ticket.api.asn.omv1.UicRailTicketData; - - public class CustomerCardTestTicketV1 { - - public static UicRailTicketData getUicTestTicket() { - UicRailTicketData ticket = new UicRailTicketData(); - populateTicket(ticket); - return ticket; - } - - - - private static void populateTicket(UicRailTicketData ticket) { - - ticket.setControlDetail(new ControlData()); - populate(ticket.getControlDetail()); - - - ticket.setIssuingDetail(new IssuingData()); - populateIssuingData(ticket.getIssuingDetail()); - - TravelerData td = new TravelerData(); - populateTravelerData(td); - ticket.setTravelerDetail(td); - - SequenceOfDocumentData ds = new SequenceOfDocumentData(); - - - //OpenTicket - DocumentData do1 = new DocumentData(); - addCustomerCard(do1); - ds.add(do1); - - - ticket.setTransportDocument(ds); - - SequenceOfExtensionData ed = new SequenceOfExtensionData(); - populateExtensionSequence(ed); - ticket.setExtension(ed); - - } - - - //issue date: 04-03-2021 12:30 UTC - private static void populateIssuingData(IssuingData issuingDetail) { - issuingDetail.setIssuingYear(2021L); - issuingDetail.setIssuingTime(750L); - issuingDetail.setIssuingDay(63L); - issuingDetail.setIssuerPNR("issuerTestPNR"); - issuingDetail.setSpecimen(true); - issuingDetail.setSecurePaperTicket(false); - issuingDetail.setActivated(true); - issuingDetail.setIssuedOnLine(12L); - } - - private static void addCustomerCard(DocumentData dd) { - - TicketDetailData tdd = new TicketDetailData(); - CustomerCardData card = new CustomerCardData(); - card.setCustomer(getTraveler()); - card.setClassCode(TravelClassType.first); - card.setValidFromYear(2021L); - card.setValidFromDay(10L); - card.setValidUntilYear(1L); - card.setValidUntilDay(10L); - card.setCardTypeDescr("RAILPLUS"); - tdd.setCustomerCard(card); - dd.setTicket(tdd); - } - - - - private static void populateTravelerData(TravelerData td) { - td.setGroupName("myGroup"); - SequenceOfTravelerType trs = new SequenceOfTravelerType(); - TravelerType tr = new TravelerType(); - tr.setIdCard("12345"); - tr.setFirstName("John"); - tr.setSecondName("Dow"); - tr.setTicketHolder(true); - SequenceOfCustomerStatusType ts = new SequenceOfCustomerStatusType(); - CustomerStatusType cst = new CustomerStatusType(); - cst.setCustomerStatusDescr("senior"); - ts.add(cst); - tr.setStatus(ts); - trs.add(tr); - td.setTraveler(trs); - } - - private static TravelerType getTraveler() { - TravelerType tr = new TravelerType(); - tr.setIdCard("12345"); - tr.setFirstName("John"); - tr.setSecondName("Dow"); - tr.setDayOfBirth(100L); - tr.setGender(GenderType.male); - tr.setIdCard("IEDZ235FT"); - return tr; - } - - - - - - private static void populateExtensionSequence(SequenceOfExtensionData ed) { - ExtensionData ed1 = new ExtensionData(); - ed1.setExtensionId("1"); - byte[] ba1 = { (byte) 0x82, (byte) 0xDA }; - ed1.setExtensionData(ba1); - ExtensionData ed2 = new ExtensionData(); - ed2.setExtensionId("2"); - byte[] ba2 = { (byte) 0x83, (byte) 0xDA }; - ed2.setExtensionData(ba2); - ed.add(ed1); - ed.add(ed2); - } - - private static void populate(ControlData controlDetail) { - controlDetail.infoText = "cd"; - controlDetail.setAgeCheckRequired(false); - controlDetail.setIdentificationByIdCard(false); - controlDetail.setIdentificationByPassportId(false); - controlDetail.setOnlineValidationRequired(false); - controlDetail.setPassportValidationRequired(false); - controlDetail.setReductionCardCheckRequired(false); - controlDetail.setIdentificationByCardReference(new SequenceOfCardReferenceType()); - controlDetail.getIdentificationByCardReference().add(populateCardRefrence()); - SequenceOfTicketLinkType sit = new SequenceOfTicketLinkType(); - populateLinkedTickets(sit); - controlDetail.setIncludedTickets(sit); - } - - private static void populateLinkedTickets(SequenceOfTicketLinkType sequenceOfTicketLinkType) { - TicketLinkType tlt = new TicketLinkType(); - tlt.productOwnerIA5="test"; - tlt.setTicketType(TicketType.pass); - tlt.setIssuerPNR("PNR"); - tlt.setReferenceIA5("UED12435867"); - tlt.setLinkMode(LinkMode.onlyValidInCombination); - tlt.setIssuerName("OEBB"); - sequenceOfTicketLinkType.add(tlt); - } - - private static CardReferenceType populateCardRefrence() { - CardReferenceType cr = new CardReferenceType(); - cr.setTrailingCardIdNum(100L); - return cr; - } - - - - } diff --git a/src/main/java/org/uic/barcode/ticket/api/test/testtickets/CustomerCardTestTicketV2.java b/src/main/java/org/uic/barcode/ticket/api/test/testtickets/CustomerCardTestTicketV2.java deleted file mode 100644 index 7f01b94..0000000 --- a/src/main/java/org/uic/barcode/ticket/api/test/testtickets/CustomerCardTestTicketV2.java +++ /dev/null @@ -1,175 +0,0 @@ -package org.uic.barcode.ticket.api.test.testtickets; - -import org.uic.barcode.ticket.api.asn.omv2.CardReferenceType; -import org.uic.barcode.ticket.api.asn.omv2.ControlData; -import org.uic.barcode.ticket.api.asn.omv2.CustomerCardData; -import org.uic.barcode.ticket.api.asn.omv2.CustomerStatusType; -import org.uic.barcode.ticket.api.asn.omv2.DocumentData; -import org.uic.barcode.ticket.api.asn.omv2.ExtensionData; -import org.uic.barcode.ticket.api.asn.omv2.GenderType; -import org.uic.barcode.ticket.api.asn.omv2.IssuingData; -import org.uic.barcode.ticket.api.asn.omv2.LinkMode; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfCardReferenceType; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfCustomerStatusType; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfDocumentData; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfExtensionData; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfTicketLinkType; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfTravelerType; -import org.uic.barcode.ticket.api.asn.omv2.TicketDetailData; -import org.uic.barcode.ticket.api.asn.omv2.TicketLinkType; -import org.uic.barcode.ticket.api.asn.omv2.TicketType; -import org.uic.barcode.ticket.api.asn.omv2.TravelClassType; -import org.uic.barcode.ticket.api.asn.omv2.TravelerData; -import org.uic.barcode.ticket.api.asn.omv2.TravelerType; -import org.uic.barcode.ticket.api.asn.omv2.UicRailTicketData; - - public class CustomerCardTestTicketV2 { - - public static UicRailTicketData getUicTestTicket() { - UicRailTicketData ticket = new UicRailTicketData(); - populateTicket(ticket); - return ticket; - } - - - - private static void populateTicket(UicRailTicketData ticket) { - - ticket.setControlDetail(new ControlData()); - populate(ticket.getControlDetail()); - - - ticket.setIssuingDetail(new IssuingData()); - populateIssuingData(ticket.getIssuingDetail()); - - TravelerData td = new TravelerData(); - populateTravelerData(td); - ticket.setTravelerDetail(td); - - SequenceOfDocumentData ds = new SequenceOfDocumentData(); - - - //OpenTicket - DocumentData do1 = new DocumentData(); - addCustomerCard(do1); - ds.add(do1); - - - ticket.setTransportDocument(ds); - - SequenceOfExtensionData ed = new SequenceOfExtensionData(); - populateExtensionSequence(ed); - ticket.setExtension(ed); - - } - - - //issue date: 04-03-2021 12:30 UTC - private static void populateIssuingData(IssuingData issuingDetail) { - issuingDetail.setIssuingYear(2021L); - issuingDetail.setIssuingTime(750L); - issuingDetail.setIssuingDay(63L); - issuingDetail.setIssuerPNR("issuerTestPNR"); - issuingDetail.setSpecimen(true); - issuingDetail.setSecurePaperTicket(false); - issuingDetail.setActivated(true); - issuingDetail.setIssuedOnLine(12L); - } - - private static void addCustomerCard(DocumentData dd) { - - TicketDetailData tdd = new TicketDetailData(); - CustomerCardData card = new CustomerCardData(); - card.setCustomer(getTraveler()); - card.setClassCode(TravelClassType.first); - card.setValidFromYear(2021L); - card.setValidFromDay(10L); - card.setValidUntilYear(1L); - card.setValidUntilDay(10L); - card.setCardTypeDescr("RAILPLUS"); - tdd.setCustomerCard(card); - dd.setTicket(tdd); - } - - - - private static void populateTravelerData(TravelerData td) { - td.setGroupName("myGroup"); - SequenceOfTravelerType trs = new SequenceOfTravelerType(); - TravelerType tr = new TravelerType(); - tr.setIdCard("12345"); - tr.setFirstName("John"); - tr.setSecondName("Dow"); - tr.setTicketHolder(true); - SequenceOfCustomerStatusType ts = new SequenceOfCustomerStatusType(); - CustomerStatusType cst = new CustomerStatusType(); - cst.setCustomerStatusDescr("senior"); - ts.add(cst); - tr.setStatus(ts); - trs.add(tr); - td.setTraveler(trs); - } - - private static TravelerType getTraveler() { - TravelerType tr = new TravelerType(); - tr.setIdCard("12345"); - tr.setFirstName("John"); - tr.setSecondName("Dow"); - tr.setDayOfBirth(100L); - tr.setGender(GenderType.male); - tr.setIdCard("IEDZ235FT"); - return tr; - } - - - - - - private static void populateExtensionSequence(SequenceOfExtensionData ed) { - ExtensionData ed1 = new ExtensionData(); - ed1.setExtensionId("1"); - byte[] ba1 = { (byte) 0x82, (byte) 0xDA }; - ed1.setExtensionData(ba1); - ExtensionData ed2 = new ExtensionData(); - ed2.setExtensionId("2"); - byte[] ba2 = { (byte) 0x83, (byte) 0xDA }; - ed2.setExtensionData(ba2); - ed.add(ed1); - ed.add(ed2); - } - - private static void populate(ControlData controlDetail) { - controlDetail.infoText = "cd"; - controlDetail.setAgeCheckRequired(false); - controlDetail.setIdentificationByIdCard(false); - controlDetail.setIdentificationByPassportId(false); - controlDetail.setOnlineValidationRequired(false); - controlDetail.setPassportValidationRequired(false); - controlDetail.setReductionCardCheckRequired(false); - controlDetail.setIdentificationByCardReference(new SequenceOfCardReferenceType()); - controlDetail.getIdentificationByCardReference().add(populateCardRefrence()); - SequenceOfTicketLinkType sit = new SequenceOfTicketLinkType(); - populateLinkedTickets(sit); - controlDetail.setIncludedTickets(sit); - } - - private static void populateLinkedTickets(SequenceOfTicketLinkType sequenceOfTicketLinkType) { - TicketLinkType tlt = new TicketLinkType(); - tlt.productOwnerIA5="test"; - tlt.setTicketType(TicketType.pass); - tlt.setIssuerPNR("PNR"); - tlt.setReferenceIA5("UED12435867"); - tlt.setLinkMode(LinkMode.onlyValidInCombination); - tlt.setIssuerName("OEBB"); - sequenceOfTicketLinkType.add(tlt); - } - - private static CardReferenceType populateCardRefrence() { - CardReferenceType cr = new CardReferenceType(); - cr.setTrailingCardIdNum(100L); - return cr; - } - - - - } diff --git a/src/main/java/org/uic/barcode/ticket/api/test/testtickets/DelayTestTicketV3.java b/src/main/java/org/uic/barcode/ticket/api/test/testtickets/DelayTestTicketV3.java deleted file mode 100644 index 9364acd..0000000 --- a/src/main/java/org/uic/barcode/ticket/api/test/testtickets/DelayTestTicketV3.java +++ /dev/null @@ -1,163 +0,0 @@ -package org.uic.barcode.ticket.api.test.testtickets; - -import org.uic.barcode.asn1.datatypes.Asn1BigInteger; -import org.uic.barcode.ticket.api.asn.omv1.CardReferenceType; -import org.uic.barcode.ticket.api.asn.omv1.ControlData; -import org.uic.barcode.ticket.api.asn.omv1.CustomerStatusType; -import org.uic.barcode.ticket.api.asn.omv1.DelayConfirmation; -import org.uic.barcode.ticket.api.asn.omv1.DocumentData; -import org.uic.barcode.ticket.api.asn.omv1.ExtensionData; -import org.uic.barcode.ticket.api.asn.omv1.IssuingData; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCardReferenceType; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCustomerStatusType; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfDocumentData; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfExtensionData; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTicketLinkType; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTravelerType; -import org.uic.barcode.ticket.api.asn.omv1.TicketDetailData; -import org.uic.barcode.ticket.api.asn.omv1.TicketLinkType; -import org.uic.barcode.ticket.api.asn.omv1.TravelerData; -import org.uic.barcode.ticket.api.asn.omv1.TravelerType; -import org.uic.barcode.ticket.api.asn.omv1.UicRailTicketData; - - public class DelayTestTicketV3 { - - public static UicRailTicketData getUicTestTicket() { - UicRailTicketData ticket = new UicRailTicketData(); - populateTicket(ticket); - return ticket; - } - - - - private static void populateTicket(UicRailTicketData ticket) { - - ticket.setControlDetail(new ControlData()); - populate(ticket.getControlDetail()); - - - ticket.setIssuingDetail(new IssuingData()); - populateIssuingData(ticket.getIssuingDetail()); - - TravelerData td = new TravelerData(); - populateTravelerData(td); - ticket.setTravelerDetail(td); - - SequenceOfDocumentData ds = new SequenceOfDocumentData(); - - - //FipTicket - DocumentData do1 = new DocumentData(); - addTicket(do1); - ds.add(do1); - - - ticket.setTransportDocument(ds); - - SequenceOfExtensionData ed = new SequenceOfExtensionData(); - populateExtensionSequence(ed); - ticket.setExtension(ed); - - } - - - //issue date: 04-03-2021 12:30 UTC - private static void populateIssuingData(IssuingData issuingDetail) { - issuingDetail.setIssuingYear(2021L); - issuingDetail.setIssuingTime(750L); - issuingDetail.setIssuingDay(63L); - issuingDetail.setIssuerPNR("issuerTestPNR"); - issuingDetail.setSpecimen(true); - issuingDetail.setSecurePaperTicket(false); - issuingDetail.setActivated(true); - issuingDetail.setIssuedOnLine(12L); - } - - private static void addTicket(DocumentData dd) { - - TicketDetailData tdd = new TicketDetailData(); - DelayConfirmation ticket = new DelayConfirmation(); - ticket.setPlannedArrivalDay(0L); - ticket.setPlannedArrivalTime(1000L); - ticket.setDelay(30L); - ticket.setInfoText("delay confirmation"); - ticket.setAffectedTickets(getAffectedTickets()); - ticket.setPlannedArrivalYear(2022L); - ticket.setReferenceIA5("ABDJ12345"); - ticket.setStationNum(8000001L); - ticket.setStationNameUTF8("station of delay"); - ticket.setTrainCancelled(false); - ticket.setTrainNum(Asn1BigInteger.toAsn1(100L)); - tdd.setDelayConfirmation(ticket); - dd.setTicket(tdd); - } - - private static SequenceOfTicketLinkType getAffectedTickets() { - - SequenceOfTicketLinkType lts = new SequenceOfTicketLinkType(); - TicketLinkType t1 = new TicketLinkType(); - t1.setReferenceNum(1080L); - t1.setReferenceNum(801234567890L); - t1.setProductOwnerNum(1080L); - lts.add(t1); - return lts; - - } - - - - private static void populateTravelerData(TravelerData td) { - SequenceOfTravelerType trs = new SequenceOfTravelerType(); - TravelerType tr = new TravelerType(); - tr.setIdCard("12345"); - tr.setFirstName("John"); - tr.setSecondName("Dow"); - tr.setTicketHolder(true); - SequenceOfCustomerStatusType ts = new SequenceOfCustomerStatusType(); - CustomerStatusType cst = new CustomerStatusType(); - cst.setCustomerStatusDescr("employee"); - ts.add(cst); - tr.setStatus(ts); - trs.add(tr); - td.setTraveler(trs); - } - - - - - - private static void populateExtensionSequence(SequenceOfExtensionData ed) { - ExtensionData ed1 = new ExtensionData(); - ed1.setExtensionId("1"); - byte[] ba1 = { (byte) 0x82, (byte) 0xDA }; - ed1.setExtensionData(ba1); - ExtensionData ed2 = new ExtensionData(); - ed2.setExtensionId("2"); - byte[] ba2 = { (byte) 0x83, (byte) 0xDA }; - ed2.setExtensionData(ba2); - ed.add(ed1); - ed.add(ed2); - } - - private static void populate(ControlData controlDetail) { - controlDetail.infoText = "cd"; - controlDetail.setAgeCheckRequired(false); - controlDetail.setIdentificationByIdCard(false); - controlDetail.setIdentificationByPassportId(false); - controlDetail.setOnlineValidationRequired(false); - controlDetail.setPassportValidationRequired(false); - controlDetail.setReductionCardCheckRequired(false); - controlDetail.setIdentificationByCardReference(new SequenceOfCardReferenceType()); - controlDetail.getIdentificationByCardReference().add(populateCardRefrence()); - } - - - private static CardReferenceType populateCardRefrence() { - CardReferenceType cr = new CardReferenceType(); - cr.setTrailingCardIdNum(100L); - return cr; - } - - - - } diff --git a/src/main/java/org/uic/barcode/ticket/api/test/testtickets/FipTimeZoneTestTicketV1.java b/src/main/java/org/uic/barcode/ticket/api/test/testtickets/FipTimeZoneTestTicketV1.java deleted file mode 100644 index bfd54fe..0000000 --- a/src/main/java/org/uic/barcode/ticket/api/test/testtickets/FipTimeZoneTestTicketV1.java +++ /dev/null @@ -1,155 +0,0 @@ -package org.uic.barcode.ticket.api.test.testtickets; - -import org.uic.barcode.asn1.datatypes.Asn1BigInteger; -import org.uic.barcode.ticket.api.asn.omv1.CardReferenceType; -import org.uic.barcode.ticket.api.asn.omv1.ControlData; -import org.uic.barcode.ticket.api.asn.omv1.CustomerStatusType; -import org.uic.barcode.ticket.api.asn.omv1.DocumentData; -import org.uic.barcode.ticket.api.asn.omv1.ExtensionData; -import org.uic.barcode.ticket.api.asn.omv1.FIPTicketData; -import org.uic.barcode.ticket.api.asn.omv1.IssuingData; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfActivatedDays; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCardReferenceType; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCarrierNum; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCustomerStatusType; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfDocumentData; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfExtensionData; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTravelerType; -import org.uic.barcode.ticket.api.asn.omv1.TicketDetailData; -import org.uic.barcode.ticket.api.asn.omv1.TravelClassType; -import org.uic.barcode.ticket.api.asn.omv1.TravelerData; -import org.uic.barcode.ticket.api.asn.omv1.TravelerType; -import org.uic.barcode.ticket.api.asn.omv1.UicRailTicketData; - - public class FipTimeZoneTestTicketV1 { - - public static UicRailTicketData getUicTestTicket() { - UicRailTicketData ticket = new UicRailTicketData(); - populateTicket(ticket); - return ticket; - } - - - - private static void populateTicket(UicRailTicketData ticket) { - - ticket.setControlDetail(new ControlData()); - populate(ticket.getControlDetail()); - - - ticket.setIssuingDetail(new IssuingData()); - populateIssuingData(ticket.getIssuingDetail()); - - TravelerData td = new TravelerData(); - populateTravelerData(td); - ticket.setTravelerDetail(td); - - SequenceOfDocumentData ds = new SequenceOfDocumentData(); - - - //FipTicket - DocumentData do1 = new DocumentData(); - addFip(do1); - ds.add(do1); - - - ticket.setTransportDocument(ds); - - SequenceOfExtensionData ed = new SequenceOfExtensionData(); - populateExtensionSequence(ed); - ticket.setExtension(ed); - - } - - - //issue date: 04-03-2021 12:30 UTC - private static void populateIssuingData(IssuingData issuingDetail) { - issuingDetail.setIssuingYear(2021L); - issuingDetail.setIssuingTime(750L); - issuingDetail.setIssuingDay(63L); - issuingDetail.setIssuerPNR("issuerTestPNR"); - issuingDetail.setSpecimen(true); - issuingDetail.setSecurePaperTicket(false); - issuingDetail.setActivated(true); - issuingDetail.setIssuedOnLine(12L); - } - - private static void addFip(DocumentData dd) { - - TicketDetailData tdd = new TicketDetailData(); - FIPTicketData otd = new FIPTicketData(); - otd.setClassCode(TravelClassType.first); - otd.setNumberOfTravelDays(8L); - otd.setValidFromDay(10L); - otd.setValidUntilDay(10L); - SequenceOfCarrierNum carriers = new SequenceOfCarrierNum(); - carriers.add(1080L); - carriers.add(1181L); - otd.setCarrierNum(carriers); - otd.setIncludesSupplements(true); - otd.setReferenceNum(Asn1BigInteger.toAsn1(123456789)); - SequenceOfActivatedDays s = new SequenceOfActivatedDays(); - s.add(0L); - otd.setActivatedDay(s); - - tdd.setFipTicket(otd); - dd.setTicket(tdd); - } - - - - private static void populateTravelerData(TravelerData td) { - SequenceOfTravelerType trs = new SequenceOfTravelerType(); - TravelerType tr = new TravelerType(); - tr.setIdCard("12345"); - tr.setFirstName("John"); - tr.setSecondName("Dow"); - tr.setTicketHolder(true); - SequenceOfCustomerStatusType ts = new SequenceOfCustomerStatusType(); - CustomerStatusType cst = new CustomerStatusType(); - cst.setCustomerStatusDescr("employee"); - ts.add(cst); - tr.setStatus(ts); - trs.add(tr); - td.setTraveler(trs); - } - - - - - - private static void populateExtensionSequence(SequenceOfExtensionData ed) { - ExtensionData ed1 = new ExtensionData(); - ed1.setExtensionId("1"); - byte[] ba1 = { (byte) 0x82, (byte) 0xDA }; - ed1.setExtensionData(ba1); - ExtensionData ed2 = new ExtensionData(); - ed2.setExtensionId("2"); - byte[] ba2 = { (byte) 0x83, (byte) 0xDA }; - ed2.setExtensionData(ba2); - ed.add(ed1); - ed.add(ed2); - } - - private static void populate(ControlData controlDetail) { - controlDetail.infoText = "cd"; - controlDetail.setAgeCheckRequired(false); - controlDetail.setIdentificationByIdCard(false); - controlDetail.setIdentificationByPassportId(false); - controlDetail.setOnlineValidationRequired(false); - controlDetail.setPassportValidationRequired(false); - controlDetail.setReductionCardCheckRequired(false); - controlDetail.setIdentificationByCardReference(new SequenceOfCardReferenceType()); - controlDetail.getIdentificationByCardReference().add(populateCardRefrence()); - } - - - private static CardReferenceType populateCardRefrence() { - CardReferenceType cr = new CardReferenceType(); - cr.setTrailingCardIdNum(100L); - return cr; - } - - - - } diff --git a/src/main/java/org/uic/barcode/ticket/api/test/testtickets/FipTimeZoneTestTicketV2.java b/src/main/java/org/uic/barcode/ticket/api/test/testtickets/FipTimeZoneTestTicketV2.java deleted file mode 100644 index 08b4507..0000000 --- a/src/main/java/org/uic/barcode/ticket/api/test/testtickets/FipTimeZoneTestTicketV2.java +++ /dev/null @@ -1,155 +0,0 @@ -package org.uic.barcode.ticket.api.test.testtickets; - -import org.uic.barcode.asn1.datatypes.Asn1BigInteger; -import org.uic.barcode.ticket.api.asn.omv2.CardReferenceType; -import org.uic.barcode.ticket.api.asn.omv2.ControlData; -import org.uic.barcode.ticket.api.asn.omv2.CustomerStatusType; -import org.uic.barcode.ticket.api.asn.omv2.DocumentData; -import org.uic.barcode.ticket.api.asn.omv2.ExtensionData; -import org.uic.barcode.ticket.api.asn.omv2.FIPTicketData; -import org.uic.barcode.ticket.api.asn.omv2.IssuingData; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfActivatedDays; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfCardReferenceType; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfCarrierNum; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfCustomerStatusType; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfDocumentData; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfExtensionData; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfTravelerType; -import org.uic.barcode.ticket.api.asn.omv2.TicketDetailData; -import org.uic.barcode.ticket.api.asn.omv2.TravelClassType; -import org.uic.barcode.ticket.api.asn.omv2.TravelerData; -import org.uic.barcode.ticket.api.asn.omv2.TravelerType; -import org.uic.barcode.ticket.api.asn.omv2.UicRailTicketData; - - public class FipTimeZoneTestTicketV2 { - - public static UicRailTicketData getUicTestTicket() { - UicRailTicketData ticket = new UicRailTicketData(); - populateTicket(ticket); - return ticket; - } - - - - private static void populateTicket(UicRailTicketData ticket) { - - ticket.setControlDetail(new ControlData()); - populate(ticket.getControlDetail()); - - - ticket.setIssuingDetail(new IssuingData()); - populateIssuingData(ticket.getIssuingDetail()); - - TravelerData td = new TravelerData(); - populateTravelerData(td); - ticket.setTravelerDetail(td); - - SequenceOfDocumentData ds = new SequenceOfDocumentData(); - - - //FipTicket - DocumentData do1 = new DocumentData(); - addFip(do1); - ds.add(do1); - - - ticket.setTransportDocument(ds); - - SequenceOfExtensionData ed = new SequenceOfExtensionData(); - populateExtensionSequence(ed); - ticket.setExtension(ed); - - } - - - //issue date: 04-03-2021 12:30 UTC - private static void populateIssuingData(IssuingData issuingDetail) { - issuingDetail.setIssuingYear(2021L); - issuingDetail.setIssuingTime(750L); - issuingDetail.setIssuingDay(63L); - issuingDetail.setIssuerPNR("issuerTestPNR"); - issuingDetail.setSpecimen(true); - issuingDetail.setSecurePaperTicket(false); - issuingDetail.setActivated(true); - issuingDetail.setIssuedOnLine(12L); - } - - private static void addFip(DocumentData dd) { - - TicketDetailData tdd = new TicketDetailData(); - FIPTicketData otd = new FIPTicketData(); - otd.setClassCode(TravelClassType.first); - otd.setNumberOfTravelDays(8L); - otd.setValidFromDay(10L); - otd.setValidUntilDay(10L); - SequenceOfCarrierNum carriers = new SequenceOfCarrierNum(); - carriers.add(1080L); - carriers.add(1181L); - otd.setCarrierNum(carriers); - otd.setIncludesSupplements(true); - otd.setReferenceNum(Asn1BigInteger.toAsn1(123445)); - SequenceOfActivatedDays s = new SequenceOfActivatedDays(); - s.add(0L); - otd.setActivatedDay(s); - - tdd.setFipTicket(otd); - dd.setTicket(tdd); - } - - - - private static void populateTravelerData(TravelerData td) { - SequenceOfTravelerType trs = new SequenceOfTravelerType(); - TravelerType tr = new TravelerType(); - tr.setIdCard("12345"); - tr.setFirstName("John"); - tr.setSecondName("Dow"); - tr.setTicketHolder(true); - SequenceOfCustomerStatusType ts = new SequenceOfCustomerStatusType(); - CustomerStatusType cst = new CustomerStatusType(); - cst.setCustomerStatusDescr("employee"); - ts.add(cst); - tr.setStatus(ts); - trs.add(tr); - td.setTraveler(trs); - } - - - - - - private static void populateExtensionSequence(SequenceOfExtensionData ed) { - ExtensionData ed1 = new ExtensionData(); - ed1.setExtensionId("1"); - byte[] ba1 = { (byte) 0x82, (byte) 0xDA }; - ed1.setExtensionData(ba1); - ExtensionData ed2 = new ExtensionData(); - ed2.setExtensionId("2"); - byte[] ba2 = { (byte) 0x83, (byte) 0xDA }; - ed2.setExtensionData(ba2); - ed.add(ed1); - ed.add(ed2); - } - - private static void populate(ControlData controlDetail) { - controlDetail.infoText = "cd"; - controlDetail.setAgeCheckRequired(false); - controlDetail.setIdentificationByIdCard(false); - controlDetail.setIdentificationByPassportId(false); - controlDetail.setOnlineValidationRequired(false); - controlDetail.setPassportValidationRequired(false); - controlDetail.setReductionCardCheckRequired(false); - controlDetail.setIdentificationByCardReference(new SequenceOfCardReferenceType()); - controlDetail.getIdentificationByCardReference().add(populateCardRefrence()); - } - - - private static CardReferenceType populateCardRefrence() { - CardReferenceType cr = new CardReferenceType(); - cr.setTrailingCardIdNum(100L); - return cr; - } - - - - } diff --git a/src/main/java/org/uic/barcode/ticket/api/test/testtickets/OpenTestTicketV1.java b/src/main/java/org/uic/barcode/ticket/api/test/testtickets/OpenTestTicketV1.java deleted file mode 100644 index 69a61a9..0000000 --- a/src/main/java/org/uic/barcode/ticket/api/test/testtickets/OpenTestTicketV1.java +++ /dev/null @@ -1,578 +0,0 @@ -package org.uic.barcode.ticket.api.test.testtickets; - -import org.uic.barcode.asn1.datatypesimpl.SequenceOfStringUTF8; -import org.uic.barcode.ticket.api.asn.omv1.CardReferenceType; -import org.uic.barcode.ticket.api.asn.omv1.ControlData; -import org.uic.barcode.ticket.api.asn.omv1.CustomerStatusType; -import org.uic.barcode.ticket.api.asn.omv1.DocumentData; -import org.uic.barcode.ticket.api.asn.omv1.ExtensionData; -import org.uic.barcode.ticket.api.asn.omv1.IssuingData; -import org.uic.barcode.ticket.api.asn.omv1.LinkMode; -import org.uic.barcode.ticket.api.asn.omv1.OpenTicketData; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCardReferenceType; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCustomerStatusType; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfDocumentData; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfExtensionData; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTicketLinkType; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTravelerType; -import org.uic.barcode.ticket.api.asn.omv1.StationPassageData; -import org.uic.barcode.ticket.api.asn.omv1.TicketDetailData; -import org.uic.barcode.ticket.api.asn.omv1.TicketLinkType; -import org.uic.barcode.ticket.api.asn.omv1.TicketType; -import org.uic.barcode.ticket.api.asn.omv1.TokenType; -import org.uic.barcode.ticket.api.asn.omv1.TravelClassType; -import org.uic.barcode.ticket.api.asn.omv1.TravelerData; -import org.uic.barcode.ticket.api.asn.omv1.TravelerType; -import org.uic.barcode.ticket.api.asn.omv1.UicRailTicketData; - - - public class OpenTestTicketV1 { - - public static UicRailTicketData getUicTestTicket() { - UicRailTicketData ticket = new UicRailTicketData(); - populateTicket(ticket); - return ticket; - } - - /* - value UicRailTicketData ::= { - issuingDetail { - issuingYear 2018 - issuingDay 1 - specimen TRUE, - securePaperTicket FALSE, - activated TRUE, - issuerPNR "issuerTestPNR", - issuedOnLine 12 - } - ,travelerDetail{ - traveler { - { - firstName "John" - ,secondName "Dow" - ,idCard "12345" - ,ticketHolder TRUE - ,status {{customerStatusDescr "senior" }} - } - } - ,groupName "myGroup" - } - ,transportDocument { - { - token {tokenProviderIA5 "VDV", token '82DA'H } - ,ticket openTicket : { - returnIncluded FALSE - ,infoText "openTicketInfo" - ,classCode "second" - } - } - ,{ - ticket stationPassage : { - productName "passage" - ,stationNameUTF8 { "Amsterdam" } - ,validFromDay 0 - ,numberOfDaysValid 123 - } - } - } - ,controlDetail { - identificationByCardReference { - { trailingCardIdNum 100 } - } - ,identificationByIdCard FALSE - ,identificationByPassportId FALSE - ,passportValidationRequired FALSE - ,onlineValidationRequired FALSE - ,ageCheckRequired FALSE - ,reductionCardCheckRequired FALSE - ,infoText "cd" - ,includedTickets { - { referenceIA5 "UED12435867" - ,issuerName "OEBB" - ,issuerPNR "PNR" - ,productOwnerIA5 "test" - ,ticketType pass - ,linkMode onlyValidInCombination - - } - } - } - ,extension { - { extensionId "1", extensionData '82DA'H } - ,{ extensionId "2", extensionData '83DA'H } - } - } - */ - - /* - * asn.1 version 1.3 encoding: -Encoding to the file 'data.uper' using PER UNALIGNED encoding rule... -UicRailTicketData SEQUENCE [root fieldcount (not encoded) = 5] - issuingDetail IssuingData SEQUENCE [root fieldcount (not encoded) = 7] - issuingYear INTEGER [length (not encoded) = 1.0] - 2018 - issuingDay INTEGER [length (not encoded) = 1.1] - 1 - specimen BOOLEAN [length (not encoded) = 0.1] - TRUE - securePaperTicket BOOLEAN [length (not encoded) = 0.1] - FALSE - activated BOOLEAN [length (not encoded) = 0.1] - TRUE - issuerPNR IA5String [length = 13.0] - "issuerTestPNR" - issuedOnLine INTEGER [length = 1.0] - 12 - travelerDetail TravelerData SEQUENCE [root fieldcount (not encoded) = 2] - traveler SEQUENCE OF [count = 1] - TravelerType SEQUENCE [root fieldcount (not encoded) = 5] - firstName UTF8String [length = 4.0] - 0x4a6f686e - secondName UTF8String [length = 3.0] - 0x446f77 - idCard IA5String [length = 5.0] - "12345" - ticketHolder BOOLEAN [length (not encoded) = 0.1] - TRUE - status SEQUENCE OF [count = 1] - CustomerStatusType SEQUENCE [fieldcount (not encoded) = 1] - customerStatusDescr IA5String [length = 6.0] - "senior" - groupName UTF8String [length = 7.0] - 0x6d7947726f7570 - transportDocument SEQUENCE OF [count = 2] - DocumentData SEQUENCE [root fieldcount (not encoded) = 2] - token TokenType SEQUENCE [fieldcount (not encoded) = 2] - tokenProviderIA5 IA5String [length = 3.0] - "VDV" - token OCTET STRING [length = 2.0] - 0x82da - ticket CHOICE [index = 2] - openTicket OpenTicketData SEQUENCE [root fieldcount (not encoded) = 2] - returnIncluded BOOLEAN [length (not encoded) = 0.1] - FALSE - infoText UTF8String [length = 14.0] - 0x6f70656e5469636b6574496e666f - DocumentData SEQUENCE [root fieldcount (not encoded) = 1] - ticket CHOICE [index = 9] - stationPassage StationPassageData SEQUENCE [root fieldcount (not encoded) = 4] - productName UTF8String [length = 7.0] - 0x70617373616765 - stationNameUTF8 SEQUENCE OF [count = 1] - UTF8String [length = 9.0] - 0x416d7374657264616d - validFromDay INTEGER [length (not encoded) = 1.2] - 0 - numberOfDaysValid INTEGER [length = 1.0] - 123 - controlDetail ControlData SEQUENCE [root fieldcount (not encoded) = 9] - identificationByCardReference SEQUENCE OF [count = 1] - CardReferenceType SEQUENCE [root fieldcount (not encoded) = 1] - trailingCardIdNum INTEGER [length = 1.0] - 100 - identificationByIdCard BOOLEAN [length (not encoded) = 0.1] - FALSE - identificationByPassportId BOOLEAN [length (not encoded) = 0.1] - FALSE - passportValidationRequired BOOLEAN [length (not encoded) = 0.1] - FALSE - onlineValidationRequired BOOLEAN [length (not encoded) = 0.1] - FALSE - ageCheckRequired BOOLEAN [length (not encoded) = 0.1] - FALSE - reductionCardCheckRequired BOOLEAN [length (not encoded) = 0.1] - FALSE - infoText UTF8String [length = 2.0] - 0x6364 - includedTickets SEQUENCE OF [count = 1] - TicketLinkType SEQUENCE [root fieldcount (not encoded) = 6] - referenceIA5 IA5String [length = 11.0] - "UED12435867" - issuerName UTF8String [length = 4.0] - 0x4f454242 - issuerPNR IA5String [length = 3.0] - "PNR" - productOwnerIA5 IA5String [length = 4.0] - "test" - ticketType TicketType ENUMERATED [length (not encoded) = 0.2] - 1 - linkMode LinkMode ENUMERATED [length (not encoded) = 0.1] - 1 - extension SEQUENCE OF [count = 2] - ExtensionData SEQUENCE [fieldcount (not encoded) = 2] - extensionId IA5String [length = 1.0] - "1" - extensionData OCTET STRING [length = 2.0] - 0x82da - ExtensionData SEQUENCE [fieldcount (not encoded) = 2] - extensionId IA5String [length = 1.0] - "2" - extensionData OCTET STRING [length = 2.0] - 0x83da -Total encoded length = 154.3 -Encoded successfully in 155 bytes: -78022020 050DD3CF 9F5CBCAA 65E7D284 EA40218A 02D00082 2537B437 01A237BB -82B164CD A3580883 73CBBB4E FE40EDAF 28EE4DEE AE004A03 AD12B014 16D08000 -00000403 9BDC195B 951A58DA D95D125B 999BC480 88040EE0 C2E6E6C2 CECA0212 -82DAE6E8 CAE4C8C2 DA0080BD A6010040 2C800131 B200ADC2 EAC588C5 93466D5C -366E089E 8A848407 4275204E 9979F428 100B1028 2DA01640 507B40 - * - * - */ - - /* - * asn.1 version 2.0 encoding - * - Encoding to the file 'data.uper' using PER UNALIGNED encoding rule... -UicRailTicketData SEQUENCE [root fieldcount (not encoded) = 5] - issuingDetail IssuingData SEQUENCE [root fieldcount (not encoded) = 7] - issuingYear INTEGER [length (not encoded) = 1.0] - 2018 - issuingDay INTEGER [length (not encoded) = 1.1] - 1 - specimen BOOLEAN [length (not encoded) = 0.1] - TRUE - securePaperTicket BOOLEAN [length (not encoded) = 0.1] - FALSE - activated BOOLEAN [length (not encoded) = 0.1] - TRUE - issuerPNR IA5String [length = 13.0] - "issuerTestPNR" - issuedOnLine INTEGER [length = 1.0] - 12 - travelerDetail TravelerData SEQUENCE [root fieldcount (not encoded) = 2] - traveler SEQUENCE OF [count = 1] - TravelerType SEQUENCE [root fieldcount (not encoded) = 5] - firstName UTF8String [length = 4.0] - 0x4a6f686e - secondName UTF8String [length = 3.0] - 0x446f77 - idCard IA5String [length = 5.0] - "12345" - ticketHolder BOOLEAN [length (not encoded) = 0.1] - TRUE - status SEQUENCE OF [count = 1] - CustomerStatusType SEQUENCE [fieldcount (not encoded) = 1] - customerStatusDescr IA5String [length = 6.0] - "senior" - groupName UTF8String [length = 7.0] - 0x6d7947726f7570 - transportDocument SEQUENCE OF [count = 2] - DocumentData SEQUENCE [root fieldcount (not encoded) = 2] - token TokenType SEQUENCE [fieldcount (not encoded) = 2] - tokenProviderIA5 IA5String [length = 3.0] - "VDV" - token OCTET STRING [length = 2.0] - 0x82da - ticket CHOICE [index = 2] - openTicket OpenTicketData SEQUENCE [root fieldcount (not encoded) = 2] - returnIncluded BOOLEAN [length (not encoded) = 0.1] - FALSE - infoText UTF8String [length = 14.0] - 0x6f70656e5469636b6574496e666f - DocumentData SEQUENCE [root fieldcount (not encoded) = 1] - ticket CHOICE [index = 9] - stationPassage StationPassageData SEQUENCE [root fieldcount (not encoded) = 4] - productName UTF8String [length = 7.0] - 0x70617373616765 - stationNameUTF8 SEQUENCE OF [count = 1] - UTF8String [length = 9.0] - 0x416d7374657264616d - validFromDay INTEGER [length (not encoded) = 1.2] - 0 - numberOfDaysValid INTEGER [length = 1.0] - 123 - controlDetail ControlData SEQUENCE [root fieldcount (not encoded) = 9] - identificationByCardReference SEQUENCE OF [count = 1] - CardReferenceType SEQUENCE [root fieldcount (not encoded) = 1] - trailingCardIdNum INTEGER [length = 1.0] - 100 - identificationByIdCard BOOLEAN [length (not encoded) = 0.1] - FALSE - identificationByPassportId BOOLEAN [length (not encoded) = 0.1] - FALSE - passportValidationRequired BOOLEAN [length (not encoded) = 0.1] - FALSE - onlineValidationRequired BOOLEAN [length (not encoded) = 0.1] - FALSE - ageCheckRequired BOOLEAN [length (not encoded) = 0.1] - FALSE - reductionCardCheckRequired BOOLEAN [length (not encoded) = 0.1] - FALSE - infoText UTF8String [length = 2.0] - 0x6364 - includedTickets SEQUENCE OF [count = 1] - TicketLinkType SEQUENCE [root fieldcount (not encoded) = 6] - referenceIA5 IA5String [length = 11.0] - "UED12435867" - issuerName UTF8String [length = 4.0] - 0x4f454242 - issuerPNR IA5String [length = 3.0] - "PNR" - productOwnerIA5 IA5String [length = 4.0] - "test" - ticketType TicketType ENUMERATED [length (not encoded) = 0.2] - 1 - linkMode LinkMode ENUMERATED [length (not encoded) = 0.1] - 1 - extension SEQUENCE OF [count = 2] - ExtensionData SEQUENCE [fieldcount (not encoded) = 2] - extensionId IA5String [length = 1.0] - "1" - extensionData OCTET STRING [length = 2.0] - 0x82da - ExtensionData SEQUENCE [fieldcount (not encoded) = 2] - extensionId IA5String [length = 1.0] - "2" - extensionData OCTET STRING [length = 2.0] - 0x83da -Total encoded length = 154.6 -Encoded successfully in 155 bytes: -78022020 050DD3CF 9F5CBCAA 65E7D284 EA40218A 02D00041 129BDA1B 80D11BDD -C158B266 D1AC0441 B9E5DDA7 7F2076D7 947726F7 57002501 D689580A 0B684000 -00000200 737B832B 72A34B1B 5B2BA24B 73337890 110081DC 185CDCD8 59D94042 -505B5CDD 195C9918 5B401017 B4C02008 05900026 364015B8 5D58B118 B268CDAB -86CDC113 D1509080 E84EA409 D32F3E85 02016205 05B402C8 0A0F68 - * - * - * - */ - - public static String getEncodingV1Hex() { - return "78022020050DD3CF9F5CBCAA65E7D284EA40218A02D000822537B43701A237BB" + - "82B164CDA358088373CBBB4EFE40EDAF28EE4DEEAE004A03AD12B01416D08000" + - "000004039BDC195B951A58DAD95D125B999BC48088040EE0C2E6E6C2CECA0212" + - "82DAE6E8CAE4C8C2DA0080BDA60100402C800131B200ADC2EAC588C593466D5C" + - "366E089E8A8484074275204E9979F428100B10282DA01640507B40"; - } - - public static String getEncodingV2Hex() { - return "78022020050DD3CF9F5CBCAA65E7D284EA40218A02D00041129BDA1B80D11BDD" + - "C158B266D1AC0441B9E5DDA77F2076D7947726F757002501D689580A0B684000" + - "00000200737B832B72A34B1B5B2BA24B73337890110081DC185CDCD859D94042" + - "505B5CDD195C99185B401017B4C0200805900026364015B85D58B118B268CDAB" + - "86CDC113D1509080E84EA409D32F3E850201620505B402C80A0F68"; - } - - - private static void populateTicket(UicRailTicketData ticket) { - - ticket.setControlDetail(new ControlData()); - populate(ticket.getControlDetail()); - - - ticket.setIssuingDetail(new IssuingData()); - populateIssuingData(ticket.getIssuingDetail()); - - TravelerData td = new TravelerData(); - populateTravelerData(td); - ticket.setTravelerDetail(td); - - SequenceOfDocumentData ds = new SequenceOfDocumentData(); - - - //OpenTicket - DocumentData do1 = new DocumentData(); - addOpenTicketData(do1); - ds.add(do1); - - //StationPassage - DocumentData do2 = new DocumentData(); - addStationPassage(do2); - ds.add(do2); - - ticket.setTransportDocument(ds); - - SequenceOfExtensionData ed = new SequenceOfExtensionData(); - populateExtensionSequence(ed); - ticket.setExtension(ed); - - } - - /* - ticket stationPassage : { - productName "passage" - ,stationNameUTF8 { "Amsterdam" } - ,validFromDay 0 - ,numberOfDaysValid 123 - } - */ - private static void addStationPassage(DocumentData dd) { - TicketDetailData tdd = new TicketDetailData(); - StationPassageData sp = new StationPassageData(); - sp.setProductName("passage"); - sp.setValidFromDay(0L); - sp.setNumberOfDaysValid(123L); - SequenceOfStringUTF8 ss = new SequenceOfStringUTF8(); - ss.add("Amsterdam"); - sp.setStationNameUTF8(ss); - tdd.setStationPassage(sp); - dd.setTicket(tdd); - } - - /* - { - token {tokenProviderIA5 "VDV", token '82DA'H } - ,ticket openTicket : { - returnIncluded FALSE - infoText "openTicketInfo" - } - } - */ - - - - private static void addOpenTicketData(DocumentData dd) { - TokenType to = new TokenType(); - to.setTokenProviderIA5("VDV"); - byte[] ba = { (byte) 0x82, (byte) 0xDA }; - to.setToken(ba); - dd.setToken(to); - - TicketDetailData tdd = new TicketDetailData(); - OpenTicketData otd = new OpenTicketData(); - otd.setInfoText("openTicketInfo"); - otd.setClassCode(TravelClassType.first); - otd.setReturnIncluded(false); - tdd.setOpenTicket(otd); - dd.setTicket(tdd); - } - - - /* - ,travelerDetail{ - traveler { - { - firstName "John" - ,secondName "Dow" - ,idCard "12345" - ,ticketHolder TRUE - ,status {{customerStatusDescr "senior" }} - } - } - ,groupName "myGroup" - } - */ - - private static void populateTravelerData(TravelerData td) { - td.setGroupName("myGroup"); - SequenceOfTravelerType trs = new SequenceOfTravelerType(); - TravelerType tr = new TravelerType(); - tr.setIdCard("12345"); - tr.setFirstName("John"); - tr.setSecondName("Dow"); - tr.setTicketHolder(true); - SequenceOfCustomerStatusType ts = new SequenceOfCustomerStatusType(); - CustomerStatusType cst = new CustomerStatusType(); - cst.setCustomerStatusDescr("senior"); - ts.add(cst); - tr.setStatus(ts); - trs.add(tr); - td.setTraveler(trs); - } - - /* - ,issuingDetail { - issuingYear 2018 - issuingDay 1 - specimen TRUE, - securePaperTicket FALSE, - activated TRUE, - issuerPNR "issuerTestPNR", - issuedOnLine 12 - } - */ - private static void populateIssuingData(IssuingData issuingDetail) { - issuingDetail.setIssuingYear(2018L); - issuingDetail.setIssuingDay(1L); - issuingDetail.setIssuerPNR("issuerTestPNR"); - issuingDetail.setSpecimen(true); - issuingDetail.setSecurePaperTicket(false); - issuingDetail.setActivated(true); - issuingDetail.setIssuedOnLine(12L); - } - - /* - ,extension { - { extensionId "1", extensionData '82DA'H } - ,{ extensionId "2", extensionData '83DA'H } - } - */ - private static void populateExtensionSequence(SequenceOfExtensionData ed) { - ExtensionData ed1 = new ExtensionData(); - ed1.setExtensionId("1"); - byte[] ba1 = { (byte) 0x82, (byte) 0xDA }; - ed1.setExtensionData(ba1); - ExtensionData ed2 = new ExtensionData(); - ed2.setExtensionId("2"); - byte[] ba2 = { (byte) 0x83, (byte) 0xDA }; - ed2.setExtensionData(ba2); - ed.add(ed1); - ed.add(ed2); - } - - /* - ,controlDetail { - identificationByCardReference { - { trailingCardIdNum 100 } - } - ,identificationByIdCard FALSE - ,identificationByPassportId FALSE - ,passportValidationRequired FALSE - ,onlineValidationRequired FALSE - ,ageCheckRequired FALSE - ,reductionCardCheckRequired FALSE - ,infoText "cd" - ,includedTickets { - { productOwnerIA5 "test" - , - - - } - } - } - */ - private static void populate(ControlData controlDetail) { - controlDetail.infoText = "cd"; - controlDetail.setAgeCheckRequired(false); - controlDetail.setIdentificationByIdCard(false); - controlDetail.setIdentificationByPassportId(false); - controlDetail.setOnlineValidationRequired(false); - controlDetail.setPassportValidationRequired(false); - controlDetail.setReductionCardCheckRequired(false); - controlDetail.setIdentificationByCardReference(new SequenceOfCardReferenceType()); - controlDetail.getIdentificationByCardReference().add(populateCardRefrence()); - SequenceOfTicketLinkType sit = new SequenceOfTicketLinkType(); - populateLinkedTickets(sit); - controlDetail.setIncludedTickets(sit); - } - - - /* - * - */ - private static void populateLinkedTickets(SequenceOfTicketLinkType sequenceOfTicketLinkType) { - TicketLinkType tlt = new TicketLinkType(); - tlt.productOwnerIA5="test"; - tlt.setTicketType(TicketType.pass); - tlt.setIssuerPNR("PNR"); - tlt.setReferenceIA5("UED12435867"); - tlt.setLinkMode(LinkMode.onlyValidInCombination); - tlt.setIssuerName("OEBB"); - sequenceOfTicketLinkType.add(tlt); - } - - /* - { - trailingCardIdNum 100 - } - */ - private static CardReferenceType populateCardRefrence() { - CardReferenceType cr = new CardReferenceType(); - cr.setTrailingCardIdNum(100L); - return cr; - } - - - - } diff --git a/src/main/java/org/uic/barcode/ticket/api/test/testtickets/OpenTicketTimeZoneTestTicketV1.java b/src/main/java/org/uic/barcode/ticket/api/test/testtickets/OpenTicketTimeZoneTestTicketV1.java deleted file mode 100644 index 5ca6b73..0000000 --- a/src/main/java/org/uic/barcode/ticket/api/test/testtickets/OpenTicketTimeZoneTestTicketV1.java +++ /dev/null @@ -1,157 +0,0 @@ -package org.uic.barcode.ticket.api.test.testtickets; - -import org.uic.barcode.ticket.api.asn.omv1.CardReferenceType; -import org.uic.barcode.ticket.api.asn.omv1.ControlData; -import org.uic.barcode.ticket.api.asn.omv1.CustomerStatusType; -import org.uic.barcode.ticket.api.asn.omv1.DocumentData; -import org.uic.barcode.ticket.api.asn.omv1.ExtensionData; -import org.uic.barcode.ticket.api.asn.omv1.IssuingData; -import org.uic.barcode.ticket.api.asn.omv1.OpenTicketData; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfActivatedDays; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCardReferenceType; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCustomerStatusType; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfDocumentData; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfExtensionData; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTravelerType; -import org.uic.barcode.ticket.api.asn.omv1.TicketDetailData; -import org.uic.barcode.ticket.api.asn.omv1.TokenType; -import org.uic.barcode.ticket.api.asn.omv1.TravelClassType; -import org.uic.barcode.ticket.api.asn.omv1.TravelerData; -import org.uic.barcode.ticket.api.asn.omv1.TravelerType; -import org.uic.barcode.ticket.api.asn.omv1.UicRailTicketData; - - - public class OpenTicketTimeZoneTestTicketV1 { - - public static UicRailTicketData getUicTestTicket() { - UicRailTicketData ticket = new UicRailTicketData(); - populateTicket(ticket); - return ticket; - } - - - private static void populateTicket(UicRailTicketData ticket) { - - ticket.setControlDetail(new ControlData()); - populate(ticket.getControlDetail()); - - - ticket.setIssuingDetail(new IssuingData()); - populateIssuingData(ticket.getIssuingDetail()); - - TravelerData td = new TravelerData(); - populateTravelerData(td); - ticket.setTravelerDetail(td); - - SequenceOfDocumentData ds = new SequenceOfDocumentData(); - - - //OpenTicket - DocumentData do1 = new DocumentData(); - addOpenTicketData(do1); - ds.add(do1); - - - ticket.setTransportDocument(ds); - - SequenceOfExtensionData ed = new SequenceOfExtensionData(); - populateExtensionSequence(ed); - ticket.setExtension(ed); - - } - - - - private static void addOpenTicketData(DocumentData dd) { - TokenType to = new TokenType(); - to.setTokenProviderIA5("VDV"); - byte[] ba = { (byte) 0x82, (byte) 0xDA }; - to.setToken(ba); - dd.setToken(to); - - TicketDetailData tdd = new TicketDetailData(); - OpenTicketData otd = new OpenTicketData(); - otd.setInfoText("openTicketInfo"); - otd.setClassCode(TravelClassType.first); - otd.setReturnIncluded(false); - otd.setValidFromDay(10L); - otd.setValidFromTime(0L); - otd.setValidUntilDay(10L); - otd.setValidUntilTime(1439L); - SequenceOfActivatedDays s = new SequenceOfActivatedDays(); - otd.setActivatedDay(s); - s.add(0L); - tdd.setOpenTicket(otd); - dd.setTicket(tdd); - } - - - - private static void populateTravelerData(TravelerData td) { - td.setGroupName("myGroup"); - SequenceOfTravelerType trs = new SequenceOfTravelerType(); - TravelerType tr = new TravelerType(); - tr.setIdCard("12345"); - tr.setFirstName("John"); - tr.setSecondName("Dow"); - tr.setTicketHolder(true); - SequenceOfCustomerStatusType ts = new SequenceOfCustomerStatusType(); - CustomerStatusType cst = new CustomerStatusType(); - cst.setCustomerStatusDescr("senior"); - ts.add(cst); - tr.setStatus(ts); - trs.add(tr); - td.setTraveler(trs); - } - - private static void populateIssuingData(IssuingData issuingDetail) { - issuingDetail.setIssuingYear(2018L); - issuingDetail.setIssuingDay(1L); - issuingDetail.setIssuerPNR("issuerTestPNR"); - issuingDetail.setSpecimen(true); - issuingDetail.setSecurePaperTicket(false); - issuingDetail.setActivated(true); - issuingDetail.setIssuedOnLine(12L); - } - - - private static void populateExtensionSequence(SequenceOfExtensionData ed) { - ExtensionData ed1 = new ExtensionData(); - ed1.setExtensionId("1"); - byte[] ba1 = { (byte) 0x82, (byte) 0xDA }; - ed1.setExtensionData(ba1); - ExtensionData ed2 = new ExtensionData(); - ed2.setExtensionId("2"); - byte[] ba2 = { (byte) 0x83, (byte) 0xDA }; - ed2.setExtensionData(ba2); - ed.add(ed1); - ed.add(ed2); - } - - private static void populate(ControlData controlDetail) { - controlDetail.infoText = "cd"; - controlDetail.setAgeCheckRequired(false); - controlDetail.setIdentificationByIdCard(false); - controlDetail.setIdentificationByPassportId(false); - controlDetail.setOnlineValidationRequired(false); - controlDetail.setPassportValidationRequired(false); - controlDetail.setReductionCardCheckRequired(false); - controlDetail.setIdentificationByCardReference(new SequenceOfCardReferenceType()); - controlDetail.getIdentificationByCardReference().add(populateCardRefrence()); - } - - - /* - { - trailingCardIdNum 100 - } - */ - private static CardReferenceType populateCardRefrence() { - CardReferenceType cr = new CardReferenceType(); - cr.setTrailingCardIdNum(100L); - return cr; - } - - - - } diff --git a/src/main/java/org/uic/barcode/ticket/api/test/testtickets/OpenTicketTimeZoneTestTicketV2.java b/src/main/java/org/uic/barcode/ticket/api/test/testtickets/OpenTicketTimeZoneTestTicketV2.java deleted file mode 100644 index 3acc754..0000000 --- a/src/main/java/org/uic/barcode/ticket/api/test/testtickets/OpenTicketTimeZoneTestTicketV2.java +++ /dev/null @@ -1,157 +0,0 @@ -package org.uic.barcode.ticket.api.test.testtickets; - -import org.uic.barcode.ticket.api.asn.omv2.CardReferenceType; -import org.uic.barcode.ticket.api.asn.omv2.ControlData; -import org.uic.barcode.ticket.api.asn.omv2.CustomerStatusType; -import org.uic.barcode.ticket.api.asn.omv2.DocumentData; -import org.uic.barcode.ticket.api.asn.omv2.ExtensionData; -import org.uic.barcode.ticket.api.asn.omv2.IssuingData; -import org.uic.barcode.ticket.api.asn.omv2.OpenTicketData; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfActivatedDays; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfCardReferenceType; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfCustomerStatusType; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfDocumentData; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfExtensionData; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfTravelerType; -import org.uic.barcode.ticket.api.asn.omv2.TicketDetailData; -import org.uic.barcode.ticket.api.asn.omv2.TokenType; -import org.uic.barcode.ticket.api.asn.omv2.TravelClassType; -import org.uic.barcode.ticket.api.asn.omv2.TravelerData; -import org.uic.barcode.ticket.api.asn.omv2.TravelerType; -import org.uic.barcode.ticket.api.asn.omv2.UicRailTicketData; - - - public class OpenTicketTimeZoneTestTicketV2 { - - public static UicRailTicketData getUicTestTicket() { - UicRailTicketData ticket = new UicRailTicketData(); - populateTicket(ticket); - return ticket; - } - - - private static void populateTicket(UicRailTicketData ticket) { - - ticket.setControlDetail(new ControlData()); - populate(ticket.getControlDetail()); - - - ticket.setIssuingDetail(new IssuingData()); - populateIssuingData(ticket.getIssuingDetail()); - - TravelerData td = new TravelerData(); - populateTravelerData(td); - ticket.setTravelerDetail(td); - - SequenceOfDocumentData ds = new SequenceOfDocumentData(); - - - //OpenTicket - DocumentData do1 = new DocumentData(); - addOpenTicketData(do1); - ds.add(do1); - - - ticket.setTransportDocument(ds); - - SequenceOfExtensionData ed = new SequenceOfExtensionData(); - populateExtensionSequence(ed); - ticket.setExtension(ed); - - } - - - - private static void addOpenTicketData(DocumentData dd) { - TokenType to = new TokenType(); - to.setTokenProviderIA5("VDV"); - byte[] ba = { (byte) 0x82, (byte) 0xDA }; - to.setToken(ba); - dd.setToken(to); - - TicketDetailData tdd = new TicketDetailData(); - OpenTicketData otd = new OpenTicketData(); - otd.setInfoText("openTicketInfo"); - otd.setClassCode(TravelClassType.first); - otd.setReturnIncluded(false); - otd.setValidFromDay(10L); - otd.setValidFromTime(0L); - otd.setValidUntilDay(10L); - otd.setValidUntilTime(1439L); - SequenceOfActivatedDays s = new SequenceOfActivatedDays(); - otd.setActivatedDay(s); - s.add(0L); - tdd.setOpenTicket(otd); - dd.setTicket(tdd); - } - - - - private static void populateTravelerData(TravelerData td) { - td.setGroupName("myGroup"); - SequenceOfTravelerType trs = new SequenceOfTravelerType(); - TravelerType tr = new TravelerType(); - tr.setIdCard("12345"); - tr.setFirstName("John"); - tr.setSecondName("Dow"); - tr.setTicketHolder(true); - SequenceOfCustomerStatusType ts = new SequenceOfCustomerStatusType(); - CustomerStatusType cst = new CustomerStatusType(); - cst.setCustomerStatusDescr("senior"); - ts.add(cst); - tr.setStatus(ts); - trs.add(tr); - td.setTraveler(trs); - } - - private static void populateIssuingData(IssuingData issuingDetail) { - issuingDetail.setIssuingYear(2018L); - issuingDetail.setIssuingDay(1L); - issuingDetail.setIssuerPNR("issuerTestPNR"); - issuingDetail.setSpecimen(true); - issuingDetail.setSecurePaperTicket(false); - issuingDetail.setActivated(true); - issuingDetail.setIssuedOnLine(12L); - } - - - private static void populateExtensionSequence(SequenceOfExtensionData ed) { - ExtensionData ed1 = new ExtensionData(); - ed1.setExtensionId("1"); - byte[] ba1 = { (byte) 0x82, (byte) 0xDA }; - ed1.setExtensionData(ba1); - ExtensionData ed2 = new ExtensionData(); - ed2.setExtensionId("2"); - byte[] ba2 = { (byte) 0x83, (byte) 0xDA }; - ed2.setExtensionData(ba2); - ed.add(ed1); - ed.add(ed2); - } - - private static void populate(ControlData controlDetail) { - controlDetail.infoText = "cd"; - controlDetail.setAgeCheckRequired(false); - controlDetail.setIdentificationByIdCard(false); - controlDetail.setIdentificationByPassportId(false); - controlDetail.setOnlineValidationRequired(false); - controlDetail.setPassportValidationRequired(false); - controlDetail.setReductionCardCheckRequired(false); - controlDetail.setIdentificationByCardReference(new SequenceOfCardReferenceType()); - controlDetail.getIdentificationByCardReference().add(populateCardRefrence()); - } - - - /* - { - trailingCardIdNum 100 - } - */ - private static CardReferenceType populateCardRefrence() { - CardReferenceType cr = new CardReferenceType(); - cr.setTrailingCardIdNum(100L); - return cr; - } - - - - } diff --git a/src/main/java/org/uic/barcode/ticket/api/test/testtickets/ParkingTestTicketV1.java b/src/main/java/org/uic/barcode/ticket/api/test/testtickets/ParkingTestTicketV1.java deleted file mode 100644 index ad70424..0000000 --- a/src/main/java/org/uic/barcode/ticket/api/test/testtickets/ParkingTestTicketV1.java +++ /dev/null @@ -1,147 +0,0 @@ -package org.uic.barcode.ticket.api.test.testtickets; - -import org.uic.barcode.ticket.api.asn.omv1.CardReferenceType; -import org.uic.barcode.ticket.api.asn.omv1.ControlData; -import org.uic.barcode.ticket.api.asn.omv1.CustomerStatusType; -import org.uic.barcode.ticket.api.asn.omv1.DocumentData; -import org.uic.barcode.ticket.api.asn.omv1.ExtensionData; -import org.uic.barcode.ticket.api.asn.omv1.IssuingData; -import org.uic.barcode.ticket.api.asn.omv1.ParkingGroundData; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCardReferenceType; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCustomerStatusType; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfDocumentData; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfExtensionData; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTravelerType; -import org.uic.barcode.ticket.api.asn.omv1.TicketDetailData; -import org.uic.barcode.ticket.api.asn.omv1.TravelerData; -import org.uic.barcode.ticket.api.asn.omv1.TravelerType; -import org.uic.barcode.ticket.api.asn.omv1.UicRailTicketData; - - public class ParkingTestTicketV1 { - - public static UicRailTicketData getUicTestTicket() { - UicRailTicketData ticket = new UicRailTicketData(); - populateTicket(ticket); - return ticket; - } - - - - private static void populateTicket(UicRailTicketData ticket) { - - ticket.setControlDetail(new ControlData()); - populate(ticket.getControlDetail()); - - - ticket.setIssuingDetail(new IssuingData()); - populateIssuingData(ticket.getIssuingDetail()); - - TravelerData td = new TravelerData(); - populateTravelerData(td); - ticket.setTravelerDetail(td); - - SequenceOfDocumentData ds = new SequenceOfDocumentData(); - - - //FipTicket - DocumentData do1 = new DocumentData(); - addTicket(do1); - ds.add(do1); - - - ticket.setTransportDocument(ds); - - SequenceOfExtensionData ed = new SequenceOfExtensionData(); - populateExtensionSequence(ed); - ticket.setExtension(ed); - - } - - - //issue date: 04-03-2021 12:30 UTC - private static void populateIssuingData(IssuingData issuingDetail) { - issuingDetail.setIssuingYear(2021L); - issuingDetail.setIssuingTime(750L); - issuingDetail.setIssuingDay(63L); - issuingDetail.setIssuerPNR("issuerTestPNR"); - issuingDetail.setSpecimen(true); - issuingDetail.setSecurePaperTicket(false); - issuingDetail.setActivated(true); - issuingDetail.setIssuedOnLine(12L); - } - - private static void addTicket(DocumentData dd) { - - TicketDetailData tdd = new TicketDetailData(); - ParkingGroundData ticket = new ParkingGroundData(); - ticket.setFromParkingDate(01L); - ticket.setToParkingDate(01L); - ticket.setReferenceIA5("ACHE12345"); - ticket.setLocation("Parking Frankfurt Main West"); - ticket.setNumberPlate("AA-DE-12345"); - ticket.setStationNum(8000001L); - ticket.setPrice(500L); - ticket.setParkingGroundId("P47623"); - ticket.setSpecialInformation("outdoor parking"); - - tdd.setParkingGround(ticket); - dd.setTicket(tdd); - } - - - - private static void populateTravelerData(TravelerData td) { - SequenceOfTravelerType trs = new SequenceOfTravelerType(); - TravelerType tr = new TravelerType(); - tr.setIdCard("12345"); - tr.setFirstName("John"); - tr.setSecondName("Dow"); - tr.setTicketHolder(true); - SequenceOfCustomerStatusType ts = new SequenceOfCustomerStatusType(); - CustomerStatusType cst = new CustomerStatusType(); - cst.setCustomerStatusDescr("employee"); - ts.add(cst); - tr.setStatus(ts); - trs.add(tr); - td.setTraveler(trs); - } - - - - - - private static void populateExtensionSequence(SequenceOfExtensionData ed) { - ExtensionData ed1 = new ExtensionData(); - ed1.setExtensionId("1"); - byte[] ba1 = { (byte) 0x82, (byte) 0xDA }; - ed1.setExtensionData(ba1); - ExtensionData ed2 = new ExtensionData(); - ed2.setExtensionId("2"); - byte[] ba2 = { (byte) 0x83, (byte) 0xDA }; - ed2.setExtensionData(ba2); - ed.add(ed1); - ed.add(ed2); - } - - private static void populate(ControlData controlDetail) { - controlDetail.infoText = "cd"; - controlDetail.setAgeCheckRequired(false); - controlDetail.setIdentificationByIdCard(false); - controlDetail.setIdentificationByPassportId(false); - controlDetail.setOnlineValidationRequired(false); - controlDetail.setPassportValidationRequired(false); - controlDetail.setReductionCardCheckRequired(false); - controlDetail.setIdentificationByCardReference(new SequenceOfCardReferenceType()); - controlDetail.getIdentificationByCardReference().add(populateCardRefrence()); - } - - - private static CardReferenceType populateCardRefrence() { - CardReferenceType cr = new CardReferenceType(); - cr.setTrailingCardIdNum(100L); - return cr; - } - - - - } diff --git a/src/main/java/org/uic/barcode/ticket/api/test/testtickets/ParkingTestTicketV2.java b/src/main/java/org/uic/barcode/ticket/api/test/testtickets/ParkingTestTicketV2.java deleted file mode 100644 index 99d9711..0000000 --- a/src/main/java/org/uic/barcode/ticket/api/test/testtickets/ParkingTestTicketV2.java +++ /dev/null @@ -1,147 +0,0 @@ -package org.uic.barcode.ticket.api.test.testtickets; - -import org.uic.barcode.ticket.api.asn.omv2.CardReferenceType; -import org.uic.barcode.ticket.api.asn.omv2.ControlData; -import org.uic.barcode.ticket.api.asn.omv2.CustomerStatusType; -import org.uic.barcode.ticket.api.asn.omv2.DocumentData; -import org.uic.barcode.ticket.api.asn.omv2.ExtensionData; -import org.uic.barcode.ticket.api.asn.omv2.IssuingData; -import org.uic.barcode.ticket.api.asn.omv2.ParkingGroundData; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfCardReferenceType; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfCustomerStatusType; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfDocumentData; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfExtensionData; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfTravelerType; -import org.uic.barcode.ticket.api.asn.omv2.TicketDetailData; -import org.uic.barcode.ticket.api.asn.omv2.TravelerData; -import org.uic.barcode.ticket.api.asn.omv2.TravelerType; -import org.uic.barcode.ticket.api.asn.omv2.UicRailTicketData; - - public class ParkingTestTicketV2 { - - public static UicRailTicketData getUicTestTicket() { - UicRailTicketData ticket = new UicRailTicketData(); - populateTicket(ticket); - return ticket; - } - - - - private static void populateTicket(UicRailTicketData ticket) { - - ticket.setControlDetail(new ControlData()); - populate(ticket.getControlDetail()); - - - ticket.setIssuingDetail(new IssuingData()); - populateIssuingData(ticket.getIssuingDetail()); - - TravelerData td = new TravelerData(); - populateTravelerData(td); - ticket.setTravelerDetail(td); - - SequenceOfDocumentData ds = new SequenceOfDocumentData(); - - - //FipTicket - DocumentData do1 = new DocumentData(); - addTicket(do1); - ds.add(do1); - - - ticket.setTransportDocument(ds); - - SequenceOfExtensionData ed = new SequenceOfExtensionData(); - populateExtensionSequence(ed); - ticket.setExtension(ed); - - } - - - //issue date: 04-03-2021 12:30 UTC - private static void populateIssuingData(IssuingData issuingDetail) { - issuingDetail.setIssuingYear(2021L); - issuingDetail.setIssuingTime(750L); - issuingDetail.setIssuingDay(63L); - issuingDetail.setIssuerPNR("issuerTestPNR"); - issuingDetail.setSpecimen(true); - issuingDetail.setSecurePaperTicket(false); - issuingDetail.setActivated(true); - issuingDetail.setIssuedOnLine(12L); - } - - private static void addTicket(DocumentData dd) { - - TicketDetailData tdd = new TicketDetailData(); - ParkingGroundData ticket = new ParkingGroundData(); - ticket.setFromParkingDate(01L); - ticket.setToParkingDate(01L); - ticket.setReferenceIA5("ACHE12345"); - ticket.setLocation("Parking Frankfurt Main West"); - ticket.setNumberPlate("AA-DE-12345"); - ticket.setStationNum(8000001L); - ticket.setPrice(500L); - ticket.setParkingGroundId("P47623"); - ticket.setSpecialInformation("outdoor parking"); - - tdd.setParkingGround(ticket); - dd.setTicket(tdd); - } - - - - private static void populateTravelerData(TravelerData td) { - SequenceOfTravelerType trs = new SequenceOfTravelerType(); - TravelerType tr = new TravelerType(); - tr.setIdCard("12345"); - tr.setFirstName("John"); - tr.setSecondName("Dow"); - tr.setTicketHolder(true); - SequenceOfCustomerStatusType ts = new SequenceOfCustomerStatusType(); - CustomerStatusType cst = new CustomerStatusType(); - cst.setCustomerStatusDescr("employee"); - ts.add(cst); - tr.setStatus(ts); - trs.add(tr); - td.setTraveler(trs); - } - - - - - - private static void populateExtensionSequence(SequenceOfExtensionData ed) { - ExtensionData ed1 = new ExtensionData(); - ed1.setExtensionId("1"); - byte[] ba1 = { (byte) 0x82, (byte) 0xDA }; - ed1.setExtensionData(ba1); - ExtensionData ed2 = new ExtensionData(); - ed2.setExtensionId("2"); - byte[] ba2 = { (byte) 0x83, (byte) 0xDA }; - ed2.setExtensionData(ba2); - ed.add(ed1); - ed.add(ed2); - } - - private static void populate(ControlData controlDetail) { - controlDetail.infoText = "cd"; - controlDetail.setAgeCheckRequired(false); - controlDetail.setIdentificationByIdCard(false); - controlDetail.setIdentificationByPassportId(false); - controlDetail.setOnlineValidationRequired(false); - controlDetail.setPassportValidationRequired(false); - controlDetail.setReductionCardCheckRequired(false); - controlDetail.setIdentificationByCardReference(new SequenceOfCardReferenceType()); - controlDetail.getIdentificationByCardReference().add(populateCardRefrence()); - } - - - private static CardReferenceType populateCardRefrence() { - CardReferenceType cr = new CardReferenceType(); - cr.setTrailingCardIdNum(100L); - return cr; - } - - - - } diff --git a/src/main/java/org/uic/barcode/ticket/api/test/testtickets/PassTestTicketV1.java b/src/main/java/org/uic/barcode/ticket/api/test/testtickets/PassTestTicketV1.java deleted file mode 100644 index a165308..0000000 --- a/src/main/java/org/uic/barcode/ticket/api/test/testtickets/PassTestTicketV1.java +++ /dev/null @@ -1,150 +0,0 @@ -package org.uic.barcode.ticket.api.test.testtickets; - -import org.uic.barcode.ticket.api.asn.omv1.CardReferenceType; -import org.uic.barcode.ticket.api.asn.omv1.ControlData; -import org.uic.barcode.ticket.api.asn.omv1.CustomerStatusType; -import org.uic.barcode.ticket.api.asn.omv1.DocumentData; -import org.uic.barcode.ticket.api.asn.omv1.ExtensionData; -import org.uic.barcode.ticket.api.asn.omv1.IssuingData; -import org.uic.barcode.ticket.api.asn.omv1.LinkMode; -import org.uic.barcode.ticket.api.asn.omv1.PassData; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCardReferenceType; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCustomerStatusType; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfDocumentData; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfExtensionData; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTicketLinkType; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTravelerType; -import org.uic.barcode.ticket.api.asn.omv1.TicketDetailData; -import org.uic.barcode.ticket.api.asn.omv1.TicketLinkType; -import org.uic.barcode.ticket.api.asn.omv1.TicketType; -import org.uic.barcode.ticket.api.asn.omv1.TravelClassType; -import org.uic.barcode.ticket.api.asn.omv1.TravelerData; -import org.uic.barcode.ticket.api.asn.omv1.TravelerType; -import org.uic.barcode.ticket.api.asn.omv1.UicRailTicketData; - - public class PassTestTicketV1 { - - public static UicRailTicketData getUicTestTicket() { - UicRailTicketData ticket = new UicRailTicketData(); - populateTicket(ticket); - return ticket; - } - - - private static void populateTicket(UicRailTicketData ticket) { - - ticket.setControlDetail(new ControlData()); - populate(ticket.getControlDetail()); - - - ticket.setIssuingDetail(new IssuingData()); - populateIssuingData(ticket.getIssuingDetail()); - - TravelerData td = new TravelerData(); - populateTravelerData(td); - ticket.setTravelerDetail(td); - - SequenceOfDocumentData ds = new SequenceOfDocumentData(); - - - //OpenTicket - DocumentData do1 = new DocumentData(); - addPass(do1); - ds.add(do1); - - ticket.setTransportDocument(ds); - - SequenceOfExtensionData ed = new SequenceOfExtensionData(); - populateExtensionSequence(ed); - ticket.setExtension(ed); - - } - - - private static void addPass(DocumentData dd) { - - TicketDetailData tdd = new TicketDetailData(); - PassData otd = new PassData(); - otd.setInfoText("pass"); - otd.setClassCode(TravelClassType.first); - otd.setPassDescription("ONE COUNTRY"); - tdd.setPass(otd); - dd.setTicket(tdd); - } - - - private static void populateTravelerData(TravelerData td) { - td.setGroupName("myGroup"); - SequenceOfTravelerType trs = new SequenceOfTravelerType(); - TravelerType tr = new TravelerType(); - tr.setIdCard("12345"); - tr.setFirstName("John"); - tr.setSecondName("Dow"); - tr.setTicketHolder(true); - SequenceOfCustomerStatusType ts = new SequenceOfCustomerStatusType(); - CustomerStatusType cst = new CustomerStatusType(); - cst.setCustomerStatusDescr("senior"); - ts.add(cst); - tr.setStatus(ts); - trs.add(tr); - td.setTraveler(trs); - } - - private static void populateIssuingData(IssuingData issuingDetail) { - issuingDetail.setIssuingYear(2018L); - issuingDetail.setIssuingDay(1L); - issuingDetail.setIssuerPNR("issuerTestPNR"); - issuingDetail.setSpecimen(true); - issuingDetail.setSecurePaperTicket(false); - issuingDetail.setActivated(true); - issuingDetail.setIssuedOnLine(12L); - } - - private static void populateExtensionSequence(SequenceOfExtensionData ed) { - ExtensionData ed1 = new ExtensionData(); - ed1.setExtensionId("1"); - byte[] ba1 = { (byte) 0x82, (byte) 0xDA }; - ed1.setExtensionData(ba1); - ExtensionData ed2 = new ExtensionData(); - ed2.setExtensionId("2"); - byte[] ba2 = { (byte) 0x83, (byte) 0xDA }; - ed2.setExtensionData(ba2); - ed.add(ed1); - ed.add(ed2); - } - - private static void populate(ControlData controlDetail) { - controlDetail.infoText = "cd"; - controlDetail.setAgeCheckRequired(false); - controlDetail.setIdentificationByIdCard(false); - controlDetail.setIdentificationByPassportId(false); - controlDetail.setOnlineValidationRequired(false); - controlDetail.setPassportValidationRequired(false); - controlDetail.setReductionCardCheckRequired(false); - controlDetail.setIdentificationByCardReference(new SequenceOfCardReferenceType()); - controlDetail.getIdentificationByCardReference().add(populateCardRefrence()); - SequenceOfTicketLinkType sit = new SequenceOfTicketLinkType(); - populateLinkedTickets(sit); - controlDetail.setIncludedTickets(sit); - } - - private static void populateLinkedTickets(SequenceOfTicketLinkType sequenceOfTicketLinkType) { - TicketLinkType tlt = new TicketLinkType(); - tlt.productOwnerIA5="test"; - tlt.setTicketType(TicketType.pass); - tlt.setIssuerPNR("PNR"); - tlt.setReferenceIA5("UED12435867"); - tlt.setLinkMode(LinkMode.onlyValidInCombination); - tlt.setIssuerName("OEBB"); - sequenceOfTicketLinkType.add(tlt); - } - - private static CardReferenceType populateCardRefrence() { - CardReferenceType cr = new CardReferenceType(); - cr.setTrailingCardIdNum(100L); - return cr; - } - - - - } diff --git a/src/main/java/org/uic/barcode/ticket/api/test/testtickets/PassTimeZoneTestTicketCase1V1.java b/src/main/java/org/uic/barcode/ticket/api/test/testtickets/PassTimeZoneTestTicketCase1V1.java deleted file mode 100644 index 8bea50a..0000000 --- a/src/main/java/org/uic/barcode/ticket/api/test/testtickets/PassTimeZoneTestTicketCase1V1.java +++ /dev/null @@ -1,168 +0,0 @@ -package org.uic.barcode.ticket.api.test.testtickets; - -import org.uic.barcode.ticket.api.asn.omv1.CardReferenceType; -import org.uic.barcode.ticket.api.asn.omv1.ControlData; -import org.uic.barcode.ticket.api.asn.omv1.CustomerStatusType; -import org.uic.barcode.ticket.api.asn.omv1.DocumentData; -import org.uic.barcode.ticket.api.asn.omv1.ExtensionData; -import org.uic.barcode.ticket.api.asn.omv1.IssuingData; -import org.uic.barcode.ticket.api.asn.omv1.LinkMode; -import org.uic.barcode.ticket.api.asn.omv1.PassData; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfActivatedDays; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCardReferenceType; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCustomerStatusType; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfDocumentData; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfExtensionData; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTicketLinkType; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTravelerType; -import org.uic.barcode.ticket.api.asn.omv1.TicketDetailData; -import org.uic.barcode.ticket.api.asn.omv1.TicketLinkType; -import org.uic.barcode.ticket.api.asn.omv1.TicketType; -import org.uic.barcode.ticket.api.asn.omv1.TravelClassType; -import org.uic.barcode.ticket.api.asn.omv1.TravelerData; -import org.uic.barcode.ticket.api.asn.omv1.TravelerType; -import org.uic.barcode.ticket.api.asn.omv1.UicRailTicketData; - - public class PassTimeZoneTestTicketCase1V1 { - - public static UicRailTicketData getUicTestTicket() { - UicRailTicketData ticket = new UicRailTicketData(); - populateTicket(ticket); - return ticket; - } - - - - private static void populateTicket(UicRailTicketData ticket) { - - ticket.setControlDetail(new ControlData()); - populate(ticket.getControlDetail()); - - - ticket.setIssuingDetail(new IssuingData()); - populateIssuingData(ticket.getIssuingDetail()); - - TravelerData td = new TravelerData(); - populateTravelerData(td); - ticket.setTravelerDetail(td); - - SequenceOfDocumentData ds = new SequenceOfDocumentData(); - - - //OpenTicket - DocumentData do1 = new DocumentData(); - addPass1(do1); - ds.add(do1); - - - ticket.setTransportDocument(ds); - - SequenceOfExtensionData ed = new SequenceOfExtensionData(); - populateExtensionSequence(ed); - ticket.setExtension(ed); - - } - - - //issue date: 04-03-2021 12:30 UTC - private static void populateIssuingData(IssuingData issuingDetail) { - issuingDetail.setIssuingYear(2021L); - issuingDetail.setIssuingTime(750L); - issuingDetail.setIssuingDay(63L); - issuingDetail.setIssuerPNR("issuerTestPNR"); - issuingDetail.setSpecimen(true); - issuingDetail.setSecurePaperTicket(false); - issuingDetail.setActivated(true); - issuingDetail.setIssuedOnLine(12L); - } - - private static void addPass1(DocumentData dd) { - - TicketDetailData tdd = new TicketDetailData(); - PassData otd = new PassData(); - otd.setInfoText("pass"); - otd.setClassCode(TravelClassType.first); - otd.setPassDescription("ONE COUNTRY"); - otd.setValidFromDay(10L); - otd.setValidFromTime(0L); - otd.setValidUntilDay(10L); - otd.setValidUntilTime(1439L); - SequenceOfActivatedDays s = new SequenceOfActivatedDays(); - otd.setActivatedDay(s); - s.add(0L); - - tdd.setPass(otd); - dd.setTicket(tdd); - } - - - - private static void populateTravelerData(TravelerData td) { - td.setGroupName("myGroup"); - SequenceOfTravelerType trs = new SequenceOfTravelerType(); - TravelerType tr = new TravelerType(); - tr.setIdCard("12345"); - tr.setFirstName("John"); - tr.setSecondName("Dow"); - tr.setTicketHolder(true); - SequenceOfCustomerStatusType ts = new SequenceOfCustomerStatusType(); - CustomerStatusType cst = new CustomerStatusType(); - cst.setCustomerStatusDescr("senior"); - ts.add(cst); - tr.setStatus(ts); - trs.add(tr); - td.setTraveler(trs); - } - - - - - - private static void populateExtensionSequence(SequenceOfExtensionData ed) { - ExtensionData ed1 = new ExtensionData(); - ed1.setExtensionId("1"); - byte[] ba1 = { (byte) 0x82, (byte) 0xDA }; - ed1.setExtensionData(ba1); - ExtensionData ed2 = new ExtensionData(); - ed2.setExtensionId("2"); - byte[] ba2 = { (byte) 0x83, (byte) 0xDA }; - ed2.setExtensionData(ba2); - ed.add(ed1); - ed.add(ed2); - } - - private static void populate(ControlData controlDetail) { - controlDetail.infoText = "cd"; - controlDetail.setAgeCheckRequired(false); - controlDetail.setIdentificationByIdCard(false); - controlDetail.setIdentificationByPassportId(false); - controlDetail.setOnlineValidationRequired(false); - controlDetail.setPassportValidationRequired(false); - controlDetail.setReductionCardCheckRequired(false); - controlDetail.setIdentificationByCardReference(new SequenceOfCardReferenceType()); - controlDetail.getIdentificationByCardReference().add(populateCardRefrence()); - SequenceOfTicketLinkType sit = new SequenceOfTicketLinkType(); - populateLinkedTickets(sit); - controlDetail.setIncludedTickets(sit); - } - - private static void populateLinkedTickets(SequenceOfTicketLinkType sequenceOfTicketLinkType) { - TicketLinkType tlt = new TicketLinkType(); - tlt.productOwnerIA5="test"; - tlt.setTicketType(TicketType.pass); - tlt.setIssuerPNR("PNR"); - tlt.setReferenceIA5("UED12435867"); - tlt.setLinkMode(LinkMode.onlyValidInCombination); - tlt.setIssuerName("OEBB"); - sequenceOfTicketLinkType.add(tlt); - } - - private static CardReferenceType populateCardRefrence() { - CardReferenceType cr = new CardReferenceType(); - cr.setTrailingCardIdNum(100L); - return cr; - } - - - - } diff --git a/src/main/java/org/uic/barcode/ticket/api/test/testtickets/PassTimeZoneTestTicketCase2V1.java b/src/main/java/org/uic/barcode/ticket/api/test/testtickets/PassTimeZoneTestTicketCase2V1.java deleted file mode 100644 index cc30e72..0000000 --- a/src/main/java/org/uic/barcode/ticket/api/test/testtickets/PassTimeZoneTestTicketCase2V1.java +++ /dev/null @@ -1,165 +0,0 @@ -package org.uic.barcode.ticket.api.test.testtickets; - -import org.uic.barcode.ticket.api.asn.omv1.CardReferenceType; -import org.uic.barcode.ticket.api.asn.omv1.ControlData; -import org.uic.barcode.ticket.api.asn.omv1.CustomerStatusType; -import org.uic.barcode.ticket.api.asn.omv1.DocumentData; -import org.uic.barcode.ticket.api.asn.omv1.ExtensionData; -import org.uic.barcode.ticket.api.asn.omv1.IssuingData; -import org.uic.barcode.ticket.api.asn.omv1.LinkMode; -import org.uic.barcode.ticket.api.asn.omv1.PassData; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfActivatedDays; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCardReferenceType; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCustomerStatusType; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfDocumentData; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfExtensionData; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTicketLinkType; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTravelerType; -import org.uic.barcode.ticket.api.asn.omv1.TicketDetailData; -import org.uic.barcode.ticket.api.asn.omv1.TicketLinkType; -import org.uic.barcode.ticket.api.asn.omv1.TicketType; -import org.uic.barcode.ticket.api.asn.omv1.TravelClassType; -import org.uic.barcode.ticket.api.asn.omv1.TravelerData; -import org.uic.barcode.ticket.api.asn.omv1.TravelerType; -import org.uic.barcode.ticket.api.asn.omv1.UicRailTicketData; - - public class PassTimeZoneTestTicketCase2V1 { - - public static UicRailTicketData getUicTestTicket() { - UicRailTicketData ticket = new UicRailTicketData(); - populateTicket(ticket); - return ticket; - } - - - - private static void populateTicket(UicRailTicketData ticket) { - - ticket.setControlDetail(new ControlData()); - populate(ticket.getControlDetail()); - - - ticket.setIssuingDetail(new IssuingData()); - populateIssuingData(ticket.getIssuingDetail()); - - TravelerData td = new TravelerData(); - populateTravelerData(td); - ticket.setTravelerDetail(td); - - SequenceOfDocumentData ds = new SequenceOfDocumentData(); - - - //OpenTicket - DocumentData do1 = new DocumentData(); - addPass1(do1); - - ds.add(do1); - - - ticket.setTransportDocument(ds); - - SequenceOfExtensionData ed = new SequenceOfExtensionData(); - populateExtensionSequence(ed); - ticket.setExtension(ed); - - } - - - //issue date: 04-03-2021 00:30 UTC - private static void populateIssuingData(IssuingData issuingDetail) { - issuingDetail.setIssuingYear(2021L); - issuingDetail.setIssuingTime(30L); - issuingDetail.setIssuingDay(63L); - issuingDetail.setIssuerPNR("issuerTestPNR"); - issuingDetail.setSpecimen(true); - issuingDetail.setSecurePaperTicket(false); - issuingDetail.setActivated(true); - issuingDetail.setIssuedOnLine(12L); - } - - private static void addPass1(DocumentData dd) { - - TicketDetailData tdd = new TicketDetailData(); - PassData otd = new PassData(); - otd.setInfoText("pass"); - otd.setClassCode(TravelClassType.first); - otd.setPassDescription("ONE COUNTRY"); - otd.setValidFromDay(10L); - otd.setValidFromTime(0L); - otd.setValidUntilDay(10L); - otd.setValidUntilTime(1439L); - SequenceOfActivatedDays s = new SequenceOfActivatedDays(); - otd.setActivatedDay(s); - s.add(0L); - - tdd.setPass(otd); - dd.setTicket(tdd); - } - - - private static void populateTravelerData(TravelerData td) { - td.setGroupName("myGroup"); - SequenceOfTravelerType trs = new SequenceOfTravelerType(); - TravelerType tr = new TravelerType(); - tr.setIdCard("12345"); - tr.setFirstName("John"); - tr.setSecondName("Dow"); - tr.setTicketHolder(true); - SequenceOfCustomerStatusType ts = new SequenceOfCustomerStatusType(); - CustomerStatusType cst = new CustomerStatusType(); - cst.setCustomerStatusDescr("senior"); - ts.add(cst); - tr.setStatus(ts); - trs.add(tr); - td.setTraveler(trs); - } - - - private static void populateExtensionSequence(SequenceOfExtensionData ed) { - ExtensionData ed1 = new ExtensionData(); - ed1.setExtensionId("1"); - byte[] ba1 = { (byte) 0x82, (byte) 0xDA }; - ed1.setExtensionData(ba1); - ExtensionData ed2 = new ExtensionData(); - ed2.setExtensionId("2"); - byte[] ba2 = { (byte) 0x83, (byte) 0xDA }; - ed2.setExtensionData(ba2); - ed.add(ed1); - ed.add(ed2); - } - - private static void populate(ControlData controlDetail) { - controlDetail.infoText = "cd"; - controlDetail.setAgeCheckRequired(false); - controlDetail.setIdentificationByIdCard(false); - controlDetail.setIdentificationByPassportId(false); - controlDetail.setOnlineValidationRequired(false); - controlDetail.setPassportValidationRequired(false); - controlDetail.setReductionCardCheckRequired(false); - controlDetail.setIdentificationByCardReference(new SequenceOfCardReferenceType()); - controlDetail.getIdentificationByCardReference().add(populateCardRefrence()); - SequenceOfTicketLinkType sit = new SequenceOfTicketLinkType(); - populateLinkedTickets(sit); - controlDetail.setIncludedTickets(sit); - } - - private static void populateLinkedTickets(SequenceOfTicketLinkType sequenceOfTicketLinkType) { - TicketLinkType tlt = new TicketLinkType(); - tlt.productOwnerIA5="test"; - tlt.setTicketType(TicketType.pass); - tlt.setIssuerPNR("PNR"); - tlt.setReferenceIA5("UED12435867"); - tlt.setLinkMode(LinkMode.onlyValidInCombination); - tlt.setIssuerName("OEBB"); - sequenceOfTicketLinkType.add(tlt); - } - - private static CardReferenceType populateCardRefrence() { - CardReferenceType cr = new CardReferenceType(); - cr.setTrailingCardIdNum(100L); - return cr; - } - - - - } diff --git a/src/main/java/org/uic/barcode/ticket/api/test/testtickets/PassTimeZoneTestTicketCase3V1.java b/src/main/java/org/uic/barcode/ticket/api/test/testtickets/PassTimeZoneTestTicketCase3V1.java deleted file mode 100644 index 715a292..0000000 --- a/src/main/java/org/uic/barcode/ticket/api/test/testtickets/PassTimeZoneTestTicketCase3V1.java +++ /dev/null @@ -1,204 +0,0 @@ -package org.uic.barcode.ticket.api.test.testtickets; - -import org.uic.barcode.ticket.api.asn.omv1.CardReferenceType; -import org.uic.barcode.ticket.api.asn.omv1.ControlData; -import org.uic.barcode.ticket.api.asn.omv1.CustomerStatusType; -import org.uic.barcode.ticket.api.asn.omv1.DocumentData; -import org.uic.barcode.ticket.api.asn.omv1.ExtensionData; -import org.uic.barcode.ticket.api.asn.omv1.IssuingData; -import org.uic.barcode.ticket.api.asn.omv1.LinkMode; -import org.uic.barcode.ticket.api.asn.omv1.PassData; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfActivatedDays; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCardReferenceType; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCustomerStatusType; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfDocumentData; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfExtensionData; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTicketLinkType; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTravelerType; -import org.uic.barcode.ticket.api.asn.omv1.TicketDetailData; -import org.uic.barcode.ticket.api.asn.omv1.TicketLinkType; -import org.uic.barcode.ticket.api.asn.omv1.TicketType; -import org.uic.barcode.ticket.api.asn.omv1.TravelClassType; -import org.uic.barcode.ticket.api.asn.omv1.TravelerData; -import org.uic.barcode.ticket.api.asn.omv1.TravelerType; -import org.uic.barcode.ticket.api.asn.omv1.UicRailTicketData; - - public class PassTimeZoneTestTicketCase3V1 { - - public static UicRailTicketData getUicTestTicket() { - UicRailTicketData ticket = new UicRailTicketData(); - populateTicket(ticket); - return ticket; - } - - /* - * - * Case 1: - issue date: 04-03-2021 12:30 UTC - issuingYear: 2021 - issuingDay: 63 - issuingTime: 750 - validFromDay: 10 - activatedDays: [0] - utcOffset: 0 - - expected: activated for 04-03-2021 + 10 + 0 00:00 UTC --> 14-03-2021 - - Case 2: - issue date: 04-03-2021 00:30 UTC - issuingYear: 2021 - issuingDay: 63 - issuingTime: 30 - validFromDay: 10 - activatedDays: [0] - utcOffset: 0 - - expected: activated for 04-03-2021 + 10 + 0 00:00 UTC --> 14-03-2021 - - Case 3: - issue date: 03-03-2021 23:30 UTC - issuingYear: 2021 - issuingDay: 62 - issuingTime: 1410 - validFromDay: 11 - activatedDays: [0] - - expected: activated for 03-03-2021 + 11 + 0 00:00 UTC --> 14-03-2021 - - - */ - - - - private static void populateTicket(UicRailTicketData ticket) { - - ticket.setControlDetail(new ControlData()); - populate(ticket.getControlDetail()); - - - ticket.setIssuingDetail(new IssuingData()); - populateIssuingData(ticket.getIssuingDetail()); - - TravelerData td = new TravelerData(); - populateTravelerData(td); - ticket.setTravelerDetail(td); - - SequenceOfDocumentData ds = new SequenceOfDocumentData(); - - - //OpenTicket - DocumentData do1 = new DocumentData(); - addPass1(do1); - ds.add(do1); - - - ticket.setTransportDocument(ds); - - SequenceOfExtensionData ed = new SequenceOfExtensionData(); - populateExtensionSequence(ed); - ticket.setExtension(ed); - - } - - - //03-03-2021 23:30 UTC - private static void populateIssuingData(IssuingData issuingDetail) { - issuingDetail.setIssuingYear(2021L); - issuingDetail.setIssuingTime(1410L); - issuingDetail.setIssuingDay(62L); - issuingDetail.setIssuerPNR("issuerTestPNR"); - issuingDetail.setSpecimen(true); - issuingDetail.setSecurePaperTicket(false); - issuingDetail.setActivated(true); - issuingDetail.setIssuedOnLine(12L); - } - - private static void addPass1(DocumentData dd) { - - TicketDetailData tdd = new TicketDetailData(); - PassData otd = new PassData(); - otd.setInfoText("pass"); - otd.setClassCode(TravelClassType.first); - otd.setPassDescription("ONE COUNTRY"); - otd.setValidFromDay(11L); - otd.setValidFromTime(0L); - otd.setValidUntilDay(10L); - otd.setValidUntilTime(1439L); - SequenceOfActivatedDays s = new SequenceOfActivatedDays(); - otd.setActivatedDay(s); - s.add(0L); - - tdd.setPass(otd); - dd.setTicket(tdd); - } - - - private static void populateTravelerData(TravelerData td) { - td.setGroupName("myGroup"); - SequenceOfTravelerType trs = new SequenceOfTravelerType(); - TravelerType tr = new TravelerType(); - tr.setIdCard("12345"); - tr.setFirstName("John"); - tr.setSecondName("Dow"); - tr.setTicketHolder(true); - SequenceOfCustomerStatusType ts = new SequenceOfCustomerStatusType(); - CustomerStatusType cst = new CustomerStatusType(); - cst.setCustomerStatusDescr("senior"); - ts.add(cst); - tr.setStatus(ts); - trs.add(tr); - td.setTraveler(trs); - } - - - - - - private static void populateExtensionSequence(SequenceOfExtensionData ed) { - ExtensionData ed1 = new ExtensionData(); - ed1.setExtensionId("1"); - byte[] ba1 = { (byte) 0x82, (byte) 0xDA }; - ed1.setExtensionData(ba1); - ExtensionData ed2 = new ExtensionData(); - ed2.setExtensionId("2"); - byte[] ba2 = { (byte) 0x83, (byte) 0xDA }; - ed2.setExtensionData(ba2); - ed.add(ed1); - ed.add(ed2); - } - - private static void populate(ControlData controlDetail) { - controlDetail.infoText = "cd"; - controlDetail.setAgeCheckRequired(false); - controlDetail.setIdentificationByIdCard(false); - controlDetail.setIdentificationByPassportId(false); - controlDetail.setOnlineValidationRequired(false); - controlDetail.setPassportValidationRequired(false); - controlDetail.setReductionCardCheckRequired(false); - controlDetail.setIdentificationByCardReference(new SequenceOfCardReferenceType()); - controlDetail.getIdentificationByCardReference().add(populateCardRefrence()); - SequenceOfTicketLinkType sit = new SequenceOfTicketLinkType(); - populateLinkedTickets(sit); - controlDetail.setIncludedTickets(sit); - } - - private static void populateLinkedTickets(SequenceOfTicketLinkType sequenceOfTicketLinkType) { - TicketLinkType tlt = new TicketLinkType(); - tlt.productOwnerIA5="test"; - tlt.setTicketType(TicketType.pass); - tlt.setIssuerPNR("PNR"); - tlt.setReferenceIA5("UED12435867"); - tlt.setLinkMode(LinkMode.onlyValidInCombination); - tlt.setIssuerName("OEBB"); - sequenceOfTicketLinkType.add(tlt); - } - - private static CardReferenceType populateCardRefrence() { - CardReferenceType cr = new CardReferenceType(); - cr.setTrailingCardIdNum(100L); - return cr; - } - - - - } diff --git a/src/main/java/org/uic/barcode/ticket/api/test/testtickets/PassTimeZoneTestTicketV2.java b/src/main/java/org/uic/barcode/ticket/api/test/testtickets/PassTimeZoneTestTicketV2.java deleted file mode 100644 index 7539f0d..0000000 --- a/src/main/java/org/uic/barcode/ticket/api/test/testtickets/PassTimeZoneTestTicketV2.java +++ /dev/null @@ -1,168 +0,0 @@ -package org.uic.barcode.ticket.api.test.testtickets; - -import org.uic.barcode.ticket.api.asn.omv2.CardReferenceType; -import org.uic.barcode.ticket.api.asn.omv2.ControlData; -import org.uic.barcode.ticket.api.asn.omv2.CustomerStatusType; -import org.uic.barcode.ticket.api.asn.omv2.DocumentData; -import org.uic.barcode.ticket.api.asn.omv2.ExtensionData; -import org.uic.barcode.ticket.api.asn.omv2.IssuingData; -import org.uic.barcode.ticket.api.asn.omv2.LinkMode; -import org.uic.barcode.ticket.api.asn.omv2.PassData; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfActivatedDays; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfCardReferenceType; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfCustomerStatusType; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfDocumentData; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfExtensionData; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfTicketLinkType; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfTravelerType; -import org.uic.barcode.ticket.api.asn.omv2.TicketDetailData; -import org.uic.barcode.ticket.api.asn.omv2.TicketLinkType; -import org.uic.barcode.ticket.api.asn.omv2.TicketType; -import org.uic.barcode.ticket.api.asn.omv2.TravelClassType; -import org.uic.barcode.ticket.api.asn.omv2.TravelerData; -import org.uic.barcode.ticket.api.asn.omv2.TravelerType; -import org.uic.barcode.ticket.api.asn.omv2.UicRailTicketData; - - public class PassTimeZoneTestTicketV2 { - - public static UicRailTicketData getUicTestTicket() { - UicRailTicketData ticket = new UicRailTicketData(); - populateTicket(ticket); - return ticket; - } - - - - private static void populateTicket(UicRailTicketData ticket) { - - ticket.setControlDetail(new ControlData()); - populate(ticket.getControlDetail()); - - - ticket.setIssuingDetail(new IssuingData()); - populateIssuingData(ticket.getIssuingDetail()); - - TravelerData td = new TravelerData(); - populateTravelerData(td); - ticket.setTravelerDetail(td); - - SequenceOfDocumentData ds = new SequenceOfDocumentData(); - - - //OpenTicket - DocumentData do1 = new DocumentData(); - addPass1(do1); - ds.add(do1); - - - ticket.setTransportDocument(ds); - - SequenceOfExtensionData ed = new SequenceOfExtensionData(); - populateExtensionSequence(ed); - ticket.setExtension(ed); - - } - - - //issue date: 04-03-2021 12:30 UTC - private static void populateIssuingData(IssuingData issuingDetail) { - issuingDetail.setIssuingYear(2021L); - issuingDetail.setIssuingTime(750L); - issuingDetail.setIssuingDay(63L); - issuingDetail.setIssuerPNR("issuerTestPNR"); - issuingDetail.setSpecimen(true); - issuingDetail.setSecurePaperTicket(false); - issuingDetail.setActivated(true); - issuingDetail.setIssuedOnLine(12L); - } - - private static void addPass1(DocumentData dd) { - - TicketDetailData tdd = new TicketDetailData(); - PassData otd = new PassData(); - otd.setInfoText("pass"); - otd.setClassCode(TravelClassType.first); - otd.setPassDescription("ONE COUNTRY"); - otd.setValidFromDay(10L); - otd.setValidFromTime(0L); - otd.setValidUntilDay(10L); - otd.setValidUntilTime(1439L); - SequenceOfActivatedDays s = new SequenceOfActivatedDays(); - otd.setActivatedDay(s); - s.add(0L); - - tdd.setPass(otd); - dd.setTicket(tdd); - } - - - - private static void populateTravelerData(TravelerData td) { - td.setGroupName("myGroup"); - SequenceOfTravelerType trs = new SequenceOfTravelerType(); - TravelerType tr = new TravelerType(); - tr.setIdCard("12345"); - tr.setFirstName("John"); - tr.setSecondName("Dow"); - tr.setTicketHolder(true); - SequenceOfCustomerStatusType ts = new SequenceOfCustomerStatusType(); - CustomerStatusType cst = new CustomerStatusType(); - cst.setCustomerStatusDescr("senior"); - ts.add(cst); - tr.setStatus(ts); - trs.add(tr); - td.setTraveler(trs); - } - - - - - - private static void populateExtensionSequence(SequenceOfExtensionData ed) { - ExtensionData ed1 = new ExtensionData(); - ed1.setExtensionId("1"); - byte[] ba1 = { (byte) 0x82, (byte) 0xDA }; - ed1.setExtensionData(ba1); - ExtensionData ed2 = new ExtensionData(); - ed2.setExtensionId("2"); - byte[] ba2 = { (byte) 0x83, (byte) 0xDA }; - ed2.setExtensionData(ba2); - ed.add(ed1); - ed.add(ed2); - } - - private static void populate(ControlData controlDetail) { - controlDetail.infoText = "cd"; - controlDetail.setAgeCheckRequired(false); - controlDetail.setIdentificationByIdCard(false); - controlDetail.setIdentificationByPassportId(false); - controlDetail.setOnlineValidationRequired(false); - controlDetail.setPassportValidationRequired(false); - controlDetail.setReductionCardCheckRequired(false); - controlDetail.setIdentificationByCardReference(new SequenceOfCardReferenceType()); - controlDetail.getIdentificationByCardReference().add(populateCardRefrence()); - SequenceOfTicketLinkType sit = new SequenceOfTicketLinkType(); - populateLinkedTickets(sit); - controlDetail.setIncludedTickets(sit); - } - - private static void populateLinkedTickets(SequenceOfTicketLinkType sequenceOfTicketLinkType) { - TicketLinkType tlt = new TicketLinkType(); - tlt.productOwnerIA5="test"; - tlt.setTicketType(TicketType.pass); - tlt.setIssuerPNR("PNR"); - tlt.setReferenceIA5("UED12435867"); - tlt.setLinkMode(LinkMode.onlyValidInCombination); - tlt.setIssuerName("OEBB"); - sequenceOfTicketLinkType.add(tlt); - } - - private static CardReferenceType populateCardRefrence() { - CardReferenceType cr = new CardReferenceType(); - cr.setTrailingCardIdNum(100L); - return cr; - } - - - - } diff --git a/src/main/java/org/uic/barcode/ticket/api/test/testtickets/ReservationTestTicketV1.java b/src/main/java/org/uic/barcode/ticket/api/test/testtickets/ReservationTestTicketV1.java deleted file mode 100644 index 840b584..0000000 --- a/src/main/java/org/uic/barcode/ticket/api/test/testtickets/ReservationTestTicketV1.java +++ /dev/null @@ -1,201 +0,0 @@ -package org.uic.barcode.ticket.api.test.testtickets; - -import org.uic.barcode.ticket.api.asn.omv1.CardReferenceType; -import org.uic.barcode.ticket.api.asn.omv1.ControlData; -import org.uic.barcode.ticket.api.asn.omv1.CustomerStatusType; -import org.uic.barcode.ticket.api.asn.omv1.DocumentData; -import org.uic.barcode.ticket.api.asn.omv1.ExtensionData; -import org.uic.barcode.ticket.api.asn.omv1.IssuingData; -import org.uic.barcode.ticket.api.asn.omv1.PassengerType; -import org.uic.barcode.ticket.api.asn.omv1.PlacesType; -import org.uic.barcode.ticket.api.asn.omv1.PriceTypeType; -import org.uic.barcode.ticket.api.asn.omv1.ReservationData; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCardReferenceType; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCarrierNum; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCustomerStatusType; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfDocumentData; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfExtensionData; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTariffType; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTravelerType; -import org.uic.barcode.ticket.api.asn.omv1.ServiceType; -import org.uic.barcode.ticket.api.asn.omv1.TariffType; -import org.uic.barcode.ticket.api.asn.omv1.TicketDetailData; -import org.uic.barcode.ticket.api.asn.omv1.TravelClassType; -import org.uic.barcode.ticket.api.asn.omv1.TravelerData; -import org.uic.barcode.ticket.api.asn.omv1.TravelerType; -import org.uic.barcode.ticket.api.asn.omv1.UicRailTicketData; - - - public class ReservationTestTicketV1 { - - public static UicRailTicketData getUicTestTicket() { - UicRailTicketData ticket = new UicRailTicketData(); - populateTicket(ticket); - return ticket; - } - - - private static void populateTicket(UicRailTicketData ticket) { - - ticket.setControlDetail(new ControlData()); - populate(ticket.getControlDetail()); - - - ticket.setIssuingDetail(new IssuingData()); - populateIssuingData(ticket.getIssuingDetail()); - - TravelerData td = new TravelerData(); - populateTravelerData(td); - ticket.setTravelerDetail(td); - - SequenceOfDocumentData ds = new SequenceOfDocumentData(); - - - //OpenTicket - DocumentData do1 = new DocumentData(); - addReservation(do1); - ds.add(do1); - - - ticket.setTransportDocument(ds); - - SequenceOfExtensionData ed = new SequenceOfExtensionData(); - populateExtensionSequence(ed); - ticket.setExtension(ed); - - } - - - - private static void addReservation(DocumentData dd) { - - TicketDetailData tdd = new TicketDetailData(); - ReservationData ticket = new ReservationData(); - ticket.setTrainNum(123L); - ticket.setService(ServiceType.seat); - ticket.setReferenceNum(810123456789L); - ticket.setServiceBrandAbrUTF8("XYZ"); - ticket.setServiceBrandNameUTF8("special train"); - SequenceOfCarrierNum carriers = new SequenceOfCarrierNum(); - carriers.add(1080L); - carriers.add(1181L); - ticket.setCarrierNum(carriers); - ticket.setFromStationNum(8100001L); - ticket.setToStationNum(800001L); - ticket.setNumberOfSupplements(1L); - ticket.setServiceBrand(100L); - ticket.setPrice(12345L); - ticket.setPriceType(PriceTypeType.supplement); - - ticket.setPlaces(getPlaces()); - ticket.setTariff(getTariffs()); - - ticket.setInfoText("reservation"); - ticket.setClassCode(TravelClassType.first); - ticket.setDepartureDate(10L); - ticket.setDepartureTime(0L); - ticket.setArrivalDate(10L); - ticket.setArrivalTime(1439L); - tdd.setReservation(ticket); - dd.setTicket(tdd); - } - - - - private static SequenceOfTariffType getTariffs() { - SequenceOfTariffType tariffs = new SequenceOfTariffType(); - - TariffType tariff = new TariffType(); - tariff.setNumberOfPassengers(1L); - tariff.setRestrictedToCountryOfResidence(false); - tariff.setPassengerType(PassengerType.adult); - tariff.setTariffIdNum(72L); - tariff.setTariffDesc("Full Fare Adult"); - tariffs.add(tariff); - TariffType tariff2 = new TariffType(); - tariff2.setRestrictedToCountryOfResidence(false); - tariff2.setNumberOfPassengers(2L); - tariff2.setPassengerType(PassengerType.child); - tariff2.setTariffIdNum(73L); - tariff2.setTariffDesc("Full Fare Child"); - tariffs.add(tariff2); - return tariffs; - } - - - private static PlacesType getPlaces() { - PlacesType places = new PlacesType(); - places.setPlaceDescription("11-13"); - places.setCoach("12"); - return places; - } - - - private static void populateTravelerData(TravelerData td) { - td.setGroupName("myGroup"); - SequenceOfTravelerType trs = new SequenceOfTravelerType(); - TravelerType tr = new TravelerType(); - tr.setIdCard("12345"); - tr.setFirstName("John"); - tr.setSecondName("Dow"); - tr.setTicketHolder(true); - SequenceOfCustomerStatusType ts = new SequenceOfCustomerStatusType(); - CustomerStatusType cst = new CustomerStatusType(); - cst.setCustomerStatusDescr("senior"); - ts.add(cst); - tr.setStatus(ts); - trs.add(tr); - td.setTraveler(trs); - } - - private static void populateIssuingData(IssuingData issuingDetail) { - issuingDetail.setIssuingYear(2018L); - issuingDetail.setIssuingDay(1L); - issuingDetail.setIssuerPNR("issuerTestPNR"); - issuingDetail.setSpecimen(true); - issuingDetail.setSecurePaperTicket(false); - issuingDetail.setActivated(true); - issuingDetail.setIssuedOnLine(12L); - } - - - private static void populateExtensionSequence(SequenceOfExtensionData ed) { - ExtensionData ed1 = new ExtensionData(); - ed1.setExtensionId("1"); - byte[] ba1 = { (byte) 0x82, (byte) 0xDA }; - ed1.setExtensionData(ba1); - ExtensionData ed2 = new ExtensionData(); - ed2.setExtensionId("2"); - byte[] ba2 = { (byte) 0x83, (byte) 0xDA }; - ed2.setExtensionData(ba2); - ed.add(ed1); - ed.add(ed2); - } - - private static void populate(ControlData controlDetail) { - controlDetail.infoText = "cd"; - controlDetail.setAgeCheckRequired(false); - controlDetail.setIdentificationByIdCard(false); - controlDetail.setIdentificationByPassportId(false); - controlDetail.setOnlineValidationRequired(false); - controlDetail.setPassportValidationRequired(false); - controlDetail.setReductionCardCheckRequired(false); - controlDetail.setIdentificationByCardReference(new SequenceOfCardReferenceType()); - controlDetail.getIdentificationByCardReference().add(populateCardRefrence()); - } - - - /* - { - trailingCardIdNum 100 - } - */ - private static CardReferenceType populateCardRefrence() { - CardReferenceType cr = new CardReferenceType(); - cr.setTrailingCardIdNum(100L); - return cr; - } - - - - } diff --git a/src/main/java/org/uic/barcode/ticket/api/test/testtickets/ReservationTestTicketV2.java b/src/main/java/org/uic/barcode/ticket/api/test/testtickets/ReservationTestTicketV2.java deleted file mode 100644 index ef84644..0000000 --- a/src/main/java/org/uic/barcode/ticket/api/test/testtickets/ReservationTestTicketV2.java +++ /dev/null @@ -1,201 +0,0 @@ -package org.uic.barcode.ticket.api.test.testtickets; - -import org.uic.barcode.ticket.api.asn.omv2.CardReferenceType; -import org.uic.barcode.ticket.api.asn.omv2.ControlData; -import org.uic.barcode.ticket.api.asn.omv2.CustomerStatusType; -import org.uic.barcode.ticket.api.asn.omv2.DocumentData; -import org.uic.barcode.ticket.api.asn.omv2.ExtensionData; -import org.uic.barcode.ticket.api.asn.omv2.IssuingData; -import org.uic.barcode.ticket.api.asn.omv2.PassengerType; -import org.uic.barcode.ticket.api.asn.omv2.PlacesType; -import org.uic.barcode.ticket.api.asn.omv2.PriceTypeType; -import org.uic.barcode.ticket.api.asn.omv2.ReservationData; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfCardReferenceType; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfCarrierNum; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfCustomerStatusType; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfDocumentData; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfExtensionData; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfTariffType; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfTravelerType; -import org.uic.barcode.ticket.api.asn.omv2.ServiceType; -import org.uic.barcode.ticket.api.asn.omv2.TariffType; -import org.uic.barcode.ticket.api.asn.omv2.TicketDetailData; -import org.uic.barcode.ticket.api.asn.omv2.TravelClassType; -import org.uic.barcode.ticket.api.asn.omv2.TravelerData; -import org.uic.barcode.ticket.api.asn.omv2.TravelerType; -import org.uic.barcode.ticket.api.asn.omv2.UicRailTicketData; - - - public class ReservationTestTicketV2 { - - public static UicRailTicketData getUicTestTicket() { - UicRailTicketData ticket = new UicRailTicketData(); - populateTicket(ticket); - return ticket; - } - - - private static void populateTicket(UicRailTicketData ticket) { - - ticket.setControlDetail(new ControlData()); - populate(ticket.getControlDetail()); - - - ticket.setIssuingDetail(new IssuingData()); - populateIssuingData(ticket.getIssuingDetail()); - - TravelerData td = new TravelerData(); - populateTravelerData(td); - ticket.setTravelerDetail(td); - - SequenceOfDocumentData ds = new SequenceOfDocumentData(); - - - //OpenTicket - DocumentData do1 = new DocumentData(); - addReservation(do1); - ds.add(do1); - - - ticket.setTransportDocument(ds); - - SequenceOfExtensionData ed = new SequenceOfExtensionData(); - populateExtensionSequence(ed); - ticket.setExtension(ed); - - } - - - - private static void addReservation(DocumentData dd) { - - TicketDetailData tdd = new TicketDetailData(); - ReservationData ticket = new ReservationData(); - ticket.setTrainNum(123L); - ticket.setService(ServiceType.seat); - ticket.setReferenceNum(810123456789L); - ticket.setServiceBrandAbrUTF8("XYZ"); - ticket.setServiceBrandNameUTF8("special train"); - SequenceOfCarrierNum carriers = new SequenceOfCarrierNum(); - carriers.add(1080L); - carriers.add(1181L); - ticket.setCarrierNum(carriers); - ticket.setFromStationNum(8100001L); - ticket.setToStationNum(800001L); - ticket.setNumberOfSupplements(1L); - ticket.setServiceBrand(100L); - ticket.setPrice(12345L); - ticket.setPriceType(PriceTypeType.supplement); - - ticket.setPlaces(getPlaces()); - ticket.setTariff(getTariffs()); - - ticket.setInfoText("reservation"); - ticket.setClassCode(TravelClassType.first); - ticket.setDepartureDate(10L); - ticket.setDepartureTime(0L); - ticket.setArrivalDate(10L); - ticket.setArrivalTime(1439L); - tdd.setReservation(ticket); - dd.setTicket(tdd); - } - - - - private static SequenceOfTariffType getTariffs() { - SequenceOfTariffType tariffs = new SequenceOfTariffType(); - - TariffType tariff = new TariffType(); - tariff.setNumberOfPassengers(1L); - tariff.setRestrictedToCountryOfResidence(false); - tariff.setPassengerType(PassengerType.adult); - tariff.setTariffIdNum(72L); - tariff.setTariffDesc("Full Fare Adult"); - tariffs.add(tariff); - TariffType tariff2 = new TariffType(); - tariff2.setRestrictedToCountryOfResidence(false); - tariff2.setNumberOfPassengers(2L); - tariff2.setPassengerType(PassengerType.child); - tariff2.setTariffIdNum(73L); - tariff2.setTariffDesc("Full Fare Child"); - tariffs.add(tariff2); - return tariffs; - } - - - private static PlacesType getPlaces() { - PlacesType places = new PlacesType(); - places.setPlaceDescription("11-13"); - places.setCoach("12"); - return places; - } - - - private static void populateTravelerData(TravelerData td) { - td.setGroupName("myGroup"); - SequenceOfTravelerType trs = new SequenceOfTravelerType(); - TravelerType tr = new TravelerType(); - tr.setIdCard("12345"); - tr.setFirstName("John"); - tr.setSecondName("Dow"); - tr.setTicketHolder(true); - SequenceOfCustomerStatusType ts = new SequenceOfCustomerStatusType(); - CustomerStatusType cst = new CustomerStatusType(); - cst.setCustomerStatusDescr("senior"); - ts.add(cst); - tr.setStatus(ts); - trs.add(tr); - td.setTraveler(trs); - } - - private static void populateIssuingData(IssuingData issuingDetail) { - issuingDetail.setIssuingYear(2018L); - issuingDetail.setIssuingDay(1L); - issuingDetail.setIssuerPNR("issuerTestPNR"); - issuingDetail.setSpecimen(true); - issuingDetail.setSecurePaperTicket(false); - issuingDetail.setActivated(true); - issuingDetail.setIssuedOnLine(12L); - } - - - private static void populateExtensionSequence(SequenceOfExtensionData ed) { - ExtensionData ed1 = new ExtensionData(); - ed1.setExtensionId("1"); - byte[] ba1 = { (byte) 0x82, (byte) 0xDA }; - ed1.setExtensionData(ba1); - ExtensionData ed2 = new ExtensionData(); - ed2.setExtensionId("2"); - byte[] ba2 = { (byte) 0x83, (byte) 0xDA }; - ed2.setExtensionData(ba2); - ed.add(ed1); - ed.add(ed2); - } - - private static void populate(ControlData controlDetail) { - controlDetail.infoText = "cd"; - controlDetail.setAgeCheckRequired(false); - controlDetail.setIdentificationByIdCard(false); - controlDetail.setIdentificationByPassportId(false); - controlDetail.setOnlineValidationRequired(false); - controlDetail.setPassportValidationRequired(false); - controlDetail.setReductionCardCheckRequired(false); - controlDetail.setIdentificationByCardReference(new SequenceOfCardReferenceType()); - controlDetail.getIdentificationByCardReference().add(populateCardRefrence()); - } - - - /* - { - trailingCardIdNum 100 - } - */ - private static CardReferenceType populateCardRefrence() { - CardReferenceType cr = new CardReferenceType(); - cr.setTrailingCardIdNum(100L); - return cr; - } - - - - } diff --git a/src/main/java/org/uic/barcode/ticket/api/test/testtickets/SimpleTicketLinkTestTicket.java b/src/main/java/org/uic/barcode/ticket/api/test/testtickets/SimpleTicketLinkTestTicket.java deleted file mode 100644 index d752043..0000000 --- a/src/main/java/org/uic/barcode/ticket/api/test/testtickets/SimpleTicketLinkTestTicket.java +++ /dev/null @@ -1,574 +0,0 @@ -package org.uic.barcode.ticket.api.test.testtickets; - - import org.uic.barcode.asn1.datatypesimpl.SequenceOfStringUTF8; - import org.uic.barcode.ticket.api.asn.omv1.CardReferenceType; - import org.uic.barcode.ticket.api.asn.omv1.ControlData; - import org.uic.barcode.ticket.api.asn.omv1.CustomerStatusType; - import org.uic.barcode.ticket.api.asn.omv1.DocumentData; - import org.uic.barcode.ticket.api.asn.omv1.ExtensionData; - import org.uic.barcode.ticket.api.asn.omv1.IssuingData; - import org.uic.barcode.ticket.api.asn.omv1.LinkMode; - import org.uic.barcode.ticket.api.asn.omv1.OpenTicketData; - import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCardReferenceType; - import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCustomerStatusType; - import org.uic.barcode.ticket.api.asn.omv1.SequenceOfDocumentData; - import org.uic.barcode.ticket.api.asn.omv1.SequenceOfExtensionData; - import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTicketLinkType; - import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTravelerType; - import org.uic.barcode.ticket.api.asn.omv1.StationPassageData; - import org.uic.barcode.ticket.api.asn.omv1.TicketDetailData; - import org.uic.barcode.ticket.api.asn.omv1.TicketLinkType; - import org.uic.barcode.ticket.api.asn.omv1.TicketType; - import org.uic.barcode.ticket.api.asn.omv1.TokenType; - import org.uic.barcode.ticket.api.asn.omv1.TravelerData; - import org.uic.barcode.ticket.api.asn.omv1.TravelerType; - import org.uic.barcode.ticket.api.asn.omv1.UicRailTicketData; - - public class SimpleTicketLinkTestTicket { - - public static UicRailTicketData getUicTestTicket() { - UicRailTicketData ticket = new UicRailTicketData(); - populateTicket(ticket); - return ticket; - } - - /* - value UicRailTicketData ::= { - issuingDetail { - issuingYear 2018 - issuingDay 1 - specimen TRUE, - securePaperTicket FALSE, - activated TRUE, - issuerPNR "issuerTestPNR", - issuedOnLine 12 - } - ,travelerDetail{ - traveler { - { - firstName "John" - ,secondName "Dow" - ,idCard "12345" - ,ticketHolder TRUE - ,status {{customerStatusDescr "senior" }} - } - } - ,groupName "myGroup" - } - ,transportDocument { - { - token {tokenProviderIA5 "VDV", token '82DA'H } - ,ticket openTicket : { - returnIncluded FALSE - infoText "openTicketInfo" - } - } - ,{ - ticket stationPassage : { - productName "passage" - ,stationNameUTF8 { "Amsterdam" } - ,validFromDay 0 - ,numberOfDaysValid 123 - } - } - } - ,controlDetail { - identificationByCardReference { - { trailingCardIdNum 100 } - } - ,identificationByIdCard FALSE - ,identificationByPassportId FALSE - ,passportValidationRequired FALSE - ,onlineValidationRequired FALSE - ,ageCheckRequired FALSE - ,reductionCardCheckRequired FALSE - ,infoText "cd" - ,includedTickets { - { referenceIA5 "UED12435867" - ,issuerName "OEBB" - ,issuerPNR "PNR" - ,productOwnerIA5 "test" - ,ticketType pass - ,linkMode onlyValidInCombination - - } - } - } - ,extension { - { extensionId "1", extensionData '82DA'H } - ,{ extensionId "2", extensionData '83DA'H } - } - } - */ - - /* - * asn.1 version 1.3 encoding: -Encoding to the file 'data.uper' using PER UNALIGNED encoding rule... -UicRailTicketData SEQUENCE [root fieldcount (not encoded) = 5] - issuingDetail IssuingData SEQUENCE [root fieldcount (not encoded) = 7] - issuingYear INTEGER [length (not encoded) = 1.0] - 2018 - issuingDay INTEGER [length (not encoded) = 1.1] - 1 - specimen BOOLEAN [length (not encoded) = 0.1] - TRUE - securePaperTicket BOOLEAN [length (not encoded) = 0.1] - FALSE - activated BOOLEAN [length (not encoded) = 0.1] - TRUE - issuerPNR IA5String [length = 13.0] - "issuerTestPNR" - issuedOnLine INTEGER [length = 1.0] - 12 - travelerDetail TravelerData SEQUENCE [root fieldcount (not encoded) = 2] - traveler SEQUENCE OF [count = 1] - TravelerType SEQUENCE [root fieldcount (not encoded) = 5] - firstName UTF8String [length = 4.0] - 0x4a6f686e - secondName UTF8String [length = 3.0] - 0x446f77 - idCard IA5String [length = 5.0] - "12345" - ticketHolder BOOLEAN [length (not encoded) = 0.1] - TRUE - status SEQUENCE OF [count = 1] - CustomerStatusType SEQUENCE [fieldcount (not encoded) = 1] - customerStatusDescr IA5String [length = 6.0] - "senior" - groupName UTF8String [length = 7.0] - 0x6d7947726f7570 - transportDocument SEQUENCE OF [count = 2] - DocumentData SEQUENCE [root fieldcount (not encoded) = 2] - token TokenType SEQUENCE [fieldcount (not encoded) = 2] - tokenProviderIA5 IA5String [length = 3.0] - "VDV" - token OCTET STRING [length = 2.0] - 0x82da - ticket CHOICE [index = 2] - openTicket OpenTicketData SEQUENCE [root fieldcount (not encoded) = 2] - returnIncluded BOOLEAN [length (not encoded) = 0.1] - FALSE - infoText UTF8String [length = 14.0] - 0x6f70656e5469636b6574496e666f - DocumentData SEQUENCE [root fieldcount (not encoded) = 1] - ticket CHOICE [index = 9] - stationPassage StationPassageData SEQUENCE [root fieldcount (not encoded) = 4] - productName UTF8String [length = 7.0] - 0x70617373616765 - stationNameUTF8 SEQUENCE OF [count = 1] - UTF8String [length = 9.0] - 0x416d7374657264616d - validFromDay INTEGER [length (not encoded) = 1.2] - 0 - numberOfDaysValid INTEGER [length = 1.0] - 123 - controlDetail ControlData SEQUENCE [root fieldcount (not encoded) = 9] - identificationByCardReference SEQUENCE OF [count = 1] - CardReferenceType SEQUENCE [root fieldcount (not encoded) = 1] - trailingCardIdNum INTEGER [length = 1.0] - 100 - identificationByIdCard BOOLEAN [length (not encoded) = 0.1] - FALSE - identificationByPassportId BOOLEAN [length (not encoded) = 0.1] - FALSE - passportValidationRequired BOOLEAN [length (not encoded) = 0.1] - FALSE - onlineValidationRequired BOOLEAN [length (not encoded) = 0.1] - FALSE - ageCheckRequired BOOLEAN [length (not encoded) = 0.1] - FALSE - reductionCardCheckRequired BOOLEAN [length (not encoded) = 0.1] - FALSE - infoText UTF8String [length = 2.0] - 0x6364 - includedTickets SEQUENCE OF [count = 1] - TicketLinkType SEQUENCE [root fieldcount (not encoded) = 6] - referenceIA5 IA5String [length = 11.0] - "UED12435867" - issuerName UTF8String [length = 4.0] - 0x4f454242 - issuerPNR IA5String [length = 3.0] - "PNR" - productOwnerIA5 IA5String [length = 4.0] - "test" - ticketType TicketType ENUMERATED [length (not encoded) = 0.2] - 1 - linkMode LinkMode ENUMERATED [length (not encoded) = 0.1] - 1 - extension SEQUENCE OF [count = 2] - ExtensionData SEQUENCE [fieldcount (not encoded) = 2] - extensionId IA5String [length = 1.0] - "1" - extensionData OCTET STRING [length = 2.0] - 0x82da - ExtensionData SEQUENCE [fieldcount (not encoded) = 2] - extensionId IA5String [length = 1.0] - "2" - extensionData OCTET STRING [length = 2.0] - 0x83da -Total encoded length = 154.3 -Encoded successfully in 155 bytes: -78022020 050DD3CF 9F5CBCAA 65E7D284 EA40218A 02D00082 2537B437 01A237BB -82B164CD A3580883 73CBBB4E FE40EDAF 28EE4DEE AE004A03 AD12B014 16D08000 -00000403 9BDC195B 951A58DA D95D125B 999BC480 88040EE0 C2E6E6C2 CECA0212 -82DAE6E8 CAE4C8C2 DA0080BD A6010040 2C800131 B200ADC2 EAC588C5 93466D5C -366E089E 8A848407 4275204E 9979F428 100B1028 2DA01640 507B40 - * - * - */ - - /* - * asn.1 version 2.0 encoding - * - Encoding to the file 'data.uper' using PER UNALIGNED encoding rule... -UicRailTicketData SEQUENCE [root fieldcount (not encoded) = 5] - issuingDetail IssuingData SEQUENCE [root fieldcount (not encoded) = 7] - issuingYear INTEGER [length (not encoded) = 1.0] - 2018 - issuingDay INTEGER [length (not encoded) = 1.1] - 1 - specimen BOOLEAN [length (not encoded) = 0.1] - TRUE - securePaperTicket BOOLEAN [length (not encoded) = 0.1] - FALSE - activated BOOLEAN [length (not encoded) = 0.1] - TRUE - issuerPNR IA5String [length = 13.0] - "issuerTestPNR" - issuedOnLine INTEGER [length = 1.0] - 12 - travelerDetail TravelerData SEQUENCE [root fieldcount (not encoded) = 2] - traveler SEQUENCE OF [count = 1] - TravelerType SEQUENCE [root fieldcount (not encoded) = 5] - firstName UTF8String [length = 4.0] - 0x4a6f686e - secondName UTF8String [length = 3.0] - 0x446f77 - idCard IA5String [length = 5.0] - "12345" - ticketHolder BOOLEAN [length (not encoded) = 0.1] - TRUE - status SEQUENCE OF [count = 1] - CustomerStatusType SEQUENCE [fieldcount (not encoded) = 1] - customerStatusDescr IA5String [length = 6.0] - "senior" - groupName UTF8String [length = 7.0] - 0x6d7947726f7570 - transportDocument SEQUENCE OF [count = 2] - DocumentData SEQUENCE [root fieldcount (not encoded) = 2] - token TokenType SEQUENCE [fieldcount (not encoded) = 2] - tokenProviderIA5 IA5String [length = 3.0] - "VDV" - token OCTET STRING [length = 2.0] - 0x82da - ticket CHOICE [index = 2] - openTicket OpenTicketData SEQUENCE [root fieldcount (not encoded) = 2] - returnIncluded BOOLEAN [length (not encoded) = 0.1] - FALSE - infoText UTF8String [length = 14.0] - 0x6f70656e5469636b6574496e666f - DocumentData SEQUENCE [root fieldcount (not encoded) = 1] - ticket CHOICE [index = 9] - stationPassage StationPassageData SEQUENCE [root fieldcount (not encoded) = 4] - productName UTF8String [length = 7.0] - 0x70617373616765 - stationNameUTF8 SEQUENCE OF [count = 1] - UTF8String [length = 9.0] - 0x416d7374657264616d - validFromDay INTEGER [length (not encoded) = 1.2] - 0 - numberOfDaysValid INTEGER [length = 1.0] - 123 - controlDetail ControlData SEQUENCE [root fieldcount (not encoded) = 9] - identificationByCardReference SEQUENCE OF [count = 1] - CardReferenceType SEQUENCE [root fieldcount (not encoded) = 1] - trailingCardIdNum INTEGER [length = 1.0] - 100 - identificationByIdCard BOOLEAN [length (not encoded) = 0.1] - FALSE - identificationByPassportId BOOLEAN [length (not encoded) = 0.1] - FALSE - passportValidationRequired BOOLEAN [length (not encoded) = 0.1] - FALSE - onlineValidationRequired BOOLEAN [length (not encoded) = 0.1] - FALSE - ageCheckRequired BOOLEAN [length (not encoded) = 0.1] - FALSE - reductionCardCheckRequired BOOLEAN [length (not encoded) = 0.1] - FALSE - infoText UTF8String [length = 2.0] - 0x6364 - includedTickets SEQUENCE OF [count = 1] - TicketLinkType SEQUENCE [root fieldcount (not encoded) = 6] - referenceIA5 IA5String [length = 11.0] - "UED12435867" - issuerName UTF8String [length = 4.0] - 0x4f454242 - issuerPNR IA5String [length = 3.0] - "PNR" - productOwnerIA5 IA5String [length = 4.0] - "test" - ticketType TicketType ENUMERATED [length (not encoded) = 0.2] - 1 - linkMode LinkMode ENUMERATED [length (not encoded) = 0.1] - 1 - extension SEQUENCE OF [count = 2] - ExtensionData SEQUENCE [fieldcount (not encoded) = 2] - extensionId IA5String [length = 1.0] - "1" - extensionData OCTET STRING [length = 2.0] - 0x82da - ExtensionData SEQUENCE [fieldcount (not encoded) = 2] - extensionId IA5String [length = 1.0] - "2" - extensionData OCTET STRING [length = 2.0] - 0x83da -Total encoded length = 154.6 -Encoded successfully in 155 bytes: -78022020 050DD3CF 9F5CBCAA 65E7D284 EA40218A 02D00041 129BDA1B 80D11BDD -C158B266 D1AC0441 B9E5DDA7 7F2076D7 947726F7 57002501 D689580A 0B684000 -00000200 737B832B 72A34B1B 5B2BA24B 73337890 110081DC 185CDCD8 59D94042 -505B5CDD 195C9918 5B401017 B4C02008 05900026 364015B8 5D58B118 B268CDAB -86CDC113 D1509080 E84EA409 D32F3E85 02016205 05B402C8 0A0F68 - * - * - * - */ - - public static String getEncodingV1Hex() { - return "78022020050DD3CF9F5CBCAA65E7D284EA40218A02D000822537B43701A237BB" + - "82B164CDA358088373CBBB4EFE40EDAF28EE4DEEAE004A03AD12B01416D08000" + - "000004039BDC195B951A58DAD95D125B999BC48088040EE0C2E6E6C2CECA0212" + - "82DAE6E8CAE4C8C2DA0080BDA60100402C800131B200ADC2EAC588C593466D5C" + - "366E089E8A8484074275204E9979F428100B10282DA01640507B40"; - } - - public static String getEncodingV2Hex() { - return "78022020050DD3CF9F5CBCAA65E7D284EA40218A02D00041129BDA1B80D11BDD" + - "C158B266D1AC0441B9E5DDA77F2076D7947726F757002501D689580A0B684000" + - "00000200737B832B72A34B1B5B2BA24B73337890110081DC185CDCD859D94042" + - "505B5CDD195C99185B401017B4C0200805900026364015B85D58B118B268CDAB" + - "86CDC113D1509080E84EA409D32F3E850201620505B402C80A0F68"; - } - - - private static void populateTicket(UicRailTicketData ticket) { - - ticket.setControlDetail(new ControlData()); - populate(ticket.getControlDetail()); - - - ticket.setIssuingDetail(new IssuingData()); - populateIssuingData(ticket.getIssuingDetail()); - - TravelerData td = new TravelerData(); - populateTravelerData(td); - ticket.setTravelerDetail(td); - - SequenceOfDocumentData ds = new SequenceOfDocumentData(); - - - //OpenTicket - DocumentData do1 = new DocumentData(); - addOpenTicketData(do1); - ds.add(do1); - - //StationPassage - DocumentData do2 = new DocumentData(); - addStationPassage(do2); - ds.add(do2); - - ticket.setTransportDocument(ds); - - SequenceOfExtensionData ed = new SequenceOfExtensionData(); - populateExtensionSequence(ed); - ticket.setExtension(ed); - - } - - /* - ticket stationPassage : { - productName "passage" - ,stationNameUTF8 { "Amsterdam" } - ,validFromDay 0 - ,numberOfDaysValid 123 - } - */ - private static void addStationPassage(DocumentData dd) { - TicketDetailData tdd = new TicketDetailData(); - StationPassageData sp = new StationPassageData(); - sp.setProductName("passage"); - sp.setValidFromDay(0L); - sp.setNumberOfDaysValid(123L); - SequenceOfStringUTF8 ss = new SequenceOfStringUTF8(); - ss.add("Amsterdam"); - sp.setStationNameUTF8(ss); - tdd.setStationPassage(sp); - dd.setTicket(tdd); - } - - /* - { - token {tokenProviderIA5 "VDV", token '82DA'H } - ,ticket openTicket : { - returnIncluded FALSE - infoText "openTicketInfo" - } - } - */ - - - - private static void addOpenTicketData(DocumentData dd) { - TokenType to = new TokenType(); - to.setTokenProviderIA5("VDV"); - byte[] ba = { (byte) 0x82, (byte) 0xDA }; - to.setToken(ba); - dd.setToken(to); - - TicketDetailData tdd = new TicketDetailData(); - OpenTicketData otd = new OpenTicketData(); - otd.setInfoText("openTicketInfo"); - otd.setReturnIncluded(false); - tdd.setOpenTicket(otd); - dd.setTicket(tdd); - } - - - /* - ,travelerDetail{ - traveler { - { - firstName "John" - ,secondName "Dow" - ,idCard "12345" - ,ticketHolder TRUE - ,status {{customerStatusDescr "senior" }} - } - } - ,groupName "myGroup" - } - */ - - private static void populateTravelerData(TravelerData td) { - td.setGroupName("myGroup"); - SequenceOfTravelerType trs = new SequenceOfTravelerType(); - TravelerType tr = new TravelerType(); - tr.setIdCard("12345"); - tr.setFirstName("John"); - tr.setSecondName("Dow"); - tr.setTicketHolder(true); - SequenceOfCustomerStatusType ts = new SequenceOfCustomerStatusType(); - CustomerStatusType cst = new CustomerStatusType(); - cst.setCustomerStatusDescr("senior"); - ts.add(cst); - tr.setStatus(ts); - trs.add(tr); - td.setTraveler(trs); - } - - /* - ,issuingDetail { - issuingYear 2018 - issuingDay 1 - specimen TRUE, - securePaperTicket FALSE, - activated TRUE, - issuerPNR "issuerTestPNR", - issuedOnLine 12 - } - */ - private static void populateIssuingData(IssuingData issuingDetail) { - issuingDetail.setIssuingYear(2018L); - issuingDetail.setIssuingDay(1L); - issuingDetail.setIssuerPNR("issuerTestPNR"); - issuingDetail.setSpecimen(true); - issuingDetail.setSecurePaperTicket(false); - issuingDetail.setActivated(true); - issuingDetail.setIssuedOnLine(12L); - } - - /* - ,extension { - { extensionId "1", extensionData '82DA'H } - ,{ extensionId "2", extensionData '83DA'H } - } - */ - private static void populateExtensionSequence(SequenceOfExtensionData ed) { - ExtensionData ed1 = new ExtensionData(); - ed1.setExtensionId("1"); - byte[] ba1 = { (byte) 0x82, (byte) 0xDA }; - ed1.setExtensionData(ba1); - ExtensionData ed2 = new ExtensionData(); - ed2.setExtensionId("2"); - byte[] ba2 = { (byte) 0x83, (byte) 0xDA }; - ed2.setExtensionData(ba2); - ed.add(ed1); - ed.add(ed2); - } - - /* - ,controlDetail { - identificationByCardReference { - { trailingCardIdNum 100 } - } - ,identificationByIdCard FALSE - ,identificationByPassportId FALSE - ,passportValidationRequired FALSE - ,onlineValidationRequired FALSE - ,ageCheckRequired FALSE - ,reductionCardCheckRequired FALSE - ,infoText "cd" - ,includedTickets { - { productOwnerIA5 "test" - , - - - } - } - } - */ - private static void populate(ControlData controlDetail) { - controlDetail.infoText = "cd"; - controlDetail.setAgeCheckRequired(false); - controlDetail.setIdentificationByIdCard(false); - controlDetail.setIdentificationByPassportId(false); - controlDetail.setOnlineValidationRequired(false); - controlDetail.setPassportValidationRequired(false); - controlDetail.setReductionCardCheckRequired(false); - controlDetail.setIdentificationByCardReference(new SequenceOfCardReferenceType()); - controlDetail.getIdentificationByCardReference().add(populateCardRefrence()); - SequenceOfTicketLinkType sit = new SequenceOfTicketLinkType(); - populateLinkedTickets(sit); - controlDetail.setIncludedTickets(sit); - } - - - /* - * - */ - private static void populateLinkedTickets(SequenceOfTicketLinkType sequenceOfTicketLinkType) { - TicketLinkType tlt = new TicketLinkType(); - tlt.productOwnerIA5="test"; - tlt.setTicketType(TicketType.pass); - tlt.setIssuerPNR("PNR"); - tlt.setReferenceIA5("UED12435867"); - tlt.setLinkMode(LinkMode.onlyValidInCombination); - tlt.setIssuerName("OEBB"); - sequenceOfTicketLinkType.add(tlt); - } - - /* - { - trailingCardIdNum 100 - } - */ - private static CardReferenceType populateCardRefrence() { - CardReferenceType cr = new CardReferenceType(); - cr.setTrailingCardIdNum(100L); - return cr; - } - - - - } diff --git a/src/main/java/org/uic/barcode/ticket/api/test/testtickets/SimpleUicTestTicket.java b/src/main/java/org/uic/barcode/ticket/api/test/testtickets/SimpleUicTestTicket.java deleted file mode 100644 index d8adb3d..0000000 --- a/src/main/java/org/uic/barcode/ticket/api/test/testtickets/SimpleUicTestTicket.java +++ /dev/null @@ -1,244 +0,0 @@ -package org.uic.barcode.ticket.api.test.testtickets; - -import org.uic.barcode.asn1.datatypesimpl.SequenceOfStringUTF8; -import org.uic.barcode.ticket.api.asn.omv1.CardReferenceType; -import org.uic.barcode.ticket.api.asn.omv1.ControlData; -import org.uic.barcode.ticket.api.asn.omv1.CustomerStatusType; -import org.uic.barcode.ticket.api.asn.omv1.DocumentData; -import org.uic.barcode.ticket.api.asn.omv1.ExtensionData; -import org.uic.barcode.ticket.api.asn.omv1.IssuingData; -import org.uic.barcode.ticket.api.asn.omv1.OpenTicketData; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCardReferenceType; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCustomerStatusType; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfDocumentData; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfExtensionData; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTicketLinkType; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTravelerType; -import org.uic.barcode.ticket.api.asn.omv1.StationPassageData; -import org.uic.barcode.ticket.api.asn.omv1.TicketDetailData; -import org.uic.barcode.ticket.api.asn.omv1.TicketLinkType; -import org.uic.barcode.ticket.api.asn.omv1.TokenType; -import org.uic.barcode.ticket.api.asn.omv1.TravelerData; -import org.uic.barcode.ticket.api.asn.omv1.TravelerType; -import org.uic.barcode.ticket.api.asn.omv1.UicRailTicketData; - -public class SimpleUicTestTicket { - - - public static UicRailTicketData getUicTestTicket() { - UicRailTicketData ticket = new UicRailTicketData(); - populateTicket(ticket); - return ticket; - } - - - - private static void populateTicket(UicRailTicketData ticket) { - - ticket.setControlDetail(new ControlData()); - populate(ticket.getControlDetail()); - - - ticket.setIssuingDetail(new IssuingData()); - populateIssuingData(ticket.getIssuingDetail()); - - TravelerData td = new TravelerData(); - populateTravelerData(td); - ticket.setTravelerDetail(td); - - SequenceOfDocumentData ds = new SequenceOfDocumentData(); - - - //OpenTicket - DocumentData do1 = new DocumentData(); - addOpenTicketData(do1); - ds.add(do1); - - //StationPassage - DocumentData do2 = new DocumentData(); - addStationPassage(do2); - ds.add(do2); - - ticket.setTransportDocument(ds); - - SequenceOfExtensionData ed = new SequenceOfExtensionData(); - populateExtensionSequence(ed); - ticket.setExtension(ed); - - } - - /* - ticket stationPassage : { - productName "passage" - ,stationNameUTF8 { "Amsterdam" } - ,validFromDay 0 - ,numberOfDaysValid 123 - } - */ - private static void addStationPassage(DocumentData dd) { - TicketDetailData tdd = new TicketDetailData(); - StationPassageData sp = new StationPassageData(); - sp.setProductName("passage"); - sp.setValidFromDay(0L); - sp.setNumberOfDaysValid(123L); - SequenceOfStringUTF8 ss = new SequenceOfStringUTF8(); - ss.add("Amsterdam"); - sp.setStationNameUTF8(ss); - tdd.setStationPassage(sp); - dd.setTicket(tdd); - } - - /* - { - token {tokenProviderIA5 "VDV", token '82DA'H } - ,ticket openTicket : { - returnIncluded FALSE - infoText "openTicketInfo" - } - } - */ - - private static void addOpenTicketData(DocumentData dd) { - TokenType to = new TokenType(); - to.setTokenProviderIA5("VDV"); - byte[] ba = { (byte) 0x82, (byte) 0xDA }; - to.setToken(ba); - dd.setToken(to); - - TicketDetailData tdd = new TicketDetailData(); - OpenTicketData otd = new OpenTicketData(); - otd.setInfoText("openTicketInfo"); - otd.setReturnIncluded(false); - tdd.setOpenTicket(otd); - dd.setTicket(tdd); - } - - - /* - ,travelerDetail{ - traveler { - { - firstName "John" - ,secondName "Dow" - ,idCard "12345" - ,ticketHolder TRUE - ,status {{customerStatusDescr "senior" }} - } - } - ,groupName "myGroup" - } - */ - - private static void populateTravelerData(TravelerData td) { - td.setGroupName("myGroup"); - SequenceOfTravelerType trs = new SequenceOfTravelerType(); - TravelerType tr = new TravelerType(); - tr.setIdCard("12345"); - tr.setFirstName("John"); - tr.setSecondName("Dow"); - tr.setTicketHolder(true); - SequenceOfCustomerStatusType ts = new SequenceOfCustomerStatusType(); - CustomerStatusType cst = new CustomerStatusType(); - cst.setCustomerStatusDescr("senior"); - ts.add(cst); - tr.setStatus(ts); - trs.add(tr); - td.setTraveler(trs); - } - - /* - ,issuingDetail { - issuingYear 2018 - issuingDay 1 - specimen TRUE, - securePaperTicket FALSE, - activated TRUE, - issuerPNR "issuerTestPNR", - issuedOnLine 12 - } - */ - private static void populateIssuingData(IssuingData issuingDetail) { - issuingDetail.setIssuingYear(2018L); - issuingDetail.setIssuingDay(1L); - issuingDetail.setIssuerPNR("issuerTestPNR"); - issuingDetail.setSpecimen(true); - issuingDetail.setSecurePaperTicket(false); - issuingDetail.setActivated(true); - issuingDetail.setIssuedOnLine(12L); - } - - /* - ,extension { - { extensionId "1", extensionData '82DA'H } - ,{ extensionId "2", extensionData '83DA'H } - } - */ - private static void populateExtensionSequence(SequenceOfExtensionData ed) { - ExtensionData ed1 = new ExtensionData(); - ed1.setExtensionId("1"); - byte[] ba1 = { (byte) 0x82, (byte) 0xDA }; - ed1.setExtensionData(ba1); - ExtensionData ed2 = new ExtensionData(); - ed2.setExtensionId("2"); - byte[] ba2 = { (byte) 0x83, (byte) 0xDA }; - ed2.setExtensionData(ba2); - ed.add(ed1); - ed.add(ed2); - } - - /* - ,controlDetail { - identificationByCardReference { - { trailingCardIdNum 100 } - } - ,identificationByIdCard FALSE - ,identificationByPassportId FALSE - ,passportValidationRequired FALSE - ,onlineValidationRequired FALSE - ,ageCheckRequired FALSE - ,reductionCardCheckRequired FALSE - ,infoText "cd" - ,includedTickets { - { productOwnerIA5 "test" } - } - } - */ - private static void populate(ControlData controlDetail) { - controlDetail.infoText = "cd"; - controlDetail.setAgeCheckRequired(false); - controlDetail.setIdentificationByIdCard(false); - controlDetail.setIdentificationByPassportId(false); - controlDetail.setOnlineValidationRequired(false); - controlDetail.setPassportValidationRequired(false); - controlDetail.setReductionCardCheckRequired(false); - controlDetail.setIdentificationByCardReference(new SequenceOfCardReferenceType()); - controlDetail.getIdentificationByCardReference().add(populateCardRefrence()); - SequenceOfTicketLinkType sit = new SequenceOfTicketLinkType(); - populateLinkedTickets(sit); - controlDetail.setIncludedTickets(sit); - } - - - /* - * - */ - private static void populateLinkedTickets(SequenceOfTicketLinkType sequenceOfTicketLinkType) { - TicketLinkType tlt = new TicketLinkType(); - tlt.productOwnerIA5="test"; - sequenceOfTicketLinkType.add(tlt); - } - - /* - { - trailingCardIdNum 100 - } - */ - private static CardReferenceType populateCardRefrence() { - CardReferenceType cr = new CardReferenceType(); - cr.setTrailingCardIdNum(100L); - return cr; - } - - - -} diff --git a/src/main/java/org/uic/barcode/ticket/api/test/testtickets/StationPassageTestTicketV1.java b/src/main/java/org/uic/barcode/ticket/api/test/testtickets/StationPassageTestTicketV1.java deleted file mode 100644 index b0626f1..0000000 --- a/src/main/java/org/uic/barcode/ticket/api/test/testtickets/StationPassageTestTicketV1.java +++ /dev/null @@ -1,183 +0,0 @@ -package org.uic.barcode.ticket.api.test.testtickets; - -import org.uic.barcode.asn1.datatypesimpl.SequenceOfStringUTF8; -import org.uic.barcode.ticket.api.asn.omv1.CardReferenceType; -import org.uic.barcode.ticket.api.asn.omv1.ControlData; -import org.uic.barcode.ticket.api.asn.omv1.CustomerStatusType; -import org.uic.barcode.ticket.api.asn.omv1.DocumentData; -import org.uic.barcode.ticket.api.asn.omv1.ExtensionData; -import org.uic.barcode.ticket.api.asn.omv1.IssuingData; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCardReferenceType; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCustomerStatusType; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfDocumentData; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfExtensionData; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTicketLinkType; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTravelerType; -import org.uic.barcode.ticket.api.asn.omv1.StationPassageData; -import org.uic.barcode.ticket.api.asn.omv1.TicketDetailData; -import org.uic.barcode.ticket.api.asn.omv1.TicketLinkType; -import org.uic.barcode.ticket.api.asn.omv1.TravelerData; -import org.uic.barcode.ticket.api.asn.omv1.TravelerType; -import org.uic.barcode.ticket.api.asn.omv1.UicRailTicketData; - -public class StationPassageTestTicketV1 { - - - public static UicRailTicketData getUicTestTicket() { - UicRailTicketData ticket = new UicRailTicketData(); - populateTicket(ticket); - return ticket; - } - - - - private static void populateTicket(UicRailTicketData ticket) { - - ticket.setControlDetail(new ControlData()); - populate(ticket.getControlDetail()); - - - ticket.setIssuingDetail(new IssuingData()); - populateIssuingData(ticket.getIssuingDetail()); - - TravelerData td = new TravelerData(); - populateTravelerData(td); - ticket.setTravelerDetail(td); - - SequenceOfDocumentData ds = new SequenceOfDocumentData(); - - - //StationPassage - DocumentData do2 = new DocumentData(); - addStationPassage(do2); - ds.add(do2); - - ticket.setTransportDocument(ds); - - SequenceOfExtensionData ed = new SequenceOfExtensionData(); - populateExtensionSequence(ed); - ticket.setExtension(ed); - - } - - /* - ticket stationPassage : { - productName "passage" - ,stationNameUTF8 { "Amsterdam" } - ,validFromDay 0 - ,numberOfDaysValid 123 - } - */ - private static void addStationPassage(DocumentData dd) { - TicketDetailData tdd = new TicketDetailData(); - StationPassageData sp = new StationPassageData(); - sp.setProductName("passage"); - sp.setValidFromDay(5L); - sp.setValidFromTime(0L); - sp.setValidUntilDay(5L); - sp.setValidUntilTime(1000L); - sp.setNumberOfDaysValid(5L); - SequenceOfStringUTF8 ss = new SequenceOfStringUTF8(); - ss.add("Amsterdam"); - sp.setStationNameUTF8(ss); - tdd.setStationPassage(sp); - dd.setTicket(tdd); - } - - - private static void populateTravelerData(TravelerData td) { - td.setGroupName("myGroup"); - SequenceOfTravelerType trs = new SequenceOfTravelerType(); - TravelerType tr = new TravelerType(); - tr.setIdCard("12345"); - tr.setFirstName("John"); - tr.setSecondName("Dow"); - tr.setTicketHolder(true); - SequenceOfCustomerStatusType ts = new SequenceOfCustomerStatusType(); - CustomerStatusType cst = new CustomerStatusType(); - cst.setCustomerStatusDescr("senior"); - ts.add(cst); - tr.setStatus(ts); - trs.add(tr); - td.setTraveler(trs); - } - - private static void populateIssuingData(IssuingData issuingDetail) { - issuingDetail.setIssuingYear(2018L); - issuingDetail.setIssuingDay(1L); - issuingDetail.setIssuerPNR("issuerTestPNR"); - issuingDetail.setSpecimen(true); - issuingDetail.setSecurePaperTicket(false); - issuingDetail.setActivated(true); - issuingDetail.setIssuedOnLine(12L); - } - - private static void populateExtensionSequence(SequenceOfExtensionData ed) { - ExtensionData ed1 = new ExtensionData(); - ed1.setExtensionId("1"); - byte[] ba1 = { (byte) 0x82, (byte) 0xDA }; - ed1.setExtensionData(ba1); - ExtensionData ed2 = new ExtensionData(); - ed2.setExtensionId("2"); - byte[] ba2 = { (byte) 0x83, (byte) 0xDA }; - ed2.setExtensionData(ba2); - ed.add(ed1); - ed.add(ed2); - } - - /* - ,controlDetail { - identificationByCardReference { - { trailingCardIdNum 100 } - } - ,identificationByIdCard FALSE - ,identificationByPassportId FALSE - ,passportValidationRequired FALSE - ,onlineValidationRequired FALSE - ,ageCheckRequired FALSE - ,reductionCardCheckRequired FALSE - ,infoText "cd" - ,includedTickets { - { productOwnerIA5 "test" } - } - } - */ - private static void populate(ControlData controlDetail) { - controlDetail.infoText = "cd"; - controlDetail.setAgeCheckRequired(false); - controlDetail.setIdentificationByIdCard(false); - controlDetail.setIdentificationByPassportId(false); - controlDetail.setOnlineValidationRequired(false); - controlDetail.setPassportValidationRequired(false); - controlDetail.setReductionCardCheckRequired(false); - controlDetail.setIdentificationByCardReference(new SequenceOfCardReferenceType()); - controlDetail.getIdentificationByCardReference().add(populateCardRefrence()); - SequenceOfTicketLinkType sit = new SequenceOfTicketLinkType(); - populateLinkedTickets(sit); - controlDetail.setIncludedTickets(sit); - } - - - /* - * - */ - private static void populateLinkedTickets(SequenceOfTicketLinkType sequenceOfTicketLinkType) { - TicketLinkType tlt = new TicketLinkType(); - tlt.productOwnerIA5="test"; - sequenceOfTicketLinkType.add(tlt); - } - - /* - { - trailingCardIdNum 100 - } - */ - private static CardReferenceType populateCardRefrence() { - CardReferenceType cr = new CardReferenceType(); - cr.setTrailingCardIdNum(100L); - return cr; - } - - - -} diff --git a/src/main/java/org/uic/barcode/ticket/api/test/testtickets/StationPassageTestTicketV2.java b/src/main/java/org/uic/barcode/ticket/api/test/testtickets/StationPassageTestTicketV2.java deleted file mode 100644 index c551293..0000000 --- a/src/main/java/org/uic/barcode/ticket/api/test/testtickets/StationPassageTestTicketV2.java +++ /dev/null @@ -1,183 +0,0 @@ -package org.uic.barcode.ticket.api.test.testtickets; - -import org.uic.barcode.asn1.datatypesimpl.SequenceOfStringUTF8; -import org.uic.barcode.ticket.api.asn.omv2.CardReferenceType; -import org.uic.barcode.ticket.api.asn.omv2.ControlData; -import org.uic.barcode.ticket.api.asn.omv2.CustomerStatusType; -import org.uic.barcode.ticket.api.asn.omv2.DocumentData; -import org.uic.barcode.ticket.api.asn.omv2.ExtensionData; -import org.uic.barcode.ticket.api.asn.omv2.IssuingData; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfCardReferenceType; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfCustomerStatusType; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfDocumentData; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfExtensionData; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfTicketLinkType; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfTravelerType; -import org.uic.barcode.ticket.api.asn.omv2.StationPassageData; -import org.uic.barcode.ticket.api.asn.omv2.TicketDetailData; -import org.uic.barcode.ticket.api.asn.omv2.TicketLinkType; -import org.uic.barcode.ticket.api.asn.omv2.TravelerData; -import org.uic.barcode.ticket.api.asn.omv2.TravelerType; -import org.uic.barcode.ticket.api.asn.omv2.UicRailTicketData; - -public class StationPassageTestTicketV2 { - - - public static UicRailTicketData getUicTestTicket() { - UicRailTicketData ticket = new UicRailTicketData(); - populateTicket(ticket); - return ticket; - } - - - - private static void populateTicket(UicRailTicketData ticket) { - - ticket.setControlDetail(new ControlData()); - populate(ticket.getControlDetail()); - - - ticket.setIssuingDetail(new IssuingData()); - populateIssuingData(ticket.getIssuingDetail()); - - TravelerData td = new TravelerData(); - populateTravelerData(td); - ticket.setTravelerDetail(td); - - SequenceOfDocumentData ds = new SequenceOfDocumentData(); - - - //StationPassage - DocumentData do2 = new DocumentData(); - addStationPassage(do2); - ds.add(do2); - - ticket.setTransportDocument(ds); - - SequenceOfExtensionData ed = new SequenceOfExtensionData(); - populateExtensionSequence(ed); - ticket.setExtension(ed); - - } - - /* - ticket stationPassage : { - productName "passage" - ,stationNameUTF8 { "Amsterdam" } - ,validFromDay 0 - ,numberOfDaysValid 123 - } - */ - private static void addStationPassage(DocumentData dd) { - TicketDetailData tdd = new TicketDetailData(); - StationPassageData sp = new StationPassageData(); - sp.setProductName("passage"); - sp.setValidFromDay(5L); - sp.setValidFromTime(0L); - sp.setValidUntilDay(5L); - sp.setValidUntilTime(1000L); - sp.setNumberOfDaysValid(5L); - SequenceOfStringUTF8 ss = new SequenceOfStringUTF8(); - ss.add("Amsterdam"); - sp.setStationNameUTF8(ss); - tdd.setStationPassage(sp); - dd.setTicket(tdd); - } - - - private static void populateTravelerData(TravelerData td) { - td.setGroupName("myGroup"); - SequenceOfTravelerType trs = new SequenceOfTravelerType(); - TravelerType tr = new TravelerType(); - tr.setIdCard("12345"); - tr.setFirstName("John"); - tr.setSecondName("Dow"); - tr.setTicketHolder(true); - SequenceOfCustomerStatusType ts = new SequenceOfCustomerStatusType(); - CustomerStatusType cst = new CustomerStatusType(); - cst.setCustomerStatusDescr("senior"); - ts.add(cst); - tr.setStatus(ts); - trs.add(tr); - td.setTraveler(trs); - } - - private static void populateIssuingData(IssuingData issuingDetail) { - issuingDetail.setIssuingYear(2018L); - issuingDetail.setIssuingDay(1L); - issuingDetail.setIssuerPNR("issuerTestPNR"); - issuingDetail.setSpecimen(true); - issuingDetail.setSecurePaperTicket(false); - issuingDetail.setActivated(true); - issuingDetail.setIssuedOnLine(12L); - } - - private static void populateExtensionSequence(SequenceOfExtensionData ed) { - ExtensionData ed1 = new ExtensionData(); - ed1.setExtensionId("1"); - byte[] ba1 = { (byte) 0x82, (byte) 0xDA }; - ed1.setExtensionData(ba1); - ExtensionData ed2 = new ExtensionData(); - ed2.setExtensionId("2"); - byte[] ba2 = { (byte) 0x83, (byte) 0xDA }; - ed2.setExtensionData(ba2); - ed.add(ed1); - ed.add(ed2); - } - - /* - ,controlDetail { - identificationByCardReference { - { trailingCardIdNum 100 } - } - ,identificationByIdCard FALSE - ,identificationByPassportId FALSE - ,passportValidationRequired FALSE - ,onlineValidationRequired FALSE - ,ageCheckRequired FALSE - ,reductionCardCheckRequired FALSE - ,infoText "cd" - ,includedTickets { - { productOwnerIA5 "test" } - } - } - */ - private static void populate(ControlData controlDetail) { - controlDetail.infoText = "cd"; - controlDetail.setAgeCheckRequired(false); - controlDetail.setIdentificationByIdCard(false); - controlDetail.setIdentificationByPassportId(false); - controlDetail.setOnlineValidationRequired(false); - controlDetail.setPassportValidationRequired(false); - controlDetail.setReductionCardCheckRequired(false); - controlDetail.setIdentificationByCardReference(new SequenceOfCardReferenceType()); - controlDetail.getIdentificationByCardReference().add(populateCardRefrence()); - SequenceOfTicketLinkType sit = new SequenceOfTicketLinkType(); - populateLinkedTickets(sit); - controlDetail.setIncludedTickets(sit); - } - - - /* - * - */ - private static void populateLinkedTickets(SequenceOfTicketLinkType sequenceOfTicketLinkType) { - TicketLinkType tlt = new TicketLinkType(); - tlt.productOwnerIA5="test"; - sequenceOfTicketLinkType.add(tlt); - } - - /* - { - trailingCardIdNum 100 - } - */ - private static CardReferenceType populateCardRefrence() { - CardReferenceType cr = new CardReferenceType(); - cr.setTrailingCardIdNum(100L); - return cr; - } - - - -} diff --git a/src/main/java/org/uic/barcode/ticket/api/test/testtickets/VoucherTestTicketV1.java b/src/main/java/org/uic/barcode/ticket/api/test/testtickets/VoucherTestTicketV1.java deleted file mode 100644 index b3c2a76..0000000 --- a/src/main/java/org/uic/barcode/ticket/api/test/testtickets/VoucherTestTicketV1.java +++ /dev/null @@ -1,145 +0,0 @@ -package org.uic.barcode.ticket.api.test.testtickets; - -import org.uic.barcode.ticket.api.asn.omv1.CardReferenceType; -import org.uic.barcode.ticket.api.asn.omv1.ControlData; -import org.uic.barcode.ticket.api.asn.omv1.CustomerStatusType; -import org.uic.barcode.ticket.api.asn.omv1.DocumentData; -import org.uic.barcode.ticket.api.asn.omv1.ExtensionData; -import org.uic.barcode.ticket.api.asn.omv1.IssuingData; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCardReferenceType; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCustomerStatusType; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfDocumentData; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfExtensionData; -import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTravelerType; -import org.uic.barcode.ticket.api.asn.omv1.TicketDetailData; -import org.uic.barcode.ticket.api.asn.omv1.TravelerData; -import org.uic.barcode.ticket.api.asn.omv1.TravelerType; -import org.uic.barcode.ticket.api.asn.omv1.UicRailTicketData; -import org.uic.barcode.ticket.api.asn.omv1.VoucherData; - - public class VoucherTestTicketV1 { - - public static UicRailTicketData getUicTestTicket() { - UicRailTicketData ticket = new UicRailTicketData(); - populateTicket(ticket); - return ticket; - } - - - - private static void populateTicket(UicRailTicketData ticket) { - - ticket.setControlDetail(new ControlData()); - populate(ticket.getControlDetail()); - - - ticket.setIssuingDetail(new IssuingData()); - populateIssuingData(ticket.getIssuingDetail()); - - TravelerData td = new TravelerData(); - populateTravelerData(td); - ticket.setTravelerDetail(td); - - SequenceOfDocumentData ds = new SequenceOfDocumentData(); - - - //FipTicket - DocumentData do1 = new DocumentData(); - addTicket(do1); - ds.add(do1); - - - ticket.setTransportDocument(ds); - - SequenceOfExtensionData ed = new SequenceOfExtensionData(); - populateExtensionSequence(ed); - ticket.setExtension(ed); - - } - - - //issue date: 04-03-2021 12:30 UTC - private static void populateIssuingData(IssuingData issuingDetail) { - issuingDetail.setIssuingYear(2021L); - issuingDetail.setIssuingTime(750L); - issuingDetail.setIssuingDay(63L); - issuingDetail.setIssuerPNR("issuerTestPNR"); - issuingDetail.setSpecimen(true); - issuingDetail.setSecurePaperTicket(false); - issuingDetail.setActivated(true); - issuingDetail.setIssuedOnLine(12L); - } - - private static void addTicket(DocumentData dd) { - - TicketDetailData tdd = new TicketDetailData(); - VoucherData ticket = new VoucherData(); - ticket.setInfoText("coffee voucher"); - ticket.setValidFromYear(2022L); - ticket.setValidFromDay(01L); - ticket.setValidUntilYear(2022L); - ticket.setValidUntilDay(01L); - ticket.setReferenceIA5("ACHE12345"); - ticket.setProductOwnerIA5("COFFEEMACHINE"); - ticket.setValue(500L); - tdd.setVoucher(ticket); - dd.setTicket(tdd); - } - - - - private static void populateTravelerData(TravelerData td) { - SequenceOfTravelerType trs = new SequenceOfTravelerType(); - TravelerType tr = new TravelerType(); - tr.setIdCard("12345"); - tr.setFirstName("John"); - tr.setSecondName("Dow"); - tr.setTicketHolder(true); - SequenceOfCustomerStatusType ts = new SequenceOfCustomerStatusType(); - CustomerStatusType cst = new CustomerStatusType(); - cst.setCustomerStatusDescr("employee"); - ts.add(cst); - tr.setStatus(ts); - trs.add(tr); - td.setTraveler(trs); - } - - - - - - private static void populateExtensionSequence(SequenceOfExtensionData ed) { - ExtensionData ed1 = new ExtensionData(); - ed1.setExtensionId("1"); - byte[] ba1 = { (byte) 0x82, (byte) 0xDA }; - ed1.setExtensionData(ba1); - ExtensionData ed2 = new ExtensionData(); - ed2.setExtensionId("2"); - byte[] ba2 = { (byte) 0x83, (byte) 0xDA }; - ed2.setExtensionData(ba2); - ed.add(ed1); - ed.add(ed2); - } - - private static void populate(ControlData controlDetail) { - controlDetail.infoText = "cd"; - controlDetail.setAgeCheckRequired(false); - controlDetail.setIdentificationByIdCard(false); - controlDetail.setIdentificationByPassportId(false); - controlDetail.setOnlineValidationRequired(false); - controlDetail.setPassportValidationRequired(false); - controlDetail.setReductionCardCheckRequired(false); - controlDetail.setIdentificationByCardReference(new SequenceOfCardReferenceType()); - controlDetail.getIdentificationByCardReference().add(populateCardRefrence()); - } - - - private static CardReferenceType populateCardRefrence() { - CardReferenceType cr = new CardReferenceType(); - cr.setTrailingCardIdNum(100L); - return cr; - } - - - - } diff --git a/src/main/java/org/uic/barcode/ticket/api/test/testtickets/VoucherTestTicketV2.java b/src/main/java/org/uic/barcode/ticket/api/test/testtickets/VoucherTestTicketV2.java deleted file mode 100644 index e7844d6..0000000 --- a/src/main/java/org/uic/barcode/ticket/api/test/testtickets/VoucherTestTicketV2.java +++ /dev/null @@ -1,145 +0,0 @@ -package org.uic.barcode.ticket.api.test.testtickets; - -import org.uic.barcode.ticket.api.asn.omv2.CardReferenceType; -import org.uic.barcode.ticket.api.asn.omv2.ControlData; -import org.uic.barcode.ticket.api.asn.omv2.CustomerStatusType; -import org.uic.barcode.ticket.api.asn.omv2.DocumentData; -import org.uic.barcode.ticket.api.asn.omv2.ExtensionData; -import org.uic.barcode.ticket.api.asn.omv2.IssuingData; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfCardReferenceType; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfCustomerStatusType; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfDocumentData; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfExtensionData; -import org.uic.barcode.ticket.api.asn.omv2.SequenceOfTravelerType; -import org.uic.barcode.ticket.api.asn.omv2.TicketDetailData; -import org.uic.barcode.ticket.api.asn.omv2.TravelerData; -import org.uic.barcode.ticket.api.asn.omv2.TravelerType; -import org.uic.barcode.ticket.api.asn.omv2.UicRailTicketData; -import org.uic.barcode.ticket.api.asn.omv2.VoucherData; - - public class VoucherTestTicketV2 { - - public static UicRailTicketData getUicTestTicket() { - UicRailTicketData ticket = new UicRailTicketData(); - populateTicket(ticket); - return ticket; - } - - - - private static void populateTicket(UicRailTicketData ticket) { - - ticket.setControlDetail(new ControlData()); - populate(ticket.getControlDetail()); - - - ticket.setIssuingDetail(new IssuingData()); - populateIssuingData(ticket.getIssuingDetail()); - - TravelerData td = new TravelerData(); - populateTravelerData(td); - ticket.setTravelerDetail(td); - - SequenceOfDocumentData ds = new SequenceOfDocumentData(); - - - //FipTicket - DocumentData do1 = new DocumentData(); - addTicket(do1); - ds.add(do1); - - - ticket.setTransportDocument(ds); - - SequenceOfExtensionData ed = new SequenceOfExtensionData(); - populateExtensionSequence(ed); - ticket.setExtension(ed); - - } - - - //issue date: 04-03-2021 12:30 UTC - private static void populateIssuingData(IssuingData issuingDetail) { - issuingDetail.setIssuingYear(2021L); - issuingDetail.setIssuingTime(750L); - issuingDetail.setIssuingDay(63L); - issuingDetail.setIssuerPNR("issuerTestPNR"); - issuingDetail.setSpecimen(true); - issuingDetail.setSecurePaperTicket(false); - issuingDetail.setActivated(true); - issuingDetail.setIssuedOnLine(12L); - } - - private static void addTicket(DocumentData dd) { - - TicketDetailData tdd = new TicketDetailData(); - VoucherData ticket = new VoucherData(); - ticket.setInfoText("coffee voucher"); - ticket.setValidFromYear(2022L); - ticket.setValidFromDay(01L); - ticket.setValidUntilYear(2022L); - ticket.setValidUntilDay(01L); - ticket.setReferenceIA5("ACHE12345"); - ticket.setProductOwnerIA5("COFFEEMACHINE"); - ticket.setValue(500L); - tdd.setVoucher(ticket); - dd.setTicket(tdd); - } - - - - private static void populateTravelerData(TravelerData td) { - SequenceOfTravelerType trs = new SequenceOfTravelerType(); - TravelerType tr = new TravelerType(); - tr.setIdCard("12345"); - tr.setFirstName("John"); - tr.setSecondName("Dow"); - tr.setTicketHolder(true); - SequenceOfCustomerStatusType ts = new SequenceOfCustomerStatusType(); - CustomerStatusType cst = new CustomerStatusType(); - cst.setCustomerStatusDescr("employee"); - ts.add(cst); - tr.setStatus(ts); - trs.add(tr); - td.setTraveler(trs); - } - - - - - - private static void populateExtensionSequence(SequenceOfExtensionData ed) { - ExtensionData ed1 = new ExtensionData(); - ed1.setExtensionId("1"); - byte[] ba1 = { (byte) 0x82, (byte) 0xDA }; - ed1.setExtensionData(ba1); - ExtensionData ed2 = new ExtensionData(); - ed2.setExtensionId("2"); - byte[] ba2 = { (byte) 0x83, (byte) 0xDA }; - ed2.setExtensionData(ba2); - ed.add(ed1); - ed.add(ed2); - } - - private static void populate(ControlData controlDetail) { - controlDetail.infoText = "cd"; - controlDetail.setAgeCheckRequired(false); - controlDetail.setIdentificationByIdCard(false); - controlDetail.setIdentificationByPassportId(false); - controlDetail.setOnlineValidationRequired(false); - controlDetail.setPassportValidationRequired(false); - controlDetail.setReductionCardCheckRequired(false); - controlDetail.setIdentificationByCardReference(new SequenceOfCardReferenceType()); - controlDetail.getIdentificationByCardReference().add(populateCardRefrence()); - } - - - private static CardReferenceType populateCardRefrence() { - CardReferenceType cr = new CardReferenceType(); - cr.setTrailingCardIdNum(100L); - return cr; - } - - - - } diff --git a/src/test/java/org/uic/barcode/ticket/api/test/testtickets/AsnLevelPassTimeZoneTestTicketV1.java b/src/test/java/org/uic/barcode/ticket/api/test/testtickets/AsnLevelPassTimeZoneTestTicketV1.java new file mode 100644 index 0000000..5408638 --- /dev/null +++ b/src/test/java/org/uic/barcode/ticket/api/test/testtickets/AsnLevelPassTimeZoneTestTicketV1.java @@ -0,0 +1,578 @@ +package org.uic.barcode.ticket.api.test.testtickets; + +import org.uic.barcode.asn1.datatypesimpl.SequenceOfStringUTF8; +import org.uic.barcode.ticket.api.asn.omv1.CardReferenceType; +import org.uic.barcode.ticket.api.asn.omv1.ControlData; +import org.uic.barcode.ticket.api.asn.omv1.CustomerStatusType; +import org.uic.barcode.ticket.api.asn.omv1.DocumentData; +import org.uic.barcode.ticket.api.asn.omv1.ExtensionData; +import org.uic.barcode.ticket.api.asn.omv1.IssuingData; +import org.uic.barcode.ticket.api.asn.omv1.LinkMode; +import org.uic.barcode.ticket.api.asn.omv1.OpenTicketData; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCardReferenceType; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCustomerStatusType; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfDocumentData; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfExtensionData; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTicketLinkType; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTravelerType; +import org.uic.barcode.ticket.api.asn.omv1.StationPassageData; +import org.uic.barcode.ticket.api.asn.omv1.TicketDetailData; +import org.uic.barcode.ticket.api.asn.omv1.TicketLinkType; +import org.uic.barcode.ticket.api.asn.omv1.TicketType; +import org.uic.barcode.ticket.api.asn.omv1.TokenType; +import org.uic.barcode.ticket.api.asn.omv1.TravelClassType; +import org.uic.barcode.ticket.api.asn.omv1.TravelerData; +import org.uic.barcode.ticket.api.asn.omv1.TravelerType; +import org.uic.barcode.ticket.api.asn.omv1.UicRailTicketData; + + + public class AsnLevelPassTimeZoneTestTicketV1 { + + public static UicRailTicketData getUicTestTicket() { + UicRailTicketData ticket = new UicRailTicketData(); + populateTicket(ticket); + return ticket; + } + + /* + value UicRailTicketData ::= { + issuingDetail { + issuingYear 2018 + issuingDay 1 + specimen TRUE, + securePaperTicket FALSE, + activated TRUE, + issuerPNR "issuerTestPNR", + issuedOnLine 12 + } + ,travelerDetail{ + traveler { + { + firstName "John" + ,secondName "Dow" + ,idCard "12345" + ,ticketHolder TRUE + ,status {{customerStatusDescr "senior" }} + } + } + ,groupName "myGroup" + } + ,transportDocument { + { + token {tokenProviderIA5 "VDV", token '82DA'H } + ,ticket openTicket : { + returnIncluded FALSE + ,infoText "openTicketInfo" + ,classCode "second" + } + } + ,{ + ticket stationPassage : { + productName "passage" + ,stationNameUTF8 { "Amsterdam" } + ,validFromDay 0 + ,numberOfDaysValid 123 + } + } + } + ,controlDetail { + identificationByCardReference { + { trailingCardIdNum 100 } + } + ,identificationByIdCard FALSE + ,identificationByPassportId FALSE + ,passportValidationRequired FALSE + ,onlineValidationRequired FALSE + ,ageCheckRequired FALSE + ,reductionCardCheckRequired FALSE + ,infoText "cd" + ,includedTickets { + { referenceIA5 "UED12435867" + ,issuerName "OEBB" + ,issuerPNR "PNR" + ,productOwnerIA5 "test" + ,ticketType pass + ,linkMode onlyValidInCombination + + } + } + } + ,extension { + { extensionId "1", extensionData '82DA'H } + ,{ extensionId "2", extensionData '83DA'H } + } + } + */ + + /* + * asn.1 version 1.3 encoding: +Encoding to the file 'data.uper' using PER UNALIGNED encoding rule... +UicRailTicketData SEQUENCE [root fieldcount (not encoded) = 5] + issuingDetail IssuingData SEQUENCE [root fieldcount (not encoded) = 7] + issuingYear INTEGER [length (not encoded) = 1.0] + 2018 + issuingDay INTEGER [length (not encoded) = 1.1] + 1 + specimen BOOLEAN [length (not encoded) = 0.1] + TRUE + securePaperTicket BOOLEAN [length (not encoded) = 0.1] + FALSE + activated BOOLEAN [length (not encoded) = 0.1] + TRUE + issuerPNR IA5String [length = 13.0] + "issuerTestPNR" + issuedOnLine INTEGER [length = 1.0] + 12 + travelerDetail TravelerData SEQUENCE [root fieldcount (not encoded) = 2] + traveler SEQUENCE OF [count = 1] + TravelerType SEQUENCE [root fieldcount (not encoded) = 5] + firstName UTF8String [length = 4.0] + 0x4a6f686e + secondName UTF8String [length = 3.0] + 0x446f77 + idCard IA5String [length = 5.0] + "12345" + ticketHolder BOOLEAN [length (not encoded) = 0.1] + TRUE + status SEQUENCE OF [count = 1] + CustomerStatusType SEQUENCE [fieldcount (not encoded) = 1] + customerStatusDescr IA5String [length = 6.0] + "senior" + groupName UTF8String [length = 7.0] + 0x6d7947726f7570 + transportDocument SEQUENCE OF [count = 2] + DocumentData SEQUENCE [root fieldcount (not encoded) = 2] + token TokenType SEQUENCE [fieldcount (not encoded) = 2] + tokenProviderIA5 IA5String [length = 3.0] + "VDV" + token OCTET STRING [length = 2.0] + 0x82da + ticket CHOICE [index = 2] + openTicket OpenTicketData SEQUENCE [root fieldcount (not encoded) = 2] + returnIncluded BOOLEAN [length (not encoded) = 0.1] + FALSE + infoText UTF8String [length = 14.0] + 0x6f70656e5469636b6574496e666f + DocumentData SEQUENCE [root fieldcount (not encoded) = 1] + ticket CHOICE [index = 9] + stationPassage StationPassageData SEQUENCE [root fieldcount (not encoded) = 4] + productName UTF8String [length = 7.0] + 0x70617373616765 + stationNameUTF8 SEQUENCE OF [count = 1] + UTF8String [length = 9.0] + 0x416d7374657264616d + validFromDay INTEGER [length (not encoded) = 1.2] + 0 + numberOfDaysValid INTEGER [length = 1.0] + 123 + controlDetail ControlData SEQUENCE [root fieldcount (not encoded) = 9] + identificationByCardReference SEQUENCE OF [count = 1] + CardReferenceType SEQUENCE [root fieldcount (not encoded) = 1] + trailingCardIdNum INTEGER [length = 1.0] + 100 + identificationByIdCard BOOLEAN [length (not encoded) = 0.1] + FALSE + identificationByPassportId BOOLEAN [length (not encoded) = 0.1] + FALSE + passportValidationRequired BOOLEAN [length (not encoded) = 0.1] + FALSE + onlineValidationRequired BOOLEAN [length (not encoded) = 0.1] + FALSE + ageCheckRequired BOOLEAN [length (not encoded) = 0.1] + FALSE + reductionCardCheckRequired BOOLEAN [length (not encoded) = 0.1] + FALSE + infoText UTF8String [length = 2.0] + 0x6364 + includedTickets SEQUENCE OF [count = 1] + TicketLinkType SEQUENCE [root fieldcount (not encoded) = 6] + referenceIA5 IA5String [length = 11.0] + "UED12435867" + issuerName UTF8String [length = 4.0] + 0x4f454242 + issuerPNR IA5String [length = 3.0] + "PNR" + productOwnerIA5 IA5String [length = 4.0] + "test" + ticketType TicketType ENUMERATED [length (not encoded) = 0.2] + 1 + linkMode LinkMode ENUMERATED [length (not encoded) = 0.1] + 1 + extension SEQUENCE OF [count = 2] + ExtensionData SEQUENCE [fieldcount (not encoded) = 2] + extensionId IA5String [length = 1.0] + "1" + extensionData OCTET STRING [length = 2.0] + 0x82da + ExtensionData SEQUENCE [fieldcount (not encoded) = 2] + extensionId IA5String [length = 1.0] + "2" + extensionData OCTET STRING [length = 2.0] + 0x83da +Total encoded length = 154.3 +Encoded successfully in 155 bytes: +78022020 050DD3CF 9F5CBCAA 65E7D284 EA40218A 02D00082 2537B437 01A237BB +82B164CD A3580883 73CBBB4E FE40EDAF 28EE4DEE AE004A03 AD12B014 16D08000 +00000403 9BDC195B 951A58DA D95D125B 999BC480 88040EE0 C2E6E6C2 CECA0212 +82DAE6E8 CAE4C8C2 DA0080BD A6010040 2C800131 B200ADC2 EAC588C5 93466D5C +366E089E 8A848407 4275204E 9979F428 100B1028 2DA01640 507B40 + * + * + */ + + /* + * asn.1 version 2.0 encoding + * + Encoding to the file 'data.uper' using PER UNALIGNED encoding rule... +UicRailTicketData SEQUENCE [root fieldcount (not encoded) = 5] + issuingDetail IssuingData SEQUENCE [root fieldcount (not encoded) = 7] + issuingYear INTEGER [length (not encoded) = 1.0] + 2018 + issuingDay INTEGER [length (not encoded) = 1.1] + 1 + specimen BOOLEAN [length (not encoded) = 0.1] + TRUE + securePaperTicket BOOLEAN [length (not encoded) = 0.1] + FALSE + activated BOOLEAN [length (not encoded) = 0.1] + TRUE + issuerPNR IA5String [length = 13.0] + "issuerTestPNR" + issuedOnLine INTEGER [length = 1.0] + 12 + travelerDetail TravelerData SEQUENCE [root fieldcount (not encoded) = 2] + traveler SEQUENCE OF [count = 1] + TravelerType SEQUENCE [root fieldcount (not encoded) = 5] + firstName UTF8String [length = 4.0] + 0x4a6f686e + secondName UTF8String [length = 3.0] + 0x446f77 + idCard IA5String [length = 5.0] + "12345" + ticketHolder BOOLEAN [length (not encoded) = 0.1] + TRUE + status SEQUENCE OF [count = 1] + CustomerStatusType SEQUENCE [fieldcount (not encoded) = 1] + customerStatusDescr IA5String [length = 6.0] + "senior" + groupName UTF8String [length = 7.0] + 0x6d7947726f7570 + transportDocument SEQUENCE OF [count = 2] + DocumentData SEQUENCE [root fieldcount (not encoded) = 2] + token TokenType SEQUENCE [fieldcount (not encoded) = 2] + tokenProviderIA5 IA5String [length = 3.0] + "VDV" + token OCTET STRING [length = 2.0] + 0x82da + ticket CHOICE [index = 2] + openTicket OpenTicketData SEQUENCE [root fieldcount (not encoded) = 2] + returnIncluded BOOLEAN [length (not encoded) = 0.1] + FALSE + infoText UTF8String [length = 14.0] + 0x6f70656e5469636b6574496e666f + DocumentData SEQUENCE [root fieldcount (not encoded) = 1] + ticket CHOICE [index = 9] + stationPassage StationPassageData SEQUENCE [root fieldcount (not encoded) = 4] + productName UTF8String [length = 7.0] + 0x70617373616765 + stationNameUTF8 SEQUENCE OF [count = 1] + UTF8String [length = 9.0] + 0x416d7374657264616d + validFromDay INTEGER [length (not encoded) = 1.2] + 0 + numberOfDaysValid INTEGER [length = 1.0] + 123 + controlDetail ControlData SEQUENCE [root fieldcount (not encoded) = 9] + identificationByCardReference SEQUENCE OF [count = 1] + CardReferenceType SEQUENCE [root fieldcount (not encoded) = 1] + trailingCardIdNum INTEGER [length = 1.0] + 100 + identificationByIdCard BOOLEAN [length (not encoded) = 0.1] + FALSE + identificationByPassportId BOOLEAN [length (not encoded) = 0.1] + FALSE + passportValidationRequired BOOLEAN [length (not encoded) = 0.1] + FALSE + onlineValidationRequired BOOLEAN [length (not encoded) = 0.1] + FALSE + ageCheckRequired BOOLEAN [length (not encoded) = 0.1] + FALSE + reductionCardCheckRequired BOOLEAN [length (not encoded) = 0.1] + FALSE + infoText UTF8String [length = 2.0] + 0x6364 + includedTickets SEQUENCE OF [count = 1] + TicketLinkType SEQUENCE [root fieldcount (not encoded) = 6] + referenceIA5 IA5String [length = 11.0] + "UED12435867" + issuerName UTF8String [length = 4.0] + 0x4f454242 + issuerPNR IA5String [length = 3.0] + "PNR" + productOwnerIA5 IA5String [length = 4.0] + "test" + ticketType TicketType ENUMERATED [length (not encoded) = 0.2] + 1 + linkMode LinkMode ENUMERATED [length (not encoded) = 0.1] + 1 + extension SEQUENCE OF [count = 2] + ExtensionData SEQUENCE [fieldcount (not encoded) = 2] + extensionId IA5String [length = 1.0] + "1" + extensionData OCTET STRING [length = 2.0] + 0x82da + ExtensionData SEQUENCE [fieldcount (not encoded) = 2] + extensionId IA5String [length = 1.0] + "2" + extensionData OCTET STRING [length = 2.0] + 0x83da +Total encoded length = 154.6 +Encoded successfully in 155 bytes: +78022020 050DD3CF 9F5CBCAA 65E7D284 EA40218A 02D00041 129BDA1B 80D11BDD +C158B266 D1AC0441 B9E5DDA7 7F2076D7 947726F7 57002501 D689580A 0B684000 +00000200 737B832B 72A34B1B 5B2BA24B 73337890 110081DC 185CDCD8 59D94042 +505B5CDD 195C9918 5B401017 B4C02008 05900026 364015B8 5D58B118 B268CDAB +86CDC113 D1509080 E84EA409 D32F3E85 02016205 05B402C8 0A0F68 + * + * + * + */ + + public static String getEncodingV1Hex() { + return "78022020050DD3CF9F5CBCAA65E7D284EA40218A02D000822537B43701A237BB" + + "82B164CDA358088373CBBB4EFE40EDAF28EE4DEEAE004A03AD12B01416D08000" + + "000004039BDC195B951A58DAD95D125B999BC48088040EE0C2E6E6C2CECA0212" + + "82DAE6E8CAE4C8C2DA0080BDA60100402C800131B200ADC2EAC588C593466D5C" + + "366E089E8A8484074275204E9979F428100B10282DA01640507B40"; + } + + public static String getEncodingV2Hex() { + return "78022020050DD3CF9F5CBCAA65E7D284EA40218A02D00041129BDA1B80D11BDD" + + "C158B266D1AC0441B9E5DDA77F2076D7947726F757002501D689580A0B684000" + + "00000200737B832B72A34B1B5B2BA24B73337890110081DC185CDCD859D94042" + + "505B5CDD195C99185B401017B4C0200805900026364015B85D58B118B268CDAB" + + "86CDC113D1509080E84EA409D32F3E850201620505B402C80A0F68"; + } + + + private static void populateTicket(UicRailTicketData ticket) { + + ticket.setControlDetail(new ControlData()); + populate(ticket.getControlDetail()); + + + ticket.setIssuingDetail(new IssuingData()); + populateIssuingData(ticket.getIssuingDetail()); + + TravelerData td = new TravelerData(); + populateTravelerData(td); + ticket.setTravelerDetail(td); + + SequenceOfDocumentData ds = new SequenceOfDocumentData(); + + + //OpenTicket + DocumentData do1 = new DocumentData(); + addOpenTicketData(do1); + ds.add(do1); + + //StationPassage + DocumentData do2 = new DocumentData(); + addStationPassage(do2); + ds.add(do2); + + ticket.setTransportDocument(ds); + + SequenceOfExtensionData ed = new SequenceOfExtensionData(); + populateExtensionSequence(ed); + ticket.setExtension(ed); + + } + + /* + ticket stationPassage : { + productName "passage" + ,stationNameUTF8 { "Amsterdam" } + ,validFromDay 0 + ,numberOfDaysValid 123 + } + */ + private static void addStationPassage(DocumentData dd) { + TicketDetailData tdd = new TicketDetailData(); + StationPassageData sp = new StationPassageData(); + sp.setProductName("passage"); + sp.setValidFromDay(0L); + sp.setNumberOfDaysValid(123L); + SequenceOfStringUTF8 ss = new SequenceOfStringUTF8(); + ss.add("Amsterdam"); + sp.setStationNameUTF8(ss); + tdd.setStationPassage(sp); + dd.setTicket(tdd); + } + + /* + { + token {tokenProviderIA5 "VDV", token '82DA'H } + ,ticket openTicket : { + returnIncluded FALSE + infoText "openTicketInfo" + } + } + */ + + + + private static void addOpenTicketData(DocumentData dd) { + TokenType to = new TokenType(); + to.setTokenProviderIA5("VDV"); + byte[] ba = { (byte) 0x82, (byte) 0xDA }; + to.setToken(ba); + dd.setToken(to); + + TicketDetailData tdd = new TicketDetailData(); + OpenTicketData otd = new OpenTicketData(); + otd.setInfoText("openTicketInfo"); + otd.setClassCode(TravelClassType.first); + otd.setReturnIncluded(false); + tdd.setOpenTicket(otd); + dd.setTicket(tdd); + } + + + /* + ,travelerDetail{ + traveler { + { + firstName "John" + ,secondName "Dow" + ,idCard "12345" + ,ticketHolder TRUE + ,status {{customerStatusDescr "senior" }} + } + } + ,groupName "myGroup" + } + */ + + private static void populateTravelerData(TravelerData td) { + td.setGroupName("myGroup"); + SequenceOfTravelerType trs = new SequenceOfTravelerType(); + TravelerType tr = new TravelerType(); + tr.setIdCard("12345"); + tr.setFirstName("John"); + tr.setSecondName("Dow"); + tr.setTicketHolder(true); + SequenceOfCustomerStatusType ts = new SequenceOfCustomerStatusType(); + CustomerStatusType cst = new CustomerStatusType(); + cst.setCustomerStatusDescr("senior"); + ts.add(cst); + tr.setStatus(ts); + trs.add(tr); + td.setTraveler(trs); + } + + /* + ,issuingDetail { + issuingYear 2018 + issuingDay 1 + specimen TRUE, + securePaperTicket FALSE, + activated TRUE, + issuerPNR "issuerTestPNR", + issuedOnLine 12 + } + */ + private static void populateIssuingData(IssuingData issuingDetail) { + issuingDetail.setIssuingYear(2018L); + issuingDetail.setIssuingDay(1L); + issuingDetail.setIssuerPNR("issuerTestPNR"); + issuingDetail.setSpecimen(true); + issuingDetail.setSecurePaperTicket(false); + issuingDetail.setActivated(true); + issuingDetail.setIssuedOnLine(12L); + } + + /* + ,extension { + { extensionId "1", extensionData '82DA'H } + ,{ extensionId "2", extensionData '83DA'H } + } + */ + private static void populateExtensionSequence(SequenceOfExtensionData ed) { + ExtensionData ed1 = new ExtensionData(); + ed1.setExtensionId("1"); + byte[] ba1 = { (byte) 0x82, (byte) 0xDA }; + ed1.setExtensionData(ba1); + ExtensionData ed2 = new ExtensionData(); + ed2.setExtensionId("2"); + byte[] ba2 = { (byte) 0x83, (byte) 0xDA }; + ed2.setExtensionData(ba2); + ed.add(ed1); + ed.add(ed2); + } + + /* + ,controlDetail { + identificationByCardReference { + { trailingCardIdNum 100 } + } + ,identificationByIdCard FALSE + ,identificationByPassportId FALSE + ,passportValidationRequired FALSE + ,onlineValidationRequired FALSE + ,ageCheckRequired FALSE + ,reductionCardCheckRequired FALSE + ,infoText "cd" + ,includedTickets { + { productOwnerIA5 "test" + , + + + } + } + } + */ + private static void populate(ControlData controlDetail) { + controlDetail.infoText = "cd"; + controlDetail.setAgeCheckRequired(false); + controlDetail.setIdentificationByIdCard(false); + controlDetail.setIdentificationByPassportId(false); + controlDetail.setOnlineValidationRequired(false); + controlDetail.setPassportValidationRequired(false); + controlDetail.setReductionCardCheckRequired(false); + controlDetail.setIdentificationByCardReference(new SequenceOfCardReferenceType()); + controlDetail.getIdentificationByCardReference().add(populateCardRefrence()); + SequenceOfTicketLinkType sit = new SequenceOfTicketLinkType(); + populateLinkedTickets(sit); + controlDetail.setIncludedTickets(sit); + } + + + /* + * + */ + private static void populateLinkedTickets(SequenceOfTicketLinkType sequenceOfTicketLinkType) { + TicketLinkType tlt = new TicketLinkType(); + tlt.productOwnerIA5="test"; + tlt.setTicketType(TicketType.pass); + tlt.setIssuerPNR("PNR"); + tlt.setReferenceIA5("UED12435867"); + tlt.setLinkMode(LinkMode.onlyValidInCombination); + tlt.setIssuerName("OEBB"); + sequenceOfTicketLinkType.add(tlt); + } + + /* + { + trailingCardIdNum 100 + } + */ + private static CardReferenceType populateCardRefrence() { + CardReferenceType cr = new CardReferenceType(); + cr.setTrailingCardIdNum(100L); + return cr; + } + + + + } diff --git a/src/test/java/org/uic/barcode/ticket/api/test/testtickets/CustomerCardTestTicketV1.java b/src/test/java/org/uic/barcode/ticket/api/test/testtickets/CustomerCardTestTicketV1.java new file mode 100644 index 0000000..09faac8 --- /dev/null +++ b/src/test/java/org/uic/barcode/ticket/api/test/testtickets/CustomerCardTestTicketV1.java @@ -0,0 +1,175 @@ +package org.uic.barcode.ticket.api.test.testtickets; + +import org.uic.barcode.ticket.api.asn.omv1.CardReferenceType; +import org.uic.barcode.ticket.api.asn.omv1.ControlData; +import org.uic.barcode.ticket.api.asn.omv1.CustomerCardData; +import org.uic.barcode.ticket.api.asn.omv1.CustomerStatusType; +import org.uic.barcode.ticket.api.asn.omv1.DocumentData; +import org.uic.barcode.ticket.api.asn.omv1.ExtensionData; +import org.uic.barcode.ticket.api.asn.omv1.GenderType; +import org.uic.barcode.ticket.api.asn.omv1.IssuingData; +import org.uic.barcode.ticket.api.asn.omv1.LinkMode; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCardReferenceType; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCustomerStatusType; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfDocumentData; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfExtensionData; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTicketLinkType; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTravelerType; +import org.uic.barcode.ticket.api.asn.omv1.TicketDetailData; +import org.uic.barcode.ticket.api.asn.omv1.TicketLinkType; +import org.uic.barcode.ticket.api.asn.omv1.TicketType; +import org.uic.barcode.ticket.api.asn.omv1.TravelClassType; +import org.uic.barcode.ticket.api.asn.omv1.TravelerData; +import org.uic.barcode.ticket.api.asn.omv1.TravelerType; +import org.uic.barcode.ticket.api.asn.omv1.UicRailTicketData; + + public class CustomerCardTestTicketV1 { + + public static UicRailTicketData getUicTestTicket() { + UicRailTicketData ticket = new UicRailTicketData(); + populateTicket(ticket); + return ticket; + } + + + + private static void populateTicket(UicRailTicketData ticket) { + + ticket.setControlDetail(new ControlData()); + populate(ticket.getControlDetail()); + + + ticket.setIssuingDetail(new IssuingData()); + populateIssuingData(ticket.getIssuingDetail()); + + TravelerData td = new TravelerData(); + populateTravelerData(td); + ticket.setTravelerDetail(td); + + SequenceOfDocumentData ds = new SequenceOfDocumentData(); + + + //OpenTicket + DocumentData do1 = new DocumentData(); + addCustomerCard(do1); + ds.add(do1); + + + ticket.setTransportDocument(ds); + + SequenceOfExtensionData ed = new SequenceOfExtensionData(); + populateExtensionSequence(ed); + ticket.setExtension(ed); + + } + + + //issue date: 04-03-2021 12:30 UTC + private static void populateIssuingData(IssuingData issuingDetail) { + issuingDetail.setIssuingYear(2021L); + issuingDetail.setIssuingTime(750L); + issuingDetail.setIssuingDay(63L); + issuingDetail.setIssuerPNR("issuerTestPNR"); + issuingDetail.setSpecimen(true); + issuingDetail.setSecurePaperTicket(false); + issuingDetail.setActivated(true); + issuingDetail.setIssuedOnLine(12L); + } + + private static void addCustomerCard(DocumentData dd) { + + TicketDetailData tdd = new TicketDetailData(); + CustomerCardData card = new CustomerCardData(); + card.setCustomer(getTraveler()); + card.setClassCode(TravelClassType.first); + card.setValidFromYear(2021L); + card.setValidFromDay(10L); + card.setValidUntilYear(1L); + card.setValidUntilDay(10L); + card.setCardTypeDescr("RAILPLUS"); + tdd.setCustomerCard(card); + dd.setTicket(tdd); + } + + + + private static void populateTravelerData(TravelerData td) { + td.setGroupName("myGroup"); + SequenceOfTravelerType trs = new SequenceOfTravelerType(); + TravelerType tr = new TravelerType(); + tr.setIdCard("12345"); + tr.setFirstName("John"); + tr.setSecondName("Dow"); + tr.setTicketHolder(true); + SequenceOfCustomerStatusType ts = new SequenceOfCustomerStatusType(); + CustomerStatusType cst = new CustomerStatusType(); + cst.setCustomerStatusDescr("senior"); + ts.add(cst); + tr.setStatus(ts); + trs.add(tr); + td.setTraveler(trs); + } + + private static TravelerType getTraveler() { + TravelerType tr = new TravelerType(); + tr.setIdCard("12345"); + tr.setFirstName("John"); + tr.setSecondName("Dow"); + tr.setDayOfBirth(100L); + tr.setGender(GenderType.male); + tr.setIdCard("IEDZ235FT"); + return tr; + } + + + + + + private static void populateExtensionSequence(SequenceOfExtensionData ed) { + ExtensionData ed1 = new ExtensionData(); + ed1.setExtensionId("1"); + byte[] ba1 = { (byte) 0x82, (byte) 0xDA }; + ed1.setExtensionData(ba1); + ExtensionData ed2 = new ExtensionData(); + ed2.setExtensionId("2"); + byte[] ba2 = { (byte) 0x83, (byte) 0xDA }; + ed2.setExtensionData(ba2); + ed.add(ed1); + ed.add(ed2); + } + + private static void populate(ControlData controlDetail) { + controlDetail.infoText = "cd"; + controlDetail.setAgeCheckRequired(false); + controlDetail.setIdentificationByIdCard(false); + controlDetail.setIdentificationByPassportId(false); + controlDetail.setOnlineValidationRequired(false); + controlDetail.setPassportValidationRequired(false); + controlDetail.setReductionCardCheckRequired(false); + controlDetail.setIdentificationByCardReference(new SequenceOfCardReferenceType()); + controlDetail.getIdentificationByCardReference().add(populateCardRefrence()); + SequenceOfTicketLinkType sit = new SequenceOfTicketLinkType(); + populateLinkedTickets(sit); + controlDetail.setIncludedTickets(sit); + } + + private static void populateLinkedTickets(SequenceOfTicketLinkType sequenceOfTicketLinkType) { + TicketLinkType tlt = new TicketLinkType(); + tlt.productOwnerIA5="test"; + tlt.setTicketType(TicketType.pass); + tlt.setIssuerPNR("PNR"); + tlt.setReferenceIA5("UED12435867"); + tlt.setLinkMode(LinkMode.onlyValidInCombination); + tlt.setIssuerName("OEBB"); + sequenceOfTicketLinkType.add(tlt); + } + + private static CardReferenceType populateCardRefrence() { + CardReferenceType cr = new CardReferenceType(); + cr.setTrailingCardIdNum(100L); + return cr; + } + + + + } diff --git a/src/test/java/org/uic/barcode/ticket/api/test/testtickets/CustomerCardTestTicketV2.java b/src/test/java/org/uic/barcode/ticket/api/test/testtickets/CustomerCardTestTicketV2.java new file mode 100644 index 0000000..7f01b94 --- /dev/null +++ b/src/test/java/org/uic/barcode/ticket/api/test/testtickets/CustomerCardTestTicketV2.java @@ -0,0 +1,175 @@ +package org.uic.barcode.ticket.api.test.testtickets; + +import org.uic.barcode.ticket.api.asn.omv2.CardReferenceType; +import org.uic.barcode.ticket.api.asn.omv2.ControlData; +import org.uic.barcode.ticket.api.asn.omv2.CustomerCardData; +import org.uic.barcode.ticket.api.asn.omv2.CustomerStatusType; +import org.uic.barcode.ticket.api.asn.omv2.DocumentData; +import org.uic.barcode.ticket.api.asn.omv2.ExtensionData; +import org.uic.barcode.ticket.api.asn.omv2.GenderType; +import org.uic.barcode.ticket.api.asn.omv2.IssuingData; +import org.uic.barcode.ticket.api.asn.omv2.LinkMode; +import org.uic.barcode.ticket.api.asn.omv2.SequenceOfCardReferenceType; +import org.uic.barcode.ticket.api.asn.omv2.SequenceOfCustomerStatusType; +import org.uic.barcode.ticket.api.asn.omv2.SequenceOfDocumentData; +import org.uic.barcode.ticket.api.asn.omv2.SequenceOfExtensionData; +import org.uic.barcode.ticket.api.asn.omv2.SequenceOfTicketLinkType; +import org.uic.barcode.ticket.api.asn.omv2.SequenceOfTravelerType; +import org.uic.barcode.ticket.api.asn.omv2.TicketDetailData; +import org.uic.barcode.ticket.api.asn.omv2.TicketLinkType; +import org.uic.barcode.ticket.api.asn.omv2.TicketType; +import org.uic.barcode.ticket.api.asn.omv2.TravelClassType; +import org.uic.barcode.ticket.api.asn.omv2.TravelerData; +import org.uic.barcode.ticket.api.asn.omv2.TravelerType; +import org.uic.barcode.ticket.api.asn.omv2.UicRailTicketData; + + public class CustomerCardTestTicketV2 { + + public static UicRailTicketData getUicTestTicket() { + UicRailTicketData ticket = new UicRailTicketData(); + populateTicket(ticket); + return ticket; + } + + + + private static void populateTicket(UicRailTicketData ticket) { + + ticket.setControlDetail(new ControlData()); + populate(ticket.getControlDetail()); + + + ticket.setIssuingDetail(new IssuingData()); + populateIssuingData(ticket.getIssuingDetail()); + + TravelerData td = new TravelerData(); + populateTravelerData(td); + ticket.setTravelerDetail(td); + + SequenceOfDocumentData ds = new SequenceOfDocumentData(); + + + //OpenTicket + DocumentData do1 = new DocumentData(); + addCustomerCard(do1); + ds.add(do1); + + + ticket.setTransportDocument(ds); + + SequenceOfExtensionData ed = new SequenceOfExtensionData(); + populateExtensionSequence(ed); + ticket.setExtension(ed); + + } + + + //issue date: 04-03-2021 12:30 UTC + private static void populateIssuingData(IssuingData issuingDetail) { + issuingDetail.setIssuingYear(2021L); + issuingDetail.setIssuingTime(750L); + issuingDetail.setIssuingDay(63L); + issuingDetail.setIssuerPNR("issuerTestPNR"); + issuingDetail.setSpecimen(true); + issuingDetail.setSecurePaperTicket(false); + issuingDetail.setActivated(true); + issuingDetail.setIssuedOnLine(12L); + } + + private static void addCustomerCard(DocumentData dd) { + + TicketDetailData tdd = new TicketDetailData(); + CustomerCardData card = new CustomerCardData(); + card.setCustomer(getTraveler()); + card.setClassCode(TravelClassType.first); + card.setValidFromYear(2021L); + card.setValidFromDay(10L); + card.setValidUntilYear(1L); + card.setValidUntilDay(10L); + card.setCardTypeDescr("RAILPLUS"); + tdd.setCustomerCard(card); + dd.setTicket(tdd); + } + + + + private static void populateTravelerData(TravelerData td) { + td.setGroupName("myGroup"); + SequenceOfTravelerType trs = new SequenceOfTravelerType(); + TravelerType tr = new TravelerType(); + tr.setIdCard("12345"); + tr.setFirstName("John"); + tr.setSecondName("Dow"); + tr.setTicketHolder(true); + SequenceOfCustomerStatusType ts = new SequenceOfCustomerStatusType(); + CustomerStatusType cst = new CustomerStatusType(); + cst.setCustomerStatusDescr("senior"); + ts.add(cst); + tr.setStatus(ts); + trs.add(tr); + td.setTraveler(trs); + } + + private static TravelerType getTraveler() { + TravelerType tr = new TravelerType(); + tr.setIdCard("12345"); + tr.setFirstName("John"); + tr.setSecondName("Dow"); + tr.setDayOfBirth(100L); + tr.setGender(GenderType.male); + tr.setIdCard("IEDZ235FT"); + return tr; + } + + + + + + private static void populateExtensionSequence(SequenceOfExtensionData ed) { + ExtensionData ed1 = new ExtensionData(); + ed1.setExtensionId("1"); + byte[] ba1 = { (byte) 0x82, (byte) 0xDA }; + ed1.setExtensionData(ba1); + ExtensionData ed2 = new ExtensionData(); + ed2.setExtensionId("2"); + byte[] ba2 = { (byte) 0x83, (byte) 0xDA }; + ed2.setExtensionData(ba2); + ed.add(ed1); + ed.add(ed2); + } + + private static void populate(ControlData controlDetail) { + controlDetail.infoText = "cd"; + controlDetail.setAgeCheckRequired(false); + controlDetail.setIdentificationByIdCard(false); + controlDetail.setIdentificationByPassportId(false); + controlDetail.setOnlineValidationRequired(false); + controlDetail.setPassportValidationRequired(false); + controlDetail.setReductionCardCheckRequired(false); + controlDetail.setIdentificationByCardReference(new SequenceOfCardReferenceType()); + controlDetail.getIdentificationByCardReference().add(populateCardRefrence()); + SequenceOfTicketLinkType sit = new SequenceOfTicketLinkType(); + populateLinkedTickets(sit); + controlDetail.setIncludedTickets(sit); + } + + private static void populateLinkedTickets(SequenceOfTicketLinkType sequenceOfTicketLinkType) { + TicketLinkType tlt = new TicketLinkType(); + tlt.productOwnerIA5="test"; + tlt.setTicketType(TicketType.pass); + tlt.setIssuerPNR("PNR"); + tlt.setReferenceIA5("UED12435867"); + tlt.setLinkMode(LinkMode.onlyValidInCombination); + tlt.setIssuerName("OEBB"); + sequenceOfTicketLinkType.add(tlt); + } + + private static CardReferenceType populateCardRefrence() { + CardReferenceType cr = new CardReferenceType(); + cr.setTrailingCardIdNum(100L); + return cr; + } + + + + } diff --git a/src/test/java/org/uic/barcode/ticket/api/test/testtickets/DelayTestTicketV3.java b/src/test/java/org/uic/barcode/ticket/api/test/testtickets/DelayTestTicketV3.java new file mode 100644 index 0000000..9364acd --- /dev/null +++ b/src/test/java/org/uic/barcode/ticket/api/test/testtickets/DelayTestTicketV3.java @@ -0,0 +1,163 @@ +package org.uic.barcode.ticket.api.test.testtickets; + +import org.uic.barcode.asn1.datatypes.Asn1BigInteger; +import org.uic.barcode.ticket.api.asn.omv1.CardReferenceType; +import org.uic.barcode.ticket.api.asn.omv1.ControlData; +import org.uic.barcode.ticket.api.asn.omv1.CustomerStatusType; +import org.uic.barcode.ticket.api.asn.omv1.DelayConfirmation; +import org.uic.barcode.ticket.api.asn.omv1.DocumentData; +import org.uic.barcode.ticket.api.asn.omv1.ExtensionData; +import org.uic.barcode.ticket.api.asn.omv1.IssuingData; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCardReferenceType; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCustomerStatusType; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfDocumentData; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfExtensionData; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTicketLinkType; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTravelerType; +import org.uic.barcode.ticket.api.asn.omv1.TicketDetailData; +import org.uic.barcode.ticket.api.asn.omv1.TicketLinkType; +import org.uic.barcode.ticket.api.asn.omv1.TravelerData; +import org.uic.barcode.ticket.api.asn.omv1.TravelerType; +import org.uic.barcode.ticket.api.asn.omv1.UicRailTicketData; + + public class DelayTestTicketV3 { + + public static UicRailTicketData getUicTestTicket() { + UicRailTicketData ticket = new UicRailTicketData(); + populateTicket(ticket); + return ticket; + } + + + + private static void populateTicket(UicRailTicketData ticket) { + + ticket.setControlDetail(new ControlData()); + populate(ticket.getControlDetail()); + + + ticket.setIssuingDetail(new IssuingData()); + populateIssuingData(ticket.getIssuingDetail()); + + TravelerData td = new TravelerData(); + populateTravelerData(td); + ticket.setTravelerDetail(td); + + SequenceOfDocumentData ds = new SequenceOfDocumentData(); + + + //FipTicket + DocumentData do1 = new DocumentData(); + addTicket(do1); + ds.add(do1); + + + ticket.setTransportDocument(ds); + + SequenceOfExtensionData ed = new SequenceOfExtensionData(); + populateExtensionSequence(ed); + ticket.setExtension(ed); + + } + + + //issue date: 04-03-2021 12:30 UTC + private static void populateIssuingData(IssuingData issuingDetail) { + issuingDetail.setIssuingYear(2021L); + issuingDetail.setIssuingTime(750L); + issuingDetail.setIssuingDay(63L); + issuingDetail.setIssuerPNR("issuerTestPNR"); + issuingDetail.setSpecimen(true); + issuingDetail.setSecurePaperTicket(false); + issuingDetail.setActivated(true); + issuingDetail.setIssuedOnLine(12L); + } + + private static void addTicket(DocumentData dd) { + + TicketDetailData tdd = new TicketDetailData(); + DelayConfirmation ticket = new DelayConfirmation(); + ticket.setPlannedArrivalDay(0L); + ticket.setPlannedArrivalTime(1000L); + ticket.setDelay(30L); + ticket.setInfoText("delay confirmation"); + ticket.setAffectedTickets(getAffectedTickets()); + ticket.setPlannedArrivalYear(2022L); + ticket.setReferenceIA5("ABDJ12345"); + ticket.setStationNum(8000001L); + ticket.setStationNameUTF8("station of delay"); + ticket.setTrainCancelled(false); + ticket.setTrainNum(Asn1BigInteger.toAsn1(100L)); + tdd.setDelayConfirmation(ticket); + dd.setTicket(tdd); + } + + private static SequenceOfTicketLinkType getAffectedTickets() { + + SequenceOfTicketLinkType lts = new SequenceOfTicketLinkType(); + TicketLinkType t1 = new TicketLinkType(); + t1.setReferenceNum(1080L); + t1.setReferenceNum(801234567890L); + t1.setProductOwnerNum(1080L); + lts.add(t1); + return lts; + + } + + + + private static void populateTravelerData(TravelerData td) { + SequenceOfTravelerType trs = new SequenceOfTravelerType(); + TravelerType tr = new TravelerType(); + tr.setIdCard("12345"); + tr.setFirstName("John"); + tr.setSecondName("Dow"); + tr.setTicketHolder(true); + SequenceOfCustomerStatusType ts = new SequenceOfCustomerStatusType(); + CustomerStatusType cst = new CustomerStatusType(); + cst.setCustomerStatusDescr("employee"); + ts.add(cst); + tr.setStatus(ts); + trs.add(tr); + td.setTraveler(trs); + } + + + + + + private static void populateExtensionSequence(SequenceOfExtensionData ed) { + ExtensionData ed1 = new ExtensionData(); + ed1.setExtensionId("1"); + byte[] ba1 = { (byte) 0x82, (byte) 0xDA }; + ed1.setExtensionData(ba1); + ExtensionData ed2 = new ExtensionData(); + ed2.setExtensionId("2"); + byte[] ba2 = { (byte) 0x83, (byte) 0xDA }; + ed2.setExtensionData(ba2); + ed.add(ed1); + ed.add(ed2); + } + + private static void populate(ControlData controlDetail) { + controlDetail.infoText = "cd"; + controlDetail.setAgeCheckRequired(false); + controlDetail.setIdentificationByIdCard(false); + controlDetail.setIdentificationByPassportId(false); + controlDetail.setOnlineValidationRequired(false); + controlDetail.setPassportValidationRequired(false); + controlDetail.setReductionCardCheckRequired(false); + controlDetail.setIdentificationByCardReference(new SequenceOfCardReferenceType()); + controlDetail.getIdentificationByCardReference().add(populateCardRefrence()); + } + + + private static CardReferenceType populateCardRefrence() { + CardReferenceType cr = new CardReferenceType(); + cr.setTrailingCardIdNum(100L); + return cr; + } + + + + } diff --git a/src/test/java/org/uic/barcode/ticket/api/test/testtickets/FipTimeZoneTestTicketV1.java b/src/test/java/org/uic/barcode/ticket/api/test/testtickets/FipTimeZoneTestTicketV1.java new file mode 100644 index 0000000..bfd54fe --- /dev/null +++ b/src/test/java/org/uic/barcode/ticket/api/test/testtickets/FipTimeZoneTestTicketV1.java @@ -0,0 +1,155 @@ +package org.uic.barcode.ticket.api.test.testtickets; + +import org.uic.barcode.asn1.datatypes.Asn1BigInteger; +import org.uic.barcode.ticket.api.asn.omv1.CardReferenceType; +import org.uic.barcode.ticket.api.asn.omv1.ControlData; +import org.uic.barcode.ticket.api.asn.omv1.CustomerStatusType; +import org.uic.barcode.ticket.api.asn.omv1.DocumentData; +import org.uic.barcode.ticket.api.asn.omv1.ExtensionData; +import org.uic.barcode.ticket.api.asn.omv1.FIPTicketData; +import org.uic.barcode.ticket.api.asn.omv1.IssuingData; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfActivatedDays; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCardReferenceType; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCarrierNum; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCustomerStatusType; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfDocumentData; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfExtensionData; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTravelerType; +import org.uic.barcode.ticket.api.asn.omv1.TicketDetailData; +import org.uic.barcode.ticket.api.asn.omv1.TravelClassType; +import org.uic.barcode.ticket.api.asn.omv1.TravelerData; +import org.uic.barcode.ticket.api.asn.omv1.TravelerType; +import org.uic.barcode.ticket.api.asn.omv1.UicRailTicketData; + + public class FipTimeZoneTestTicketV1 { + + public static UicRailTicketData getUicTestTicket() { + UicRailTicketData ticket = new UicRailTicketData(); + populateTicket(ticket); + return ticket; + } + + + + private static void populateTicket(UicRailTicketData ticket) { + + ticket.setControlDetail(new ControlData()); + populate(ticket.getControlDetail()); + + + ticket.setIssuingDetail(new IssuingData()); + populateIssuingData(ticket.getIssuingDetail()); + + TravelerData td = new TravelerData(); + populateTravelerData(td); + ticket.setTravelerDetail(td); + + SequenceOfDocumentData ds = new SequenceOfDocumentData(); + + + //FipTicket + DocumentData do1 = new DocumentData(); + addFip(do1); + ds.add(do1); + + + ticket.setTransportDocument(ds); + + SequenceOfExtensionData ed = new SequenceOfExtensionData(); + populateExtensionSequence(ed); + ticket.setExtension(ed); + + } + + + //issue date: 04-03-2021 12:30 UTC + private static void populateIssuingData(IssuingData issuingDetail) { + issuingDetail.setIssuingYear(2021L); + issuingDetail.setIssuingTime(750L); + issuingDetail.setIssuingDay(63L); + issuingDetail.setIssuerPNR("issuerTestPNR"); + issuingDetail.setSpecimen(true); + issuingDetail.setSecurePaperTicket(false); + issuingDetail.setActivated(true); + issuingDetail.setIssuedOnLine(12L); + } + + private static void addFip(DocumentData dd) { + + TicketDetailData tdd = new TicketDetailData(); + FIPTicketData otd = new FIPTicketData(); + otd.setClassCode(TravelClassType.first); + otd.setNumberOfTravelDays(8L); + otd.setValidFromDay(10L); + otd.setValidUntilDay(10L); + SequenceOfCarrierNum carriers = new SequenceOfCarrierNum(); + carriers.add(1080L); + carriers.add(1181L); + otd.setCarrierNum(carriers); + otd.setIncludesSupplements(true); + otd.setReferenceNum(Asn1BigInteger.toAsn1(123456789)); + SequenceOfActivatedDays s = new SequenceOfActivatedDays(); + s.add(0L); + otd.setActivatedDay(s); + + tdd.setFipTicket(otd); + dd.setTicket(tdd); + } + + + + private static void populateTravelerData(TravelerData td) { + SequenceOfTravelerType trs = new SequenceOfTravelerType(); + TravelerType tr = new TravelerType(); + tr.setIdCard("12345"); + tr.setFirstName("John"); + tr.setSecondName("Dow"); + tr.setTicketHolder(true); + SequenceOfCustomerStatusType ts = new SequenceOfCustomerStatusType(); + CustomerStatusType cst = new CustomerStatusType(); + cst.setCustomerStatusDescr("employee"); + ts.add(cst); + tr.setStatus(ts); + trs.add(tr); + td.setTraveler(trs); + } + + + + + + private static void populateExtensionSequence(SequenceOfExtensionData ed) { + ExtensionData ed1 = new ExtensionData(); + ed1.setExtensionId("1"); + byte[] ba1 = { (byte) 0x82, (byte) 0xDA }; + ed1.setExtensionData(ba1); + ExtensionData ed2 = new ExtensionData(); + ed2.setExtensionId("2"); + byte[] ba2 = { (byte) 0x83, (byte) 0xDA }; + ed2.setExtensionData(ba2); + ed.add(ed1); + ed.add(ed2); + } + + private static void populate(ControlData controlDetail) { + controlDetail.infoText = "cd"; + controlDetail.setAgeCheckRequired(false); + controlDetail.setIdentificationByIdCard(false); + controlDetail.setIdentificationByPassportId(false); + controlDetail.setOnlineValidationRequired(false); + controlDetail.setPassportValidationRequired(false); + controlDetail.setReductionCardCheckRequired(false); + controlDetail.setIdentificationByCardReference(new SequenceOfCardReferenceType()); + controlDetail.getIdentificationByCardReference().add(populateCardRefrence()); + } + + + private static CardReferenceType populateCardRefrence() { + CardReferenceType cr = new CardReferenceType(); + cr.setTrailingCardIdNum(100L); + return cr; + } + + + + } diff --git a/src/test/java/org/uic/barcode/ticket/api/test/testtickets/FipTimeZoneTestTicketV2.java b/src/test/java/org/uic/barcode/ticket/api/test/testtickets/FipTimeZoneTestTicketV2.java new file mode 100644 index 0000000..08b4507 --- /dev/null +++ b/src/test/java/org/uic/barcode/ticket/api/test/testtickets/FipTimeZoneTestTicketV2.java @@ -0,0 +1,155 @@ +package org.uic.barcode.ticket.api.test.testtickets; + +import org.uic.barcode.asn1.datatypes.Asn1BigInteger; +import org.uic.barcode.ticket.api.asn.omv2.CardReferenceType; +import org.uic.barcode.ticket.api.asn.omv2.ControlData; +import org.uic.barcode.ticket.api.asn.omv2.CustomerStatusType; +import org.uic.barcode.ticket.api.asn.omv2.DocumentData; +import org.uic.barcode.ticket.api.asn.omv2.ExtensionData; +import org.uic.barcode.ticket.api.asn.omv2.FIPTicketData; +import org.uic.barcode.ticket.api.asn.omv2.IssuingData; +import org.uic.barcode.ticket.api.asn.omv2.SequenceOfActivatedDays; +import org.uic.barcode.ticket.api.asn.omv2.SequenceOfCardReferenceType; +import org.uic.barcode.ticket.api.asn.omv2.SequenceOfCarrierNum; +import org.uic.barcode.ticket.api.asn.omv2.SequenceOfCustomerStatusType; +import org.uic.barcode.ticket.api.asn.omv2.SequenceOfDocumentData; +import org.uic.barcode.ticket.api.asn.omv2.SequenceOfExtensionData; +import org.uic.barcode.ticket.api.asn.omv2.SequenceOfTravelerType; +import org.uic.barcode.ticket.api.asn.omv2.TicketDetailData; +import org.uic.barcode.ticket.api.asn.omv2.TravelClassType; +import org.uic.barcode.ticket.api.asn.omv2.TravelerData; +import org.uic.barcode.ticket.api.asn.omv2.TravelerType; +import org.uic.barcode.ticket.api.asn.omv2.UicRailTicketData; + + public class FipTimeZoneTestTicketV2 { + + public static UicRailTicketData getUicTestTicket() { + UicRailTicketData ticket = new UicRailTicketData(); + populateTicket(ticket); + return ticket; + } + + + + private static void populateTicket(UicRailTicketData ticket) { + + ticket.setControlDetail(new ControlData()); + populate(ticket.getControlDetail()); + + + ticket.setIssuingDetail(new IssuingData()); + populateIssuingData(ticket.getIssuingDetail()); + + TravelerData td = new TravelerData(); + populateTravelerData(td); + ticket.setTravelerDetail(td); + + SequenceOfDocumentData ds = new SequenceOfDocumentData(); + + + //FipTicket + DocumentData do1 = new DocumentData(); + addFip(do1); + ds.add(do1); + + + ticket.setTransportDocument(ds); + + SequenceOfExtensionData ed = new SequenceOfExtensionData(); + populateExtensionSequence(ed); + ticket.setExtension(ed); + + } + + + //issue date: 04-03-2021 12:30 UTC + private static void populateIssuingData(IssuingData issuingDetail) { + issuingDetail.setIssuingYear(2021L); + issuingDetail.setIssuingTime(750L); + issuingDetail.setIssuingDay(63L); + issuingDetail.setIssuerPNR("issuerTestPNR"); + issuingDetail.setSpecimen(true); + issuingDetail.setSecurePaperTicket(false); + issuingDetail.setActivated(true); + issuingDetail.setIssuedOnLine(12L); + } + + private static void addFip(DocumentData dd) { + + TicketDetailData tdd = new TicketDetailData(); + FIPTicketData otd = new FIPTicketData(); + otd.setClassCode(TravelClassType.first); + otd.setNumberOfTravelDays(8L); + otd.setValidFromDay(10L); + otd.setValidUntilDay(10L); + SequenceOfCarrierNum carriers = new SequenceOfCarrierNum(); + carriers.add(1080L); + carriers.add(1181L); + otd.setCarrierNum(carriers); + otd.setIncludesSupplements(true); + otd.setReferenceNum(Asn1BigInteger.toAsn1(123445)); + SequenceOfActivatedDays s = new SequenceOfActivatedDays(); + s.add(0L); + otd.setActivatedDay(s); + + tdd.setFipTicket(otd); + dd.setTicket(tdd); + } + + + + private static void populateTravelerData(TravelerData td) { + SequenceOfTravelerType trs = new SequenceOfTravelerType(); + TravelerType tr = new TravelerType(); + tr.setIdCard("12345"); + tr.setFirstName("John"); + tr.setSecondName("Dow"); + tr.setTicketHolder(true); + SequenceOfCustomerStatusType ts = new SequenceOfCustomerStatusType(); + CustomerStatusType cst = new CustomerStatusType(); + cst.setCustomerStatusDescr("employee"); + ts.add(cst); + tr.setStatus(ts); + trs.add(tr); + td.setTraveler(trs); + } + + + + + + private static void populateExtensionSequence(SequenceOfExtensionData ed) { + ExtensionData ed1 = new ExtensionData(); + ed1.setExtensionId("1"); + byte[] ba1 = { (byte) 0x82, (byte) 0xDA }; + ed1.setExtensionData(ba1); + ExtensionData ed2 = new ExtensionData(); + ed2.setExtensionId("2"); + byte[] ba2 = { (byte) 0x83, (byte) 0xDA }; + ed2.setExtensionData(ba2); + ed.add(ed1); + ed.add(ed2); + } + + private static void populate(ControlData controlDetail) { + controlDetail.infoText = "cd"; + controlDetail.setAgeCheckRequired(false); + controlDetail.setIdentificationByIdCard(false); + controlDetail.setIdentificationByPassportId(false); + controlDetail.setOnlineValidationRequired(false); + controlDetail.setPassportValidationRequired(false); + controlDetail.setReductionCardCheckRequired(false); + controlDetail.setIdentificationByCardReference(new SequenceOfCardReferenceType()); + controlDetail.getIdentificationByCardReference().add(populateCardRefrence()); + } + + + private static CardReferenceType populateCardRefrence() { + CardReferenceType cr = new CardReferenceType(); + cr.setTrailingCardIdNum(100L); + return cr; + } + + + + } diff --git a/src/test/java/org/uic/barcode/ticket/api/test/testtickets/OpenTestTicketV1.java b/src/test/java/org/uic/barcode/ticket/api/test/testtickets/OpenTestTicketV1.java new file mode 100644 index 0000000..69a61a9 --- /dev/null +++ b/src/test/java/org/uic/barcode/ticket/api/test/testtickets/OpenTestTicketV1.java @@ -0,0 +1,578 @@ +package org.uic.barcode.ticket.api.test.testtickets; + +import org.uic.barcode.asn1.datatypesimpl.SequenceOfStringUTF8; +import org.uic.barcode.ticket.api.asn.omv1.CardReferenceType; +import org.uic.barcode.ticket.api.asn.omv1.ControlData; +import org.uic.barcode.ticket.api.asn.omv1.CustomerStatusType; +import org.uic.barcode.ticket.api.asn.omv1.DocumentData; +import org.uic.barcode.ticket.api.asn.omv1.ExtensionData; +import org.uic.barcode.ticket.api.asn.omv1.IssuingData; +import org.uic.barcode.ticket.api.asn.omv1.LinkMode; +import org.uic.barcode.ticket.api.asn.omv1.OpenTicketData; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCardReferenceType; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCustomerStatusType; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfDocumentData; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfExtensionData; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTicketLinkType; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTravelerType; +import org.uic.barcode.ticket.api.asn.omv1.StationPassageData; +import org.uic.barcode.ticket.api.asn.omv1.TicketDetailData; +import org.uic.barcode.ticket.api.asn.omv1.TicketLinkType; +import org.uic.barcode.ticket.api.asn.omv1.TicketType; +import org.uic.barcode.ticket.api.asn.omv1.TokenType; +import org.uic.barcode.ticket.api.asn.omv1.TravelClassType; +import org.uic.barcode.ticket.api.asn.omv1.TravelerData; +import org.uic.barcode.ticket.api.asn.omv1.TravelerType; +import org.uic.barcode.ticket.api.asn.omv1.UicRailTicketData; + + + public class OpenTestTicketV1 { + + public static UicRailTicketData getUicTestTicket() { + UicRailTicketData ticket = new UicRailTicketData(); + populateTicket(ticket); + return ticket; + } + + /* + value UicRailTicketData ::= { + issuingDetail { + issuingYear 2018 + issuingDay 1 + specimen TRUE, + securePaperTicket FALSE, + activated TRUE, + issuerPNR "issuerTestPNR", + issuedOnLine 12 + } + ,travelerDetail{ + traveler { + { + firstName "John" + ,secondName "Dow" + ,idCard "12345" + ,ticketHolder TRUE + ,status {{customerStatusDescr "senior" }} + } + } + ,groupName "myGroup" + } + ,transportDocument { + { + token {tokenProviderIA5 "VDV", token '82DA'H } + ,ticket openTicket : { + returnIncluded FALSE + ,infoText "openTicketInfo" + ,classCode "second" + } + } + ,{ + ticket stationPassage : { + productName "passage" + ,stationNameUTF8 { "Amsterdam" } + ,validFromDay 0 + ,numberOfDaysValid 123 + } + } + } + ,controlDetail { + identificationByCardReference { + { trailingCardIdNum 100 } + } + ,identificationByIdCard FALSE + ,identificationByPassportId FALSE + ,passportValidationRequired FALSE + ,onlineValidationRequired FALSE + ,ageCheckRequired FALSE + ,reductionCardCheckRequired FALSE + ,infoText "cd" + ,includedTickets { + { referenceIA5 "UED12435867" + ,issuerName "OEBB" + ,issuerPNR "PNR" + ,productOwnerIA5 "test" + ,ticketType pass + ,linkMode onlyValidInCombination + + } + } + } + ,extension { + { extensionId "1", extensionData '82DA'H } + ,{ extensionId "2", extensionData '83DA'H } + } + } + */ + + /* + * asn.1 version 1.3 encoding: +Encoding to the file 'data.uper' using PER UNALIGNED encoding rule... +UicRailTicketData SEQUENCE [root fieldcount (not encoded) = 5] + issuingDetail IssuingData SEQUENCE [root fieldcount (not encoded) = 7] + issuingYear INTEGER [length (not encoded) = 1.0] + 2018 + issuingDay INTEGER [length (not encoded) = 1.1] + 1 + specimen BOOLEAN [length (not encoded) = 0.1] + TRUE + securePaperTicket BOOLEAN [length (not encoded) = 0.1] + FALSE + activated BOOLEAN [length (not encoded) = 0.1] + TRUE + issuerPNR IA5String [length = 13.0] + "issuerTestPNR" + issuedOnLine INTEGER [length = 1.0] + 12 + travelerDetail TravelerData SEQUENCE [root fieldcount (not encoded) = 2] + traveler SEQUENCE OF [count = 1] + TravelerType SEQUENCE [root fieldcount (not encoded) = 5] + firstName UTF8String [length = 4.0] + 0x4a6f686e + secondName UTF8String [length = 3.0] + 0x446f77 + idCard IA5String [length = 5.0] + "12345" + ticketHolder BOOLEAN [length (not encoded) = 0.1] + TRUE + status SEQUENCE OF [count = 1] + CustomerStatusType SEQUENCE [fieldcount (not encoded) = 1] + customerStatusDescr IA5String [length = 6.0] + "senior" + groupName UTF8String [length = 7.0] + 0x6d7947726f7570 + transportDocument SEQUENCE OF [count = 2] + DocumentData SEQUENCE [root fieldcount (not encoded) = 2] + token TokenType SEQUENCE [fieldcount (not encoded) = 2] + tokenProviderIA5 IA5String [length = 3.0] + "VDV" + token OCTET STRING [length = 2.0] + 0x82da + ticket CHOICE [index = 2] + openTicket OpenTicketData SEQUENCE [root fieldcount (not encoded) = 2] + returnIncluded BOOLEAN [length (not encoded) = 0.1] + FALSE + infoText UTF8String [length = 14.0] + 0x6f70656e5469636b6574496e666f + DocumentData SEQUENCE [root fieldcount (not encoded) = 1] + ticket CHOICE [index = 9] + stationPassage StationPassageData SEQUENCE [root fieldcount (not encoded) = 4] + productName UTF8String [length = 7.0] + 0x70617373616765 + stationNameUTF8 SEQUENCE OF [count = 1] + UTF8String [length = 9.0] + 0x416d7374657264616d + validFromDay INTEGER [length (not encoded) = 1.2] + 0 + numberOfDaysValid INTEGER [length = 1.0] + 123 + controlDetail ControlData SEQUENCE [root fieldcount (not encoded) = 9] + identificationByCardReference SEQUENCE OF [count = 1] + CardReferenceType SEQUENCE [root fieldcount (not encoded) = 1] + trailingCardIdNum INTEGER [length = 1.0] + 100 + identificationByIdCard BOOLEAN [length (not encoded) = 0.1] + FALSE + identificationByPassportId BOOLEAN [length (not encoded) = 0.1] + FALSE + passportValidationRequired BOOLEAN [length (not encoded) = 0.1] + FALSE + onlineValidationRequired BOOLEAN [length (not encoded) = 0.1] + FALSE + ageCheckRequired BOOLEAN [length (not encoded) = 0.1] + FALSE + reductionCardCheckRequired BOOLEAN [length (not encoded) = 0.1] + FALSE + infoText UTF8String [length = 2.0] + 0x6364 + includedTickets SEQUENCE OF [count = 1] + TicketLinkType SEQUENCE [root fieldcount (not encoded) = 6] + referenceIA5 IA5String [length = 11.0] + "UED12435867" + issuerName UTF8String [length = 4.0] + 0x4f454242 + issuerPNR IA5String [length = 3.0] + "PNR" + productOwnerIA5 IA5String [length = 4.0] + "test" + ticketType TicketType ENUMERATED [length (not encoded) = 0.2] + 1 + linkMode LinkMode ENUMERATED [length (not encoded) = 0.1] + 1 + extension SEQUENCE OF [count = 2] + ExtensionData SEQUENCE [fieldcount (not encoded) = 2] + extensionId IA5String [length = 1.0] + "1" + extensionData OCTET STRING [length = 2.0] + 0x82da + ExtensionData SEQUENCE [fieldcount (not encoded) = 2] + extensionId IA5String [length = 1.0] + "2" + extensionData OCTET STRING [length = 2.0] + 0x83da +Total encoded length = 154.3 +Encoded successfully in 155 bytes: +78022020 050DD3CF 9F5CBCAA 65E7D284 EA40218A 02D00082 2537B437 01A237BB +82B164CD A3580883 73CBBB4E FE40EDAF 28EE4DEE AE004A03 AD12B014 16D08000 +00000403 9BDC195B 951A58DA D95D125B 999BC480 88040EE0 C2E6E6C2 CECA0212 +82DAE6E8 CAE4C8C2 DA0080BD A6010040 2C800131 B200ADC2 EAC588C5 93466D5C +366E089E 8A848407 4275204E 9979F428 100B1028 2DA01640 507B40 + * + * + */ + + /* + * asn.1 version 2.0 encoding + * + Encoding to the file 'data.uper' using PER UNALIGNED encoding rule... +UicRailTicketData SEQUENCE [root fieldcount (not encoded) = 5] + issuingDetail IssuingData SEQUENCE [root fieldcount (not encoded) = 7] + issuingYear INTEGER [length (not encoded) = 1.0] + 2018 + issuingDay INTEGER [length (not encoded) = 1.1] + 1 + specimen BOOLEAN [length (not encoded) = 0.1] + TRUE + securePaperTicket BOOLEAN [length (not encoded) = 0.1] + FALSE + activated BOOLEAN [length (not encoded) = 0.1] + TRUE + issuerPNR IA5String [length = 13.0] + "issuerTestPNR" + issuedOnLine INTEGER [length = 1.0] + 12 + travelerDetail TravelerData SEQUENCE [root fieldcount (not encoded) = 2] + traveler SEQUENCE OF [count = 1] + TravelerType SEQUENCE [root fieldcount (not encoded) = 5] + firstName UTF8String [length = 4.0] + 0x4a6f686e + secondName UTF8String [length = 3.0] + 0x446f77 + idCard IA5String [length = 5.0] + "12345" + ticketHolder BOOLEAN [length (not encoded) = 0.1] + TRUE + status SEQUENCE OF [count = 1] + CustomerStatusType SEQUENCE [fieldcount (not encoded) = 1] + customerStatusDescr IA5String [length = 6.0] + "senior" + groupName UTF8String [length = 7.0] + 0x6d7947726f7570 + transportDocument SEQUENCE OF [count = 2] + DocumentData SEQUENCE [root fieldcount (not encoded) = 2] + token TokenType SEQUENCE [fieldcount (not encoded) = 2] + tokenProviderIA5 IA5String [length = 3.0] + "VDV" + token OCTET STRING [length = 2.0] + 0x82da + ticket CHOICE [index = 2] + openTicket OpenTicketData SEQUENCE [root fieldcount (not encoded) = 2] + returnIncluded BOOLEAN [length (not encoded) = 0.1] + FALSE + infoText UTF8String [length = 14.0] + 0x6f70656e5469636b6574496e666f + DocumentData SEQUENCE [root fieldcount (not encoded) = 1] + ticket CHOICE [index = 9] + stationPassage StationPassageData SEQUENCE [root fieldcount (not encoded) = 4] + productName UTF8String [length = 7.0] + 0x70617373616765 + stationNameUTF8 SEQUENCE OF [count = 1] + UTF8String [length = 9.0] + 0x416d7374657264616d + validFromDay INTEGER [length (not encoded) = 1.2] + 0 + numberOfDaysValid INTEGER [length = 1.0] + 123 + controlDetail ControlData SEQUENCE [root fieldcount (not encoded) = 9] + identificationByCardReference SEQUENCE OF [count = 1] + CardReferenceType SEQUENCE [root fieldcount (not encoded) = 1] + trailingCardIdNum INTEGER [length = 1.0] + 100 + identificationByIdCard BOOLEAN [length (not encoded) = 0.1] + FALSE + identificationByPassportId BOOLEAN [length (not encoded) = 0.1] + FALSE + passportValidationRequired BOOLEAN [length (not encoded) = 0.1] + FALSE + onlineValidationRequired BOOLEAN [length (not encoded) = 0.1] + FALSE + ageCheckRequired BOOLEAN [length (not encoded) = 0.1] + FALSE + reductionCardCheckRequired BOOLEAN [length (not encoded) = 0.1] + FALSE + infoText UTF8String [length = 2.0] + 0x6364 + includedTickets SEQUENCE OF [count = 1] + TicketLinkType SEQUENCE [root fieldcount (not encoded) = 6] + referenceIA5 IA5String [length = 11.0] + "UED12435867" + issuerName UTF8String [length = 4.0] + 0x4f454242 + issuerPNR IA5String [length = 3.0] + "PNR" + productOwnerIA5 IA5String [length = 4.0] + "test" + ticketType TicketType ENUMERATED [length (not encoded) = 0.2] + 1 + linkMode LinkMode ENUMERATED [length (not encoded) = 0.1] + 1 + extension SEQUENCE OF [count = 2] + ExtensionData SEQUENCE [fieldcount (not encoded) = 2] + extensionId IA5String [length = 1.0] + "1" + extensionData OCTET STRING [length = 2.0] + 0x82da + ExtensionData SEQUENCE [fieldcount (not encoded) = 2] + extensionId IA5String [length = 1.0] + "2" + extensionData OCTET STRING [length = 2.0] + 0x83da +Total encoded length = 154.6 +Encoded successfully in 155 bytes: +78022020 050DD3CF 9F5CBCAA 65E7D284 EA40218A 02D00041 129BDA1B 80D11BDD +C158B266 D1AC0441 B9E5DDA7 7F2076D7 947726F7 57002501 D689580A 0B684000 +00000200 737B832B 72A34B1B 5B2BA24B 73337890 110081DC 185CDCD8 59D94042 +505B5CDD 195C9918 5B401017 B4C02008 05900026 364015B8 5D58B118 B268CDAB +86CDC113 D1509080 E84EA409 D32F3E85 02016205 05B402C8 0A0F68 + * + * + * + */ + + public static String getEncodingV1Hex() { + return "78022020050DD3CF9F5CBCAA65E7D284EA40218A02D000822537B43701A237BB" + + "82B164CDA358088373CBBB4EFE40EDAF28EE4DEEAE004A03AD12B01416D08000" + + "000004039BDC195B951A58DAD95D125B999BC48088040EE0C2E6E6C2CECA0212" + + "82DAE6E8CAE4C8C2DA0080BDA60100402C800131B200ADC2EAC588C593466D5C" + + "366E089E8A8484074275204E9979F428100B10282DA01640507B40"; + } + + public static String getEncodingV2Hex() { + return "78022020050DD3CF9F5CBCAA65E7D284EA40218A02D00041129BDA1B80D11BDD" + + "C158B266D1AC0441B9E5DDA77F2076D7947726F757002501D689580A0B684000" + + "00000200737B832B72A34B1B5B2BA24B73337890110081DC185CDCD859D94042" + + "505B5CDD195C99185B401017B4C0200805900026364015B85D58B118B268CDAB" + + "86CDC113D1509080E84EA409D32F3E850201620505B402C80A0F68"; + } + + + private static void populateTicket(UicRailTicketData ticket) { + + ticket.setControlDetail(new ControlData()); + populate(ticket.getControlDetail()); + + + ticket.setIssuingDetail(new IssuingData()); + populateIssuingData(ticket.getIssuingDetail()); + + TravelerData td = new TravelerData(); + populateTravelerData(td); + ticket.setTravelerDetail(td); + + SequenceOfDocumentData ds = new SequenceOfDocumentData(); + + + //OpenTicket + DocumentData do1 = new DocumentData(); + addOpenTicketData(do1); + ds.add(do1); + + //StationPassage + DocumentData do2 = new DocumentData(); + addStationPassage(do2); + ds.add(do2); + + ticket.setTransportDocument(ds); + + SequenceOfExtensionData ed = new SequenceOfExtensionData(); + populateExtensionSequence(ed); + ticket.setExtension(ed); + + } + + /* + ticket stationPassage : { + productName "passage" + ,stationNameUTF8 { "Amsterdam" } + ,validFromDay 0 + ,numberOfDaysValid 123 + } + */ + private static void addStationPassage(DocumentData dd) { + TicketDetailData tdd = new TicketDetailData(); + StationPassageData sp = new StationPassageData(); + sp.setProductName("passage"); + sp.setValidFromDay(0L); + sp.setNumberOfDaysValid(123L); + SequenceOfStringUTF8 ss = new SequenceOfStringUTF8(); + ss.add("Amsterdam"); + sp.setStationNameUTF8(ss); + tdd.setStationPassage(sp); + dd.setTicket(tdd); + } + + /* + { + token {tokenProviderIA5 "VDV", token '82DA'H } + ,ticket openTicket : { + returnIncluded FALSE + infoText "openTicketInfo" + } + } + */ + + + + private static void addOpenTicketData(DocumentData dd) { + TokenType to = new TokenType(); + to.setTokenProviderIA5("VDV"); + byte[] ba = { (byte) 0x82, (byte) 0xDA }; + to.setToken(ba); + dd.setToken(to); + + TicketDetailData tdd = new TicketDetailData(); + OpenTicketData otd = new OpenTicketData(); + otd.setInfoText("openTicketInfo"); + otd.setClassCode(TravelClassType.first); + otd.setReturnIncluded(false); + tdd.setOpenTicket(otd); + dd.setTicket(tdd); + } + + + /* + ,travelerDetail{ + traveler { + { + firstName "John" + ,secondName "Dow" + ,idCard "12345" + ,ticketHolder TRUE + ,status {{customerStatusDescr "senior" }} + } + } + ,groupName "myGroup" + } + */ + + private static void populateTravelerData(TravelerData td) { + td.setGroupName("myGroup"); + SequenceOfTravelerType trs = new SequenceOfTravelerType(); + TravelerType tr = new TravelerType(); + tr.setIdCard("12345"); + tr.setFirstName("John"); + tr.setSecondName("Dow"); + tr.setTicketHolder(true); + SequenceOfCustomerStatusType ts = new SequenceOfCustomerStatusType(); + CustomerStatusType cst = new CustomerStatusType(); + cst.setCustomerStatusDescr("senior"); + ts.add(cst); + tr.setStatus(ts); + trs.add(tr); + td.setTraveler(trs); + } + + /* + ,issuingDetail { + issuingYear 2018 + issuingDay 1 + specimen TRUE, + securePaperTicket FALSE, + activated TRUE, + issuerPNR "issuerTestPNR", + issuedOnLine 12 + } + */ + private static void populateIssuingData(IssuingData issuingDetail) { + issuingDetail.setIssuingYear(2018L); + issuingDetail.setIssuingDay(1L); + issuingDetail.setIssuerPNR("issuerTestPNR"); + issuingDetail.setSpecimen(true); + issuingDetail.setSecurePaperTicket(false); + issuingDetail.setActivated(true); + issuingDetail.setIssuedOnLine(12L); + } + + /* + ,extension { + { extensionId "1", extensionData '82DA'H } + ,{ extensionId "2", extensionData '83DA'H } + } + */ + private static void populateExtensionSequence(SequenceOfExtensionData ed) { + ExtensionData ed1 = new ExtensionData(); + ed1.setExtensionId("1"); + byte[] ba1 = { (byte) 0x82, (byte) 0xDA }; + ed1.setExtensionData(ba1); + ExtensionData ed2 = new ExtensionData(); + ed2.setExtensionId("2"); + byte[] ba2 = { (byte) 0x83, (byte) 0xDA }; + ed2.setExtensionData(ba2); + ed.add(ed1); + ed.add(ed2); + } + + /* + ,controlDetail { + identificationByCardReference { + { trailingCardIdNum 100 } + } + ,identificationByIdCard FALSE + ,identificationByPassportId FALSE + ,passportValidationRequired FALSE + ,onlineValidationRequired FALSE + ,ageCheckRequired FALSE + ,reductionCardCheckRequired FALSE + ,infoText "cd" + ,includedTickets { + { productOwnerIA5 "test" + , + + + } + } + } + */ + private static void populate(ControlData controlDetail) { + controlDetail.infoText = "cd"; + controlDetail.setAgeCheckRequired(false); + controlDetail.setIdentificationByIdCard(false); + controlDetail.setIdentificationByPassportId(false); + controlDetail.setOnlineValidationRequired(false); + controlDetail.setPassportValidationRequired(false); + controlDetail.setReductionCardCheckRequired(false); + controlDetail.setIdentificationByCardReference(new SequenceOfCardReferenceType()); + controlDetail.getIdentificationByCardReference().add(populateCardRefrence()); + SequenceOfTicketLinkType sit = new SequenceOfTicketLinkType(); + populateLinkedTickets(sit); + controlDetail.setIncludedTickets(sit); + } + + + /* + * + */ + private static void populateLinkedTickets(SequenceOfTicketLinkType sequenceOfTicketLinkType) { + TicketLinkType tlt = new TicketLinkType(); + tlt.productOwnerIA5="test"; + tlt.setTicketType(TicketType.pass); + tlt.setIssuerPNR("PNR"); + tlt.setReferenceIA5("UED12435867"); + tlt.setLinkMode(LinkMode.onlyValidInCombination); + tlt.setIssuerName("OEBB"); + sequenceOfTicketLinkType.add(tlt); + } + + /* + { + trailingCardIdNum 100 + } + */ + private static CardReferenceType populateCardRefrence() { + CardReferenceType cr = new CardReferenceType(); + cr.setTrailingCardIdNum(100L); + return cr; + } + + + + } diff --git a/src/test/java/org/uic/barcode/ticket/api/test/testtickets/OpenTicketTimeZoneTestTicketV1.java b/src/test/java/org/uic/barcode/ticket/api/test/testtickets/OpenTicketTimeZoneTestTicketV1.java new file mode 100644 index 0000000..5ca6b73 --- /dev/null +++ b/src/test/java/org/uic/barcode/ticket/api/test/testtickets/OpenTicketTimeZoneTestTicketV1.java @@ -0,0 +1,157 @@ +package org.uic.barcode.ticket.api.test.testtickets; + +import org.uic.barcode.ticket.api.asn.omv1.CardReferenceType; +import org.uic.barcode.ticket.api.asn.omv1.ControlData; +import org.uic.barcode.ticket.api.asn.omv1.CustomerStatusType; +import org.uic.barcode.ticket.api.asn.omv1.DocumentData; +import org.uic.barcode.ticket.api.asn.omv1.ExtensionData; +import org.uic.barcode.ticket.api.asn.omv1.IssuingData; +import org.uic.barcode.ticket.api.asn.omv1.OpenTicketData; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfActivatedDays; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCardReferenceType; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCustomerStatusType; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfDocumentData; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfExtensionData; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTravelerType; +import org.uic.barcode.ticket.api.asn.omv1.TicketDetailData; +import org.uic.barcode.ticket.api.asn.omv1.TokenType; +import org.uic.barcode.ticket.api.asn.omv1.TravelClassType; +import org.uic.barcode.ticket.api.asn.omv1.TravelerData; +import org.uic.barcode.ticket.api.asn.omv1.TravelerType; +import org.uic.barcode.ticket.api.asn.omv1.UicRailTicketData; + + + public class OpenTicketTimeZoneTestTicketV1 { + + public static UicRailTicketData getUicTestTicket() { + UicRailTicketData ticket = new UicRailTicketData(); + populateTicket(ticket); + return ticket; + } + + + private static void populateTicket(UicRailTicketData ticket) { + + ticket.setControlDetail(new ControlData()); + populate(ticket.getControlDetail()); + + + ticket.setIssuingDetail(new IssuingData()); + populateIssuingData(ticket.getIssuingDetail()); + + TravelerData td = new TravelerData(); + populateTravelerData(td); + ticket.setTravelerDetail(td); + + SequenceOfDocumentData ds = new SequenceOfDocumentData(); + + + //OpenTicket + DocumentData do1 = new DocumentData(); + addOpenTicketData(do1); + ds.add(do1); + + + ticket.setTransportDocument(ds); + + SequenceOfExtensionData ed = new SequenceOfExtensionData(); + populateExtensionSequence(ed); + ticket.setExtension(ed); + + } + + + + private static void addOpenTicketData(DocumentData dd) { + TokenType to = new TokenType(); + to.setTokenProviderIA5("VDV"); + byte[] ba = { (byte) 0x82, (byte) 0xDA }; + to.setToken(ba); + dd.setToken(to); + + TicketDetailData tdd = new TicketDetailData(); + OpenTicketData otd = new OpenTicketData(); + otd.setInfoText("openTicketInfo"); + otd.setClassCode(TravelClassType.first); + otd.setReturnIncluded(false); + otd.setValidFromDay(10L); + otd.setValidFromTime(0L); + otd.setValidUntilDay(10L); + otd.setValidUntilTime(1439L); + SequenceOfActivatedDays s = new SequenceOfActivatedDays(); + otd.setActivatedDay(s); + s.add(0L); + tdd.setOpenTicket(otd); + dd.setTicket(tdd); + } + + + + private static void populateTravelerData(TravelerData td) { + td.setGroupName("myGroup"); + SequenceOfTravelerType trs = new SequenceOfTravelerType(); + TravelerType tr = new TravelerType(); + tr.setIdCard("12345"); + tr.setFirstName("John"); + tr.setSecondName("Dow"); + tr.setTicketHolder(true); + SequenceOfCustomerStatusType ts = new SequenceOfCustomerStatusType(); + CustomerStatusType cst = new CustomerStatusType(); + cst.setCustomerStatusDescr("senior"); + ts.add(cst); + tr.setStatus(ts); + trs.add(tr); + td.setTraveler(trs); + } + + private static void populateIssuingData(IssuingData issuingDetail) { + issuingDetail.setIssuingYear(2018L); + issuingDetail.setIssuingDay(1L); + issuingDetail.setIssuerPNR("issuerTestPNR"); + issuingDetail.setSpecimen(true); + issuingDetail.setSecurePaperTicket(false); + issuingDetail.setActivated(true); + issuingDetail.setIssuedOnLine(12L); + } + + + private static void populateExtensionSequence(SequenceOfExtensionData ed) { + ExtensionData ed1 = new ExtensionData(); + ed1.setExtensionId("1"); + byte[] ba1 = { (byte) 0x82, (byte) 0xDA }; + ed1.setExtensionData(ba1); + ExtensionData ed2 = new ExtensionData(); + ed2.setExtensionId("2"); + byte[] ba2 = { (byte) 0x83, (byte) 0xDA }; + ed2.setExtensionData(ba2); + ed.add(ed1); + ed.add(ed2); + } + + private static void populate(ControlData controlDetail) { + controlDetail.infoText = "cd"; + controlDetail.setAgeCheckRequired(false); + controlDetail.setIdentificationByIdCard(false); + controlDetail.setIdentificationByPassportId(false); + controlDetail.setOnlineValidationRequired(false); + controlDetail.setPassportValidationRequired(false); + controlDetail.setReductionCardCheckRequired(false); + controlDetail.setIdentificationByCardReference(new SequenceOfCardReferenceType()); + controlDetail.getIdentificationByCardReference().add(populateCardRefrence()); + } + + + /* + { + trailingCardIdNum 100 + } + */ + private static CardReferenceType populateCardRefrence() { + CardReferenceType cr = new CardReferenceType(); + cr.setTrailingCardIdNum(100L); + return cr; + } + + + + } diff --git a/src/test/java/org/uic/barcode/ticket/api/test/testtickets/OpenTicketTimeZoneTestTicketV2.java b/src/test/java/org/uic/barcode/ticket/api/test/testtickets/OpenTicketTimeZoneTestTicketV2.java new file mode 100644 index 0000000..3acc754 --- /dev/null +++ b/src/test/java/org/uic/barcode/ticket/api/test/testtickets/OpenTicketTimeZoneTestTicketV2.java @@ -0,0 +1,157 @@ +package org.uic.barcode.ticket.api.test.testtickets; + +import org.uic.barcode.ticket.api.asn.omv2.CardReferenceType; +import org.uic.barcode.ticket.api.asn.omv2.ControlData; +import org.uic.barcode.ticket.api.asn.omv2.CustomerStatusType; +import org.uic.barcode.ticket.api.asn.omv2.DocumentData; +import org.uic.barcode.ticket.api.asn.omv2.ExtensionData; +import org.uic.barcode.ticket.api.asn.omv2.IssuingData; +import org.uic.barcode.ticket.api.asn.omv2.OpenTicketData; +import org.uic.barcode.ticket.api.asn.omv2.SequenceOfActivatedDays; +import org.uic.barcode.ticket.api.asn.omv2.SequenceOfCardReferenceType; +import org.uic.barcode.ticket.api.asn.omv2.SequenceOfCustomerStatusType; +import org.uic.barcode.ticket.api.asn.omv2.SequenceOfDocumentData; +import org.uic.barcode.ticket.api.asn.omv2.SequenceOfExtensionData; +import org.uic.barcode.ticket.api.asn.omv2.SequenceOfTravelerType; +import org.uic.barcode.ticket.api.asn.omv2.TicketDetailData; +import org.uic.barcode.ticket.api.asn.omv2.TokenType; +import org.uic.barcode.ticket.api.asn.omv2.TravelClassType; +import org.uic.barcode.ticket.api.asn.omv2.TravelerData; +import org.uic.barcode.ticket.api.asn.omv2.TravelerType; +import org.uic.barcode.ticket.api.asn.omv2.UicRailTicketData; + + + public class OpenTicketTimeZoneTestTicketV2 { + + public static UicRailTicketData getUicTestTicket() { + UicRailTicketData ticket = new UicRailTicketData(); + populateTicket(ticket); + return ticket; + } + + + private static void populateTicket(UicRailTicketData ticket) { + + ticket.setControlDetail(new ControlData()); + populate(ticket.getControlDetail()); + + + ticket.setIssuingDetail(new IssuingData()); + populateIssuingData(ticket.getIssuingDetail()); + + TravelerData td = new TravelerData(); + populateTravelerData(td); + ticket.setTravelerDetail(td); + + SequenceOfDocumentData ds = new SequenceOfDocumentData(); + + + //OpenTicket + DocumentData do1 = new DocumentData(); + addOpenTicketData(do1); + ds.add(do1); + + + ticket.setTransportDocument(ds); + + SequenceOfExtensionData ed = new SequenceOfExtensionData(); + populateExtensionSequence(ed); + ticket.setExtension(ed); + + } + + + + private static void addOpenTicketData(DocumentData dd) { + TokenType to = new TokenType(); + to.setTokenProviderIA5("VDV"); + byte[] ba = { (byte) 0x82, (byte) 0xDA }; + to.setToken(ba); + dd.setToken(to); + + TicketDetailData tdd = new TicketDetailData(); + OpenTicketData otd = new OpenTicketData(); + otd.setInfoText("openTicketInfo"); + otd.setClassCode(TravelClassType.first); + otd.setReturnIncluded(false); + otd.setValidFromDay(10L); + otd.setValidFromTime(0L); + otd.setValidUntilDay(10L); + otd.setValidUntilTime(1439L); + SequenceOfActivatedDays s = new SequenceOfActivatedDays(); + otd.setActivatedDay(s); + s.add(0L); + tdd.setOpenTicket(otd); + dd.setTicket(tdd); + } + + + + private static void populateTravelerData(TravelerData td) { + td.setGroupName("myGroup"); + SequenceOfTravelerType trs = new SequenceOfTravelerType(); + TravelerType tr = new TravelerType(); + tr.setIdCard("12345"); + tr.setFirstName("John"); + tr.setSecondName("Dow"); + tr.setTicketHolder(true); + SequenceOfCustomerStatusType ts = new SequenceOfCustomerStatusType(); + CustomerStatusType cst = new CustomerStatusType(); + cst.setCustomerStatusDescr("senior"); + ts.add(cst); + tr.setStatus(ts); + trs.add(tr); + td.setTraveler(trs); + } + + private static void populateIssuingData(IssuingData issuingDetail) { + issuingDetail.setIssuingYear(2018L); + issuingDetail.setIssuingDay(1L); + issuingDetail.setIssuerPNR("issuerTestPNR"); + issuingDetail.setSpecimen(true); + issuingDetail.setSecurePaperTicket(false); + issuingDetail.setActivated(true); + issuingDetail.setIssuedOnLine(12L); + } + + + private static void populateExtensionSequence(SequenceOfExtensionData ed) { + ExtensionData ed1 = new ExtensionData(); + ed1.setExtensionId("1"); + byte[] ba1 = { (byte) 0x82, (byte) 0xDA }; + ed1.setExtensionData(ba1); + ExtensionData ed2 = new ExtensionData(); + ed2.setExtensionId("2"); + byte[] ba2 = { (byte) 0x83, (byte) 0xDA }; + ed2.setExtensionData(ba2); + ed.add(ed1); + ed.add(ed2); + } + + private static void populate(ControlData controlDetail) { + controlDetail.infoText = "cd"; + controlDetail.setAgeCheckRequired(false); + controlDetail.setIdentificationByIdCard(false); + controlDetail.setIdentificationByPassportId(false); + controlDetail.setOnlineValidationRequired(false); + controlDetail.setPassportValidationRequired(false); + controlDetail.setReductionCardCheckRequired(false); + controlDetail.setIdentificationByCardReference(new SequenceOfCardReferenceType()); + controlDetail.getIdentificationByCardReference().add(populateCardRefrence()); + } + + + /* + { + trailingCardIdNum 100 + } + */ + private static CardReferenceType populateCardRefrence() { + CardReferenceType cr = new CardReferenceType(); + cr.setTrailingCardIdNum(100L); + return cr; + } + + + + } diff --git a/src/test/java/org/uic/barcode/ticket/api/test/testtickets/ParkingTestTicketV1.java b/src/test/java/org/uic/barcode/ticket/api/test/testtickets/ParkingTestTicketV1.java new file mode 100644 index 0000000..ad70424 --- /dev/null +++ b/src/test/java/org/uic/barcode/ticket/api/test/testtickets/ParkingTestTicketV1.java @@ -0,0 +1,147 @@ +package org.uic.barcode.ticket.api.test.testtickets; + +import org.uic.barcode.ticket.api.asn.omv1.CardReferenceType; +import org.uic.barcode.ticket.api.asn.omv1.ControlData; +import org.uic.barcode.ticket.api.asn.omv1.CustomerStatusType; +import org.uic.barcode.ticket.api.asn.omv1.DocumentData; +import org.uic.barcode.ticket.api.asn.omv1.ExtensionData; +import org.uic.barcode.ticket.api.asn.omv1.IssuingData; +import org.uic.barcode.ticket.api.asn.omv1.ParkingGroundData; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCardReferenceType; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCustomerStatusType; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfDocumentData; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfExtensionData; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTravelerType; +import org.uic.barcode.ticket.api.asn.omv1.TicketDetailData; +import org.uic.barcode.ticket.api.asn.omv1.TravelerData; +import org.uic.barcode.ticket.api.asn.omv1.TravelerType; +import org.uic.barcode.ticket.api.asn.omv1.UicRailTicketData; + + public class ParkingTestTicketV1 { + + public static UicRailTicketData getUicTestTicket() { + UicRailTicketData ticket = new UicRailTicketData(); + populateTicket(ticket); + return ticket; + } + + + + private static void populateTicket(UicRailTicketData ticket) { + + ticket.setControlDetail(new ControlData()); + populate(ticket.getControlDetail()); + + + ticket.setIssuingDetail(new IssuingData()); + populateIssuingData(ticket.getIssuingDetail()); + + TravelerData td = new TravelerData(); + populateTravelerData(td); + ticket.setTravelerDetail(td); + + SequenceOfDocumentData ds = new SequenceOfDocumentData(); + + + //FipTicket + DocumentData do1 = new DocumentData(); + addTicket(do1); + ds.add(do1); + + + ticket.setTransportDocument(ds); + + SequenceOfExtensionData ed = new SequenceOfExtensionData(); + populateExtensionSequence(ed); + ticket.setExtension(ed); + + } + + + //issue date: 04-03-2021 12:30 UTC + private static void populateIssuingData(IssuingData issuingDetail) { + issuingDetail.setIssuingYear(2021L); + issuingDetail.setIssuingTime(750L); + issuingDetail.setIssuingDay(63L); + issuingDetail.setIssuerPNR("issuerTestPNR"); + issuingDetail.setSpecimen(true); + issuingDetail.setSecurePaperTicket(false); + issuingDetail.setActivated(true); + issuingDetail.setIssuedOnLine(12L); + } + + private static void addTicket(DocumentData dd) { + + TicketDetailData tdd = new TicketDetailData(); + ParkingGroundData ticket = new ParkingGroundData(); + ticket.setFromParkingDate(01L); + ticket.setToParkingDate(01L); + ticket.setReferenceIA5("ACHE12345"); + ticket.setLocation("Parking Frankfurt Main West"); + ticket.setNumberPlate("AA-DE-12345"); + ticket.setStationNum(8000001L); + ticket.setPrice(500L); + ticket.setParkingGroundId("P47623"); + ticket.setSpecialInformation("outdoor parking"); + + tdd.setParkingGround(ticket); + dd.setTicket(tdd); + } + + + + private static void populateTravelerData(TravelerData td) { + SequenceOfTravelerType trs = new SequenceOfTravelerType(); + TravelerType tr = new TravelerType(); + tr.setIdCard("12345"); + tr.setFirstName("John"); + tr.setSecondName("Dow"); + tr.setTicketHolder(true); + SequenceOfCustomerStatusType ts = new SequenceOfCustomerStatusType(); + CustomerStatusType cst = new CustomerStatusType(); + cst.setCustomerStatusDescr("employee"); + ts.add(cst); + tr.setStatus(ts); + trs.add(tr); + td.setTraveler(trs); + } + + + + + + private static void populateExtensionSequence(SequenceOfExtensionData ed) { + ExtensionData ed1 = new ExtensionData(); + ed1.setExtensionId("1"); + byte[] ba1 = { (byte) 0x82, (byte) 0xDA }; + ed1.setExtensionData(ba1); + ExtensionData ed2 = new ExtensionData(); + ed2.setExtensionId("2"); + byte[] ba2 = { (byte) 0x83, (byte) 0xDA }; + ed2.setExtensionData(ba2); + ed.add(ed1); + ed.add(ed2); + } + + private static void populate(ControlData controlDetail) { + controlDetail.infoText = "cd"; + controlDetail.setAgeCheckRequired(false); + controlDetail.setIdentificationByIdCard(false); + controlDetail.setIdentificationByPassportId(false); + controlDetail.setOnlineValidationRequired(false); + controlDetail.setPassportValidationRequired(false); + controlDetail.setReductionCardCheckRequired(false); + controlDetail.setIdentificationByCardReference(new SequenceOfCardReferenceType()); + controlDetail.getIdentificationByCardReference().add(populateCardRefrence()); + } + + + private static CardReferenceType populateCardRefrence() { + CardReferenceType cr = new CardReferenceType(); + cr.setTrailingCardIdNum(100L); + return cr; + } + + + + } diff --git a/src/test/java/org/uic/barcode/ticket/api/test/testtickets/ParkingTestTicketV2.java b/src/test/java/org/uic/barcode/ticket/api/test/testtickets/ParkingTestTicketV2.java new file mode 100644 index 0000000..99d9711 --- /dev/null +++ b/src/test/java/org/uic/barcode/ticket/api/test/testtickets/ParkingTestTicketV2.java @@ -0,0 +1,147 @@ +package org.uic.barcode.ticket.api.test.testtickets; + +import org.uic.barcode.ticket.api.asn.omv2.CardReferenceType; +import org.uic.barcode.ticket.api.asn.omv2.ControlData; +import org.uic.barcode.ticket.api.asn.omv2.CustomerStatusType; +import org.uic.barcode.ticket.api.asn.omv2.DocumentData; +import org.uic.barcode.ticket.api.asn.omv2.ExtensionData; +import org.uic.barcode.ticket.api.asn.omv2.IssuingData; +import org.uic.barcode.ticket.api.asn.omv2.ParkingGroundData; +import org.uic.barcode.ticket.api.asn.omv2.SequenceOfCardReferenceType; +import org.uic.barcode.ticket.api.asn.omv2.SequenceOfCustomerStatusType; +import org.uic.barcode.ticket.api.asn.omv2.SequenceOfDocumentData; +import org.uic.barcode.ticket.api.asn.omv2.SequenceOfExtensionData; +import org.uic.barcode.ticket.api.asn.omv2.SequenceOfTravelerType; +import org.uic.barcode.ticket.api.asn.omv2.TicketDetailData; +import org.uic.barcode.ticket.api.asn.omv2.TravelerData; +import org.uic.barcode.ticket.api.asn.omv2.TravelerType; +import org.uic.barcode.ticket.api.asn.omv2.UicRailTicketData; + + public class ParkingTestTicketV2 { + + public static UicRailTicketData getUicTestTicket() { + UicRailTicketData ticket = new UicRailTicketData(); + populateTicket(ticket); + return ticket; + } + + + + private static void populateTicket(UicRailTicketData ticket) { + + ticket.setControlDetail(new ControlData()); + populate(ticket.getControlDetail()); + + + ticket.setIssuingDetail(new IssuingData()); + populateIssuingData(ticket.getIssuingDetail()); + + TravelerData td = new TravelerData(); + populateTravelerData(td); + ticket.setTravelerDetail(td); + + SequenceOfDocumentData ds = new SequenceOfDocumentData(); + + + //FipTicket + DocumentData do1 = new DocumentData(); + addTicket(do1); + ds.add(do1); + + + ticket.setTransportDocument(ds); + + SequenceOfExtensionData ed = new SequenceOfExtensionData(); + populateExtensionSequence(ed); + ticket.setExtension(ed); + + } + + + //issue date: 04-03-2021 12:30 UTC + private static void populateIssuingData(IssuingData issuingDetail) { + issuingDetail.setIssuingYear(2021L); + issuingDetail.setIssuingTime(750L); + issuingDetail.setIssuingDay(63L); + issuingDetail.setIssuerPNR("issuerTestPNR"); + issuingDetail.setSpecimen(true); + issuingDetail.setSecurePaperTicket(false); + issuingDetail.setActivated(true); + issuingDetail.setIssuedOnLine(12L); + } + + private static void addTicket(DocumentData dd) { + + TicketDetailData tdd = new TicketDetailData(); + ParkingGroundData ticket = new ParkingGroundData(); + ticket.setFromParkingDate(01L); + ticket.setToParkingDate(01L); + ticket.setReferenceIA5("ACHE12345"); + ticket.setLocation("Parking Frankfurt Main West"); + ticket.setNumberPlate("AA-DE-12345"); + ticket.setStationNum(8000001L); + ticket.setPrice(500L); + ticket.setParkingGroundId("P47623"); + ticket.setSpecialInformation("outdoor parking"); + + tdd.setParkingGround(ticket); + dd.setTicket(tdd); + } + + + + private static void populateTravelerData(TravelerData td) { + SequenceOfTravelerType trs = new SequenceOfTravelerType(); + TravelerType tr = new TravelerType(); + tr.setIdCard("12345"); + tr.setFirstName("John"); + tr.setSecondName("Dow"); + tr.setTicketHolder(true); + SequenceOfCustomerStatusType ts = new SequenceOfCustomerStatusType(); + CustomerStatusType cst = new CustomerStatusType(); + cst.setCustomerStatusDescr("employee"); + ts.add(cst); + tr.setStatus(ts); + trs.add(tr); + td.setTraveler(trs); + } + + + + + + private static void populateExtensionSequence(SequenceOfExtensionData ed) { + ExtensionData ed1 = new ExtensionData(); + ed1.setExtensionId("1"); + byte[] ba1 = { (byte) 0x82, (byte) 0xDA }; + ed1.setExtensionData(ba1); + ExtensionData ed2 = new ExtensionData(); + ed2.setExtensionId("2"); + byte[] ba2 = { (byte) 0x83, (byte) 0xDA }; + ed2.setExtensionData(ba2); + ed.add(ed1); + ed.add(ed2); + } + + private static void populate(ControlData controlDetail) { + controlDetail.infoText = "cd"; + controlDetail.setAgeCheckRequired(false); + controlDetail.setIdentificationByIdCard(false); + controlDetail.setIdentificationByPassportId(false); + controlDetail.setOnlineValidationRequired(false); + controlDetail.setPassportValidationRequired(false); + controlDetail.setReductionCardCheckRequired(false); + controlDetail.setIdentificationByCardReference(new SequenceOfCardReferenceType()); + controlDetail.getIdentificationByCardReference().add(populateCardRefrence()); + } + + + private static CardReferenceType populateCardRefrence() { + CardReferenceType cr = new CardReferenceType(); + cr.setTrailingCardIdNum(100L); + return cr; + } + + + + } diff --git a/src/test/java/org/uic/barcode/ticket/api/test/testtickets/PassTestTicketV1.java b/src/test/java/org/uic/barcode/ticket/api/test/testtickets/PassTestTicketV1.java new file mode 100644 index 0000000..a165308 --- /dev/null +++ b/src/test/java/org/uic/barcode/ticket/api/test/testtickets/PassTestTicketV1.java @@ -0,0 +1,150 @@ +package org.uic.barcode.ticket.api.test.testtickets; + +import org.uic.barcode.ticket.api.asn.omv1.CardReferenceType; +import org.uic.barcode.ticket.api.asn.omv1.ControlData; +import org.uic.barcode.ticket.api.asn.omv1.CustomerStatusType; +import org.uic.barcode.ticket.api.asn.omv1.DocumentData; +import org.uic.barcode.ticket.api.asn.omv1.ExtensionData; +import org.uic.barcode.ticket.api.asn.omv1.IssuingData; +import org.uic.barcode.ticket.api.asn.omv1.LinkMode; +import org.uic.barcode.ticket.api.asn.omv1.PassData; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCardReferenceType; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCustomerStatusType; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfDocumentData; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfExtensionData; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTicketLinkType; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTravelerType; +import org.uic.barcode.ticket.api.asn.omv1.TicketDetailData; +import org.uic.barcode.ticket.api.asn.omv1.TicketLinkType; +import org.uic.barcode.ticket.api.asn.omv1.TicketType; +import org.uic.barcode.ticket.api.asn.omv1.TravelClassType; +import org.uic.barcode.ticket.api.asn.omv1.TravelerData; +import org.uic.barcode.ticket.api.asn.omv1.TravelerType; +import org.uic.barcode.ticket.api.asn.omv1.UicRailTicketData; + + public class PassTestTicketV1 { + + public static UicRailTicketData getUicTestTicket() { + UicRailTicketData ticket = new UicRailTicketData(); + populateTicket(ticket); + return ticket; + } + + + private static void populateTicket(UicRailTicketData ticket) { + + ticket.setControlDetail(new ControlData()); + populate(ticket.getControlDetail()); + + + ticket.setIssuingDetail(new IssuingData()); + populateIssuingData(ticket.getIssuingDetail()); + + TravelerData td = new TravelerData(); + populateTravelerData(td); + ticket.setTravelerDetail(td); + + SequenceOfDocumentData ds = new SequenceOfDocumentData(); + + + //OpenTicket + DocumentData do1 = new DocumentData(); + addPass(do1); + ds.add(do1); + + ticket.setTransportDocument(ds); + + SequenceOfExtensionData ed = new SequenceOfExtensionData(); + populateExtensionSequence(ed); + ticket.setExtension(ed); + + } + + + private static void addPass(DocumentData dd) { + + TicketDetailData tdd = new TicketDetailData(); + PassData otd = new PassData(); + otd.setInfoText("pass"); + otd.setClassCode(TravelClassType.first); + otd.setPassDescription("ONE COUNTRY"); + tdd.setPass(otd); + dd.setTicket(tdd); + } + + + private static void populateTravelerData(TravelerData td) { + td.setGroupName("myGroup"); + SequenceOfTravelerType trs = new SequenceOfTravelerType(); + TravelerType tr = new TravelerType(); + tr.setIdCard("12345"); + tr.setFirstName("John"); + tr.setSecondName("Dow"); + tr.setTicketHolder(true); + SequenceOfCustomerStatusType ts = new SequenceOfCustomerStatusType(); + CustomerStatusType cst = new CustomerStatusType(); + cst.setCustomerStatusDescr("senior"); + ts.add(cst); + tr.setStatus(ts); + trs.add(tr); + td.setTraveler(trs); + } + + private static void populateIssuingData(IssuingData issuingDetail) { + issuingDetail.setIssuingYear(2018L); + issuingDetail.setIssuingDay(1L); + issuingDetail.setIssuerPNR("issuerTestPNR"); + issuingDetail.setSpecimen(true); + issuingDetail.setSecurePaperTicket(false); + issuingDetail.setActivated(true); + issuingDetail.setIssuedOnLine(12L); + } + + private static void populateExtensionSequence(SequenceOfExtensionData ed) { + ExtensionData ed1 = new ExtensionData(); + ed1.setExtensionId("1"); + byte[] ba1 = { (byte) 0x82, (byte) 0xDA }; + ed1.setExtensionData(ba1); + ExtensionData ed2 = new ExtensionData(); + ed2.setExtensionId("2"); + byte[] ba2 = { (byte) 0x83, (byte) 0xDA }; + ed2.setExtensionData(ba2); + ed.add(ed1); + ed.add(ed2); + } + + private static void populate(ControlData controlDetail) { + controlDetail.infoText = "cd"; + controlDetail.setAgeCheckRequired(false); + controlDetail.setIdentificationByIdCard(false); + controlDetail.setIdentificationByPassportId(false); + controlDetail.setOnlineValidationRequired(false); + controlDetail.setPassportValidationRequired(false); + controlDetail.setReductionCardCheckRequired(false); + controlDetail.setIdentificationByCardReference(new SequenceOfCardReferenceType()); + controlDetail.getIdentificationByCardReference().add(populateCardRefrence()); + SequenceOfTicketLinkType sit = new SequenceOfTicketLinkType(); + populateLinkedTickets(sit); + controlDetail.setIncludedTickets(sit); + } + + private static void populateLinkedTickets(SequenceOfTicketLinkType sequenceOfTicketLinkType) { + TicketLinkType tlt = new TicketLinkType(); + tlt.productOwnerIA5="test"; + tlt.setTicketType(TicketType.pass); + tlt.setIssuerPNR("PNR"); + tlt.setReferenceIA5("UED12435867"); + tlt.setLinkMode(LinkMode.onlyValidInCombination); + tlt.setIssuerName("OEBB"); + sequenceOfTicketLinkType.add(tlt); + } + + private static CardReferenceType populateCardRefrence() { + CardReferenceType cr = new CardReferenceType(); + cr.setTrailingCardIdNum(100L); + return cr; + } + + + + } diff --git a/src/test/java/org/uic/barcode/ticket/api/test/testtickets/PassTimeZoneTestTicketCase1V1.java b/src/test/java/org/uic/barcode/ticket/api/test/testtickets/PassTimeZoneTestTicketCase1V1.java new file mode 100644 index 0000000..8bea50a --- /dev/null +++ b/src/test/java/org/uic/barcode/ticket/api/test/testtickets/PassTimeZoneTestTicketCase1V1.java @@ -0,0 +1,168 @@ +package org.uic.barcode.ticket.api.test.testtickets; + +import org.uic.barcode.ticket.api.asn.omv1.CardReferenceType; +import org.uic.barcode.ticket.api.asn.omv1.ControlData; +import org.uic.barcode.ticket.api.asn.omv1.CustomerStatusType; +import org.uic.barcode.ticket.api.asn.omv1.DocumentData; +import org.uic.barcode.ticket.api.asn.omv1.ExtensionData; +import org.uic.barcode.ticket.api.asn.omv1.IssuingData; +import org.uic.barcode.ticket.api.asn.omv1.LinkMode; +import org.uic.barcode.ticket.api.asn.omv1.PassData; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfActivatedDays; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCardReferenceType; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCustomerStatusType; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfDocumentData; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfExtensionData; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTicketLinkType; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTravelerType; +import org.uic.barcode.ticket.api.asn.omv1.TicketDetailData; +import org.uic.barcode.ticket.api.asn.omv1.TicketLinkType; +import org.uic.barcode.ticket.api.asn.omv1.TicketType; +import org.uic.barcode.ticket.api.asn.omv1.TravelClassType; +import org.uic.barcode.ticket.api.asn.omv1.TravelerData; +import org.uic.barcode.ticket.api.asn.omv1.TravelerType; +import org.uic.barcode.ticket.api.asn.omv1.UicRailTicketData; + + public class PassTimeZoneTestTicketCase1V1 { + + public static UicRailTicketData getUicTestTicket() { + UicRailTicketData ticket = new UicRailTicketData(); + populateTicket(ticket); + return ticket; + } + + + + private static void populateTicket(UicRailTicketData ticket) { + + ticket.setControlDetail(new ControlData()); + populate(ticket.getControlDetail()); + + + ticket.setIssuingDetail(new IssuingData()); + populateIssuingData(ticket.getIssuingDetail()); + + TravelerData td = new TravelerData(); + populateTravelerData(td); + ticket.setTravelerDetail(td); + + SequenceOfDocumentData ds = new SequenceOfDocumentData(); + + + //OpenTicket + DocumentData do1 = new DocumentData(); + addPass1(do1); + ds.add(do1); + + + ticket.setTransportDocument(ds); + + SequenceOfExtensionData ed = new SequenceOfExtensionData(); + populateExtensionSequence(ed); + ticket.setExtension(ed); + + } + + + //issue date: 04-03-2021 12:30 UTC + private static void populateIssuingData(IssuingData issuingDetail) { + issuingDetail.setIssuingYear(2021L); + issuingDetail.setIssuingTime(750L); + issuingDetail.setIssuingDay(63L); + issuingDetail.setIssuerPNR("issuerTestPNR"); + issuingDetail.setSpecimen(true); + issuingDetail.setSecurePaperTicket(false); + issuingDetail.setActivated(true); + issuingDetail.setIssuedOnLine(12L); + } + + private static void addPass1(DocumentData dd) { + + TicketDetailData tdd = new TicketDetailData(); + PassData otd = new PassData(); + otd.setInfoText("pass"); + otd.setClassCode(TravelClassType.first); + otd.setPassDescription("ONE COUNTRY"); + otd.setValidFromDay(10L); + otd.setValidFromTime(0L); + otd.setValidUntilDay(10L); + otd.setValidUntilTime(1439L); + SequenceOfActivatedDays s = new SequenceOfActivatedDays(); + otd.setActivatedDay(s); + s.add(0L); + + tdd.setPass(otd); + dd.setTicket(tdd); + } + + + + private static void populateTravelerData(TravelerData td) { + td.setGroupName("myGroup"); + SequenceOfTravelerType trs = new SequenceOfTravelerType(); + TravelerType tr = new TravelerType(); + tr.setIdCard("12345"); + tr.setFirstName("John"); + tr.setSecondName("Dow"); + tr.setTicketHolder(true); + SequenceOfCustomerStatusType ts = new SequenceOfCustomerStatusType(); + CustomerStatusType cst = new CustomerStatusType(); + cst.setCustomerStatusDescr("senior"); + ts.add(cst); + tr.setStatus(ts); + trs.add(tr); + td.setTraveler(trs); + } + + + + + + private static void populateExtensionSequence(SequenceOfExtensionData ed) { + ExtensionData ed1 = new ExtensionData(); + ed1.setExtensionId("1"); + byte[] ba1 = { (byte) 0x82, (byte) 0xDA }; + ed1.setExtensionData(ba1); + ExtensionData ed2 = new ExtensionData(); + ed2.setExtensionId("2"); + byte[] ba2 = { (byte) 0x83, (byte) 0xDA }; + ed2.setExtensionData(ba2); + ed.add(ed1); + ed.add(ed2); + } + + private static void populate(ControlData controlDetail) { + controlDetail.infoText = "cd"; + controlDetail.setAgeCheckRequired(false); + controlDetail.setIdentificationByIdCard(false); + controlDetail.setIdentificationByPassportId(false); + controlDetail.setOnlineValidationRequired(false); + controlDetail.setPassportValidationRequired(false); + controlDetail.setReductionCardCheckRequired(false); + controlDetail.setIdentificationByCardReference(new SequenceOfCardReferenceType()); + controlDetail.getIdentificationByCardReference().add(populateCardRefrence()); + SequenceOfTicketLinkType sit = new SequenceOfTicketLinkType(); + populateLinkedTickets(sit); + controlDetail.setIncludedTickets(sit); + } + + private static void populateLinkedTickets(SequenceOfTicketLinkType sequenceOfTicketLinkType) { + TicketLinkType tlt = new TicketLinkType(); + tlt.productOwnerIA5="test"; + tlt.setTicketType(TicketType.pass); + tlt.setIssuerPNR("PNR"); + tlt.setReferenceIA5("UED12435867"); + tlt.setLinkMode(LinkMode.onlyValidInCombination); + tlt.setIssuerName("OEBB"); + sequenceOfTicketLinkType.add(tlt); + } + + private static CardReferenceType populateCardRefrence() { + CardReferenceType cr = new CardReferenceType(); + cr.setTrailingCardIdNum(100L); + return cr; + } + + + + } diff --git a/src/test/java/org/uic/barcode/ticket/api/test/testtickets/PassTimeZoneTestTicketCase2V1.java b/src/test/java/org/uic/barcode/ticket/api/test/testtickets/PassTimeZoneTestTicketCase2V1.java new file mode 100644 index 0000000..cc30e72 --- /dev/null +++ b/src/test/java/org/uic/barcode/ticket/api/test/testtickets/PassTimeZoneTestTicketCase2V1.java @@ -0,0 +1,165 @@ +package org.uic.barcode.ticket.api.test.testtickets; + +import org.uic.barcode.ticket.api.asn.omv1.CardReferenceType; +import org.uic.barcode.ticket.api.asn.omv1.ControlData; +import org.uic.barcode.ticket.api.asn.omv1.CustomerStatusType; +import org.uic.barcode.ticket.api.asn.omv1.DocumentData; +import org.uic.barcode.ticket.api.asn.omv1.ExtensionData; +import org.uic.barcode.ticket.api.asn.omv1.IssuingData; +import org.uic.barcode.ticket.api.asn.omv1.LinkMode; +import org.uic.barcode.ticket.api.asn.omv1.PassData; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfActivatedDays; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCardReferenceType; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCustomerStatusType; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfDocumentData; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfExtensionData; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTicketLinkType; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTravelerType; +import org.uic.barcode.ticket.api.asn.omv1.TicketDetailData; +import org.uic.barcode.ticket.api.asn.omv1.TicketLinkType; +import org.uic.barcode.ticket.api.asn.omv1.TicketType; +import org.uic.barcode.ticket.api.asn.omv1.TravelClassType; +import org.uic.barcode.ticket.api.asn.omv1.TravelerData; +import org.uic.barcode.ticket.api.asn.omv1.TravelerType; +import org.uic.barcode.ticket.api.asn.omv1.UicRailTicketData; + + public class PassTimeZoneTestTicketCase2V1 { + + public static UicRailTicketData getUicTestTicket() { + UicRailTicketData ticket = new UicRailTicketData(); + populateTicket(ticket); + return ticket; + } + + + + private static void populateTicket(UicRailTicketData ticket) { + + ticket.setControlDetail(new ControlData()); + populate(ticket.getControlDetail()); + + + ticket.setIssuingDetail(new IssuingData()); + populateIssuingData(ticket.getIssuingDetail()); + + TravelerData td = new TravelerData(); + populateTravelerData(td); + ticket.setTravelerDetail(td); + + SequenceOfDocumentData ds = new SequenceOfDocumentData(); + + + //OpenTicket + DocumentData do1 = new DocumentData(); + addPass1(do1); + + ds.add(do1); + + + ticket.setTransportDocument(ds); + + SequenceOfExtensionData ed = new SequenceOfExtensionData(); + populateExtensionSequence(ed); + ticket.setExtension(ed); + + } + + + //issue date: 04-03-2021 00:30 UTC + private static void populateIssuingData(IssuingData issuingDetail) { + issuingDetail.setIssuingYear(2021L); + issuingDetail.setIssuingTime(30L); + issuingDetail.setIssuingDay(63L); + issuingDetail.setIssuerPNR("issuerTestPNR"); + issuingDetail.setSpecimen(true); + issuingDetail.setSecurePaperTicket(false); + issuingDetail.setActivated(true); + issuingDetail.setIssuedOnLine(12L); + } + + private static void addPass1(DocumentData dd) { + + TicketDetailData tdd = new TicketDetailData(); + PassData otd = new PassData(); + otd.setInfoText("pass"); + otd.setClassCode(TravelClassType.first); + otd.setPassDescription("ONE COUNTRY"); + otd.setValidFromDay(10L); + otd.setValidFromTime(0L); + otd.setValidUntilDay(10L); + otd.setValidUntilTime(1439L); + SequenceOfActivatedDays s = new SequenceOfActivatedDays(); + otd.setActivatedDay(s); + s.add(0L); + + tdd.setPass(otd); + dd.setTicket(tdd); + } + + + private static void populateTravelerData(TravelerData td) { + td.setGroupName("myGroup"); + SequenceOfTravelerType trs = new SequenceOfTravelerType(); + TravelerType tr = new TravelerType(); + tr.setIdCard("12345"); + tr.setFirstName("John"); + tr.setSecondName("Dow"); + tr.setTicketHolder(true); + SequenceOfCustomerStatusType ts = new SequenceOfCustomerStatusType(); + CustomerStatusType cst = new CustomerStatusType(); + cst.setCustomerStatusDescr("senior"); + ts.add(cst); + tr.setStatus(ts); + trs.add(tr); + td.setTraveler(trs); + } + + + private static void populateExtensionSequence(SequenceOfExtensionData ed) { + ExtensionData ed1 = new ExtensionData(); + ed1.setExtensionId("1"); + byte[] ba1 = { (byte) 0x82, (byte) 0xDA }; + ed1.setExtensionData(ba1); + ExtensionData ed2 = new ExtensionData(); + ed2.setExtensionId("2"); + byte[] ba2 = { (byte) 0x83, (byte) 0xDA }; + ed2.setExtensionData(ba2); + ed.add(ed1); + ed.add(ed2); + } + + private static void populate(ControlData controlDetail) { + controlDetail.infoText = "cd"; + controlDetail.setAgeCheckRequired(false); + controlDetail.setIdentificationByIdCard(false); + controlDetail.setIdentificationByPassportId(false); + controlDetail.setOnlineValidationRequired(false); + controlDetail.setPassportValidationRequired(false); + controlDetail.setReductionCardCheckRequired(false); + controlDetail.setIdentificationByCardReference(new SequenceOfCardReferenceType()); + controlDetail.getIdentificationByCardReference().add(populateCardRefrence()); + SequenceOfTicketLinkType sit = new SequenceOfTicketLinkType(); + populateLinkedTickets(sit); + controlDetail.setIncludedTickets(sit); + } + + private static void populateLinkedTickets(SequenceOfTicketLinkType sequenceOfTicketLinkType) { + TicketLinkType tlt = new TicketLinkType(); + tlt.productOwnerIA5="test"; + tlt.setTicketType(TicketType.pass); + tlt.setIssuerPNR("PNR"); + tlt.setReferenceIA5("UED12435867"); + tlt.setLinkMode(LinkMode.onlyValidInCombination); + tlt.setIssuerName("OEBB"); + sequenceOfTicketLinkType.add(tlt); + } + + private static CardReferenceType populateCardRefrence() { + CardReferenceType cr = new CardReferenceType(); + cr.setTrailingCardIdNum(100L); + return cr; + } + + + + } diff --git a/src/test/java/org/uic/barcode/ticket/api/test/testtickets/PassTimeZoneTestTicketCase3V1.java b/src/test/java/org/uic/barcode/ticket/api/test/testtickets/PassTimeZoneTestTicketCase3V1.java new file mode 100644 index 0000000..715a292 --- /dev/null +++ b/src/test/java/org/uic/barcode/ticket/api/test/testtickets/PassTimeZoneTestTicketCase3V1.java @@ -0,0 +1,204 @@ +package org.uic.barcode.ticket.api.test.testtickets; + +import org.uic.barcode.ticket.api.asn.omv1.CardReferenceType; +import org.uic.barcode.ticket.api.asn.omv1.ControlData; +import org.uic.barcode.ticket.api.asn.omv1.CustomerStatusType; +import org.uic.barcode.ticket.api.asn.omv1.DocumentData; +import org.uic.barcode.ticket.api.asn.omv1.ExtensionData; +import org.uic.barcode.ticket.api.asn.omv1.IssuingData; +import org.uic.barcode.ticket.api.asn.omv1.LinkMode; +import org.uic.barcode.ticket.api.asn.omv1.PassData; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfActivatedDays; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCardReferenceType; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCustomerStatusType; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfDocumentData; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfExtensionData; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTicketLinkType; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTravelerType; +import org.uic.barcode.ticket.api.asn.omv1.TicketDetailData; +import org.uic.barcode.ticket.api.asn.omv1.TicketLinkType; +import org.uic.barcode.ticket.api.asn.omv1.TicketType; +import org.uic.barcode.ticket.api.asn.omv1.TravelClassType; +import org.uic.barcode.ticket.api.asn.omv1.TravelerData; +import org.uic.barcode.ticket.api.asn.omv1.TravelerType; +import org.uic.barcode.ticket.api.asn.omv1.UicRailTicketData; + + public class PassTimeZoneTestTicketCase3V1 { + + public static UicRailTicketData getUicTestTicket() { + UicRailTicketData ticket = new UicRailTicketData(); + populateTicket(ticket); + return ticket; + } + + /* + * + * Case 1: + issue date: 04-03-2021 12:30 UTC + issuingYear: 2021 + issuingDay: 63 + issuingTime: 750 + validFromDay: 10 + activatedDays: [0] + utcOffset: 0 + + expected: activated for 04-03-2021 + 10 + 0 00:00 UTC --> 14-03-2021 + + Case 2: + issue date: 04-03-2021 00:30 UTC + issuingYear: 2021 + issuingDay: 63 + issuingTime: 30 + validFromDay: 10 + activatedDays: [0] + utcOffset: 0 + + expected: activated for 04-03-2021 + 10 + 0 00:00 UTC --> 14-03-2021 + + Case 3: + issue date: 03-03-2021 23:30 UTC + issuingYear: 2021 + issuingDay: 62 + issuingTime: 1410 + validFromDay: 11 + activatedDays: [0] + + expected: activated for 03-03-2021 + 11 + 0 00:00 UTC --> 14-03-2021 + + + */ + + + + private static void populateTicket(UicRailTicketData ticket) { + + ticket.setControlDetail(new ControlData()); + populate(ticket.getControlDetail()); + + + ticket.setIssuingDetail(new IssuingData()); + populateIssuingData(ticket.getIssuingDetail()); + + TravelerData td = new TravelerData(); + populateTravelerData(td); + ticket.setTravelerDetail(td); + + SequenceOfDocumentData ds = new SequenceOfDocumentData(); + + + //OpenTicket + DocumentData do1 = new DocumentData(); + addPass1(do1); + ds.add(do1); + + + ticket.setTransportDocument(ds); + + SequenceOfExtensionData ed = new SequenceOfExtensionData(); + populateExtensionSequence(ed); + ticket.setExtension(ed); + + } + + + //03-03-2021 23:30 UTC + private static void populateIssuingData(IssuingData issuingDetail) { + issuingDetail.setIssuingYear(2021L); + issuingDetail.setIssuingTime(1410L); + issuingDetail.setIssuingDay(62L); + issuingDetail.setIssuerPNR("issuerTestPNR"); + issuingDetail.setSpecimen(true); + issuingDetail.setSecurePaperTicket(false); + issuingDetail.setActivated(true); + issuingDetail.setIssuedOnLine(12L); + } + + private static void addPass1(DocumentData dd) { + + TicketDetailData tdd = new TicketDetailData(); + PassData otd = new PassData(); + otd.setInfoText("pass"); + otd.setClassCode(TravelClassType.first); + otd.setPassDescription("ONE COUNTRY"); + otd.setValidFromDay(11L); + otd.setValidFromTime(0L); + otd.setValidUntilDay(10L); + otd.setValidUntilTime(1439L); + SequenceOfActivatedDays s = new SequenceOfActivatedDays(); + otd.setActivatedDay(s); + s.add(0L); + + tdd.setPass(otd); + dd.setTicket(tdd); + } + + + private static void populateTravelerData(TravelerData td) { + td.setGroupName("myGroup"); + SequenceOfTravelerType trs = new SequenceOfTravelerType(); + TravelerType tr = new TravelerType(); + tr.setIdCard("12345"); + tr.setFirstName("John"); + tr.setSecondName("Dow"); + tr.setTicketHolder(true); + SequenceOfCustomerStatusType ts = new SequenceOfCustomerStatusType(); + CustomerStatusType cst = new CustomerStatusType(); + cst.setCustomerStatusDescr("senior"); + ts.add(cst); + tr.setStatus(ts); + trs.add(tr); + td.setTraveler(trs); + } + + + + + + private static void populateExtensionSequence(SequenceOfExtensionData ed) { + ExtensionData ed1 = new ExtensionData(); + ed1.setExtensionId("1"); + byte[] ba1 = { (byte) 0x82, (byte) 0xDA }; + ed1.setExtensionData(ba1); + ExtensionData ed2 = new ExtensionData(); + ed2.setExtensionId("2"); + byte[] ba2 = { (byte) 0x83, (byte) 0xDA }; + ed2.setExtensionData(ba2); + ed.add(ed1); + ed.add(ed2); + } + + private static void populate(ControlData controlDetail) { + controlDetail.infoText = "cd"; + controlDetail.setAgeCheckRequired(false); + controlDetail.setIdentificationByIdCard(false); + controlDetail.setIdentificationByPassportId(false); + controlDetail.setOnlineValidationRequired(false); + controlDetail.setPassportValidationRequired(false); + controlDetail.setReductionCardCheckRequired(false); + controlDetail.setIdentificationByCardReference(new SequenceOfCardReferenceType()); + controlDetail.getIdentificationByCardReference().add(populateCardRefrence()); + SequenceOfTicketLinkType sit = new SequenceOfTicketLinkType(); + populateLinkedTickets(sit); + controlDetail.setIncludedTickets(sit); + } + + private static void populateLinkedTickets(SequenceOfTicketLinkType sequenceOfTicketLinkType) { + TicketLinkType tlt = new TicketLinkType(); + tlt.productOwnerIA5="test"; + tlt.setTicketType(TicketType.pass); + tlt.setIssuerPNR("PNR"); + tlt.setReferenceIA5("UED12435867"); + tlt.setLinkMode(LinkMode.onlyValidInCombination); + tlt.setIssuerName("OEBB"); + sequenceOfTicketLinkType.add(tlt); + } + + private static CardReferenceType populateCardRefrence() { + CardReferenceType cr = new CardReferenceType(); + cr.setTrailingCardIdNum(100L); + return cr; + } + + + + } diff --git a/src/test/java/org/uic/barcode/ticket/api/test/testtickets/PassTimeZoneTestTicketV2.java b/src/test/java/org/uic/barcode/ticket/api/test/testtickets/PassTimeZoneTestTicketV2.java new file mode 100644 index 0000000..7539f0d --- /dev/null +++ b/src/test/java/org/uic/barcode/ticket/api/test/testtickets/PassTimeZoneTestTicketV2.java @@ -0,0 +1,168 @@ +package org.uic.barcode.ticket.api.test.testtickets; + +import org.uic.barcode.ticket.api.asn.omv2.CardReferenceType; +import org.uic.barcode.ticket.api.asn.omv2.ControlData; +import org.uic.barcode.ticket.api.asn.omv2.CustomerStatusType; +import org.uic.barcode.ticket.api.asn.omv2.DocumentData; +import org.uic.barcode.ticket.api.asn.omv2.ExtensionData; +import org.uic.barcode.ticket.api.asn.omv2.IssuingData; +import org.uic.barcode.ticket.api.asn.omv2.LinkMode; +import org.uic.barcode.ticket.api.asn.omv2.PassData; +import org.uic.barcode.ticket.api.asn.omv2.SequenceOfActivatedDays; +import org.uic.barcode.ticket.api.asn.omv2.SequenceOfCardReferenceType; +import org.uic.barcode.ticket.api.asn.omv2.SequenceOfCustomerStatusType; +import org.uic.barcode.ticket.api.asn.omv2.SequenceOfDocumentData; +import org.uic.barcode.ticket.api.asn.omv2.SequenceOfExtensionData; +import org.uic.barcode.ticket.api.asn.omv2.SequenceOfTicketLinkType; +import org.uic.barcode.ticket.api.asn.omv2.SequenceOfTravelerType; +import org.uic.barcode.ticket.api.asn.omv2.TicketDetailData; +import org.uic.barcode.ticket.api.asn.omv2.TicketLinkType; +import org.uic.barcode.ticket.api.asn.omv2.TicketType; +import org.uic.barcode.ticket.api.asn.omv2.TravelClassType; +import org.uic.barcode.ticket.api.asn.omv2.TravelerData; +import org.uic.barcode.ticket.api.asn.omv2.TravelerType; +import org.uic.barcode.ticket.api.asn.omv2.UicRailTicketData; + + public class PassTimeZoneTestTicketV2 { + + public static UicRailTicketData getUicTestTicket() { + UicRailTicketData ticket = new UicRailTicketData(); + populateTicket(ticket); + return ticket; + } + + + + private static void populateTicket(UicRailTicketData ticket) { + + ticket.setControlDetail(new ControlData()); + populate(ticket.getControlDetail()); + + + ticket.setIssuingDetail(new IssuingData()); + populateIssuingData(ticket.getIssuingDetail()); + + TravelerData td = new TravelerData(); + populateTravelerData(td); + ticket.setTravelerDetail(td); + + SequenceOfDocumentData ds = new SequenceOfDocumentData(); + + + //OpenTicket + DocumentData do1 = new DocumentData(); + addPass1(do1); + ds.add(do1); + + + ticket.setTransportDocument(ds); + + SequenceOfExtensionData ed = new SequenceOfExtensionData(); + populateExtensionSequence(ed); + ticket.setExtension(ed); + + } + + + //issue date: 04-03-2021 12:30 UTC + private static void populateIssuingData(IssuingData issuingDetail) { + issuingDetail.setIssuingYear(2021L); + issuingDetail.setIssuingTime(750L); + issuingDetail.setIssuingDay(63L); + issuingDetail.setIssuerPNR("issuerTestPNR"); + issuingDetail.setSpecimen(true); + issuingDetail.setSecurePaperTicket(false); + issuingDetail.setActivated(true); + issuingDetail.setIssuedOnLine(12L); + } + + private static void addPass1(DocumentData dd) { + + TicketDetailData tdd = new TicketDetailData(); + PassData otd = new PassData(); + otd.setInfoText("pass"); + otd.setClassCode(TravelClassType.first); + otd.setPassDescription("ONE COUNTRY"); + otd.setValidFromDay(10L); + otd.setValidFromTime(0L); + otd.setValidUntilDay(10L); + otd.setValidUntilTime(1439L); + SequenceOfActivatedDays s = new SequenceOfActivatedDays(); + otd.setActivatedDay(s); + s.add(0L); + + tdd.setPass(otd); + dd.setTicket(tdd); + } + + + + private static void populateTravelerData(TravelerData td) { + td.setGroupName("myGroup"); + SequenceOfTravelerType trs = new SequenceOfTravelerType(); + TravelerType tr = new TravelerType(); + tr.setIdCard("12345"); + tr.setFirstName("John"); + tr.setSecondName("Dow"); + tr.setTicketHolder(true); + SequenceOfCustomerStatusType ts = new SequenceOfCustomerStatusType(); + CustomerStatusType cst = new CustomerStatusType(); + cst.setCustomerStatusDescr("senior"); + ts.add(cst); + tr.setStatus(ts); + trs.add(tr); + td.setTraveler(trs); + } + + + + + + private static void populateExtensionSequence(SequenceOfExtensionData ed) { + ExtensionData ed1 = new ExtensionData(); + ed1.setExtensionId("1"); + byte[] ba1 = { (byte) 0x82, (byte) 0xDA }; + ed1.setExtensionData(ba1); + ExtensionData ed2 = new ExtensionData(); + ed2.setExtensionId("2"); + byte[] ba2 = { (byte) 0x83, (byte) 0xDA }; + ed2.setExtensionData(ba2); + ed.add(ed1); + ed.add(ed2); + } + + private static void populate(ControlData controlDetail) { + controlDetail.infoText = "cd"; + controlDetail.setAgeCheckRequired(false); + controlDetail.setIdentificationByIdCard(false); + controlDetail.setIdentificationByPassportId(false); + controlDetail.setOnlineValidationRequired(false); + controlDetail.setPassportValidationRequired(false); + controlDetail.setReductionCardCheckRequired(false); + controlDetail.setIdentificationByCardReference(new SequenceOfCardReferenceType()); + controlDetail.getIdentificationByCardReference().add(populateCardRefrence()); + SequenceOfTicketLinkType sit = new SequenceOfTicketLinkType(); + populateLinkedTickets(sit); + controlDetail.setIncludedTickets(sit); + } + + private static void populateLinkedTickets(SequenceOfTicketLinkType sequenceOfTicketLinkType) { + TicketLinkType tlt = new TicketLinkType(); + tlt.productOwnerIA5="test"; + tlt.setTicketType(TicketType.pass); + tlt.setIssuerPNR("PNR"); + tlt.setReferenceIA5("UED12435867"); + tlt.setLinkMode(LinkMode.onlyValidInCombination); + tlt.setIssuerName("OEBB"); + sequenceOfTicketLinkType.add(tlt); + } + + private static CardReferenceType populateCardRefrence() { + CardReferenceType cr = new CardReferenceType(); + cr.setTrailingCardIdNum(100L); + return cr; + } + + + + } diff --git a/src/test/java/org/uic/barcode/ticket/api/test/testtickets/ReservationTestTicketV1.java b/src/test/java/org/uic/barcode/ticket/api/test/testtickets/ReservationTestTicketV1.java new file mode 100644 index 0000000..840b584 --- /dev/null +++ b/src/test/java/org/uic/barcode/ticket/api/test/testtickets/ReservationTestTicketV1.java @@ -0,0 +1,201 @@ +package org.uic.barcode.ticket.api.test.testtickets; + +import org.uic.barcode.ticket.api.asn.omv1.CardReferenceType; +import org.uic.barcode.ticket.api.asn.omv1.ControlData; +import org.uic.barcode.ticket.api.asn.omv1.CustomerStatusType; +import org.uic.barcode.ticket.api.asn.omv1.DocumentData; +import org.uic.barcode.ticket.api.asn.omv1.ExtensionData; +import org.uic.barcode.ticket.api.asn.omv1.IssuingData; +import org.uic.barcode.ticket.api.asn.omv1.PassengerType; +import org.uic.barcode.ticket.api.asn.omv1.PlacesType; +import org.uic.barcode.ticket.api.asn.omv1.PriceTypeType; +import org.uic.barcode.ticket.api.asn.omv1.ReservationData; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCardReferenceType; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCarrierNum; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCustomerStatusType; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfDocumentData; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfExtensionData; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTariffType; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTravelerType; +import org.uic.barcode.ticket.api.asn.omv1.ServiceType; +import org.uic.barcode.ticket.api.asn.omv1.TariffType; +import org.uic.barcode.ticket.api.asn.omv1.TicketDetailData; +import org.uic.barcode.ticket.api.asn.omv1.TravelClassType; +import org.uic.barcode.ticket.api.asn.omv1.TravelerData; +import org.uic.barcode.ticket.api.asn.omv1.TravelerType; +import org.uic.barcode.ticket.api.asn.omv1.UicRailTicketData; + + + public class ReservationTestTicketV1 { + + public static UicRailTicketData getUicTestTicket() { + UicRailTicketData ticket = new UicRailTicketData(); + populateTicket(ticket); + return ticket; + } + + + private static void populateTicket(UicRailTicketData ticket) { + + ticket.setControlDetail(new ControlData()); + populate(ticket.getControlDetail()); + + + ticket.setIssuingDetail(new IssuingData()); + populateIssuingData(ticket.getIssuingDetail()); + + TravelerData td = new TravelerData(); + populateTravelerData(td); + ticket.setTravelerDetail(td); + + SequenceOfDocumentData ds = new SequenceOfDocumentData(); + + + //OpenTicket + DocumentData do1 = new DocumentData(); + addReservation(do1); + ds.add(do1); + + + ticket.setTransportDocument(ds); + + SequenceOfExtensionData ed = new SequenceOfExtensionData(); + populateExtensionSequence(ed); + ticket.setExtension(ed); + + } + + + + private static void addReservation(DocumentData dd) { + + TicketDetailData tdd = new TicketDetailData(); + ReservationData ticket = new ReservationData(); + ticket.setTrainNum(123L); + ticket.setService(ServiceType.seat); + ticket.setReferenceNum(810123456789L); + ticket.setServiceBrandAbrUTF8("XYZ"); + ticket.setServiceBrandNameUTF8("special train"); + SequenceOfCarrierNum carriers = new SequenceOfCarrierNum(); + carriers.add(1080L); + carriers.add(1181L); + ticket.setCarrierNum(carriers); + ticket.setFromStationNum(8100001L); + ticket.setToStationNum(800001L); + ticket.setNumberOfSupplements(1L); + ticket.setServiceBrand(100L); + ticket.setPrice(12345L); + ticket.setPriceType(PriceTypeType.supplement); + + ticket.setPlaces(getPlaces()); + ticket.setTariff(getTariffs()); + + ticket.setInfoText("reservation"); + ticket.setClassCode(TravelClassType.first); + ticket.setDepartureDate(10L); + ticket.setDepartureTime(0L); + ticket.setArrivalDate(10L); + ticket.setArrivalTime(1439L); + tdd.setReservation(ticket); + dd.setTicket(tdd); + } + + + + private static SequenceOfTariffType getTariffs() { + SequenceOfTariffType tariffs = new SequenceOfTariffType(); + + TariffType tariff = new TariffType(); + tariff.setNumberOfPassengers(1L); + tariff.setRestrictedToCountryOfResidence(false); + tariff.setPassengerType(PassengerType.adult); + tariff.setTariffIdNum(72L); + tariff.setTariffDesc("Full Fare Adult"); + tariffs.add(tariff); + TariffType tariff2 = new TariffType(); + tariff2.setRestrictedToCountryOfResidence(false); + tariff2.setNumberOfPassengers(2L); + tariff2.setPassengerType(PassengerType.child); + tariff2.setTariffIdNum(73L); + tariff2.setTariffDesc("Full Fare Child"); + tariffs.add(tariff2); + return tariffs; + } + + + private static PlacesType getPlaces() { + PlacesType places = new PlacesType(); + places.setPlaceDescription("11-13"); + places.setCoach("12"); + return places; + } + + + private static void populateTravelerData(TravelerData td) { + td.setGroupName("myGroup"); + SequenceOfTravelerType trs = new SequenceOfTravelerType(); + TravelerType tr = new TravelerType(); + tr.setIdCard("12345"); + tr.setFirstName("John"); + tr.setSecondName("Dow"); + tr.setTicketHolder(true); + SequenceOfCustomerStatusType ts = new SequenceOfCustomerStatusType(); + CustomerStatusType cst = new CustomerStatusType(); + cst.setCustomerStatusDescr("senior"); + ts.add(cst); + tr.setStatus(ts); + trs.add(tr); + td.setTraveler(trs); + } + + private static void populateIssuingData(IssuingData issuingDetail) { + issuingDetail.setIssuingYear(2018L); + issuingDetail.setIssuingDay(1L); + issuingDetail.setIssuerPNR("issuerTestPNR"); + issuingDetail.setSpecimen(true); + issuingDetail.setSecurePaperTicket(false); + issuingDetail.setActivated(true); + issuingDetail.setIssuedOnLine(12L); + } + + + private static void populateExtensionSequence(SequenceOfExtensionData ed) { + ExtensionData ed1 = new ExtensionData(); + ed1.setExtensionId("1"); + byte[] ba1 = { (byte) 0x82, (byte) 0xDA }; + ed1.setExtensionData(ba1); + ExtensionData ed2 = new ExtensionData(); + ed2.setExtensionId("2"); + byte[] ba2 = { (byte) 0x83, (byte) 0xDA }; + ed2.setExtensionData(ba2); + ed.add(ed1); + ed.add(ed2); + } + + private static void populate(ControlData controlDetail) { + controlDetail.infoText = "cd"; + controlDetail.setAgeCheckRequired(false); + controlDetail.setIdentificationByIdCard(false); + controlDetail.setIdentificationByPassportId(false); + controlDetail.setOnlineValidationRequired(false); + controlDetail.setPassportValidationRequired(false); + controlDetail.setReductionCardCheckRequired(false); + controlDetail.setIdentificationByCardReference(new SequenceOfCardReferenceType()); + controlDetail.getIdentificationByCardReference().add(populateCardRefrence()); + } + + + /* + { + trailingCardIdNum 100 + } + */ + private static CardReferenceType populateCardRefrence() { + CardReferenceType cr = new CardReferenceType(); + cr.setTrailingCardIdNum(100L); + return cr; + } + + + + } diff --git a/src/test/java/org/uic/barcode/ticket/api/test/testtickets/ReservationTestTicketV2.java b/src/test/java/org/uic/barcode/ticket/api/test/testtickets/ReservationTestTicketV2.java new file mode 100644 index 0000000..ef84644 --- /dev/null +++ b/src/test/java/org/uic/barcode/ticket/api/test/testtickets/ReservationTestTicketV2.java @@ -0,0 +1,201 @@ +package org.uic.barcode.ticket.api.test.testtickets; + +import org.uic.barcode.ticket.api.asn.omv2.CardReferenceType; +import org.uic.barcode.ticket.api.asn.omv2.ControlData; +import org.uic.barcode.ticket.api.asn.omv2.CustomerStatusType; +import org.uic.barcode.ticket.api.asn.omv2.DocumentData; +import org.uic.barcode.ticket.api.asn.omv2.ExtensionData; +import org.uic.barcode.ticket.api.asn.omv2.IssuingData; +import org.uic.barcode.ticket.api.asn.omv2.PassengerType; +import org.uic.barcode.ticket.api.asn.omv2.PlacesType; +import org.uic.barcode.ticket.api.asn.omv2.PriceTypeType; +import org.uic.barcode.ticket.api.asn.omv2.ReservationData; +import org.uic.barcode.ticket.api.asn.omv2.SequenceOfCardReferenceType; +import org.uic.barcode.ticket.api.asn.omv2.SequenceOfCarrierNum; +import org.uic.barcode.ticket.api.asn.omv2.SequenceOfCustomerStatusType; +import org.uic.barcode.ticket.api.asn.omv2.SequenceOfDocumentData; +import org.uic.barcode.ticket.api.asn.omv2.SequenceOfExtensionData; +import org.uic.barcode.ticket.api.asn.omv2.SequenceOfTariffType; +import org.uic.barcode.ticket.api.asn.omv2.SequenceOfTravelerType; +import org.uic.barcode.ticket.api.asn.omv2.ServiceType; +import org.uic.barcode.ticket.api.asn.omv2.TariffType; +import org.uic.barcode.ticket.api.asn.omv2.TicketDetailData; +import org.uic.barcode.ticket.api.asn.omv2.TravelClassType; +import org.uic.barcode.ticket.api.asn.omv2.TravelerData; +import org.uic.barcode.ticket.api.asn.omv2.TravelerType; +import org.uic.barcode.ticket.api.asn.omv2.UicRailTicketData; + + + public class ReservationTestTicketV2 { + + public static UicRailTicketData getUicTestTicket() { + UicRailTicketData ticket = new UicRailTicketData(); + populateTicket(ticket); + return ticket; + } + + + private static void populateTicket(UicRailTicketData ticket) { + + ticket.setControlDetail(new ControlData()); + populate(ticket.getControlDetail()); + + + ticket.setIssuingDetail(new IssuingData()); + populateIssuingData(ticket.getIssuingDetail()); + + TravelerData td = new TravelerData(); + populateTravelerData(td); + ticket.setTravelerDetail(td); + + SequenceOfDocumentData ds = new SequenceOfDocumentData(); + + + //OpenTicket + DocumentData do1 = new DocumentData(); + addReservation(do1); + ds.add(do1); + + + ticket.setTransportDocument(ds); + + SequenceOfExtensionData ed = new SequenceOfExtensionData(); + populateExtensionSequence(ed); + ticket.setExtension(ed); + + } + + + + private static void addReservation(DocumentData dd) { + + TicketDetailData tdd = new TicketDetailData(); + ReservationData ticket = new ReservationData(); + ticket.setTrainNum(123L); + ticket.setService(ServiceType.seat); + ticket.setReferenceNum(810123456789L); + ticket.setServiceBrandAbrUTF8("XYZ"); + ticket.setServiceBrandNameUTF8("special train"); + SequenceOfCarrierNum carriers = new SequenceOfCarrierNum(); + carriers.add(1080L); + carriers.add(1181L); + ticket.setCarrierNum(carriers); + ticket.setFromStationNum(8100001L); + ticket.setToStationNum(800001L); + ticket.setNumberOfSupplements(1L); + ticket.setServiceBrand(100L); + ticket.setPrice(12345L); + ticket.setPriceType(PriceTypeType.supplement); + + ticket.setPlaces(getPlaces()); + ticket.setTariff(getTariffs()); + + ticket.setInfoText("reservation"); + ticket.setClassCode(TravelClassType.first); + ticket.setDepartureDate(10L); + ticket.setDepartureTime(0L); + ticket.setArrivalDate(10L); + ticket.setArrivalTime(1439L); + tdd.setReservation(ticket); + dd.setTicket(tdd); + } + + + + private static SequenceOfTariffType getTariffs() { + SequenceOfTariffType tariffs = new SequenceOfTariffType(); + + TariffType tariff = new TariffType(); + tariff.setNumberOfPassengers(1L); + tariff.setRestrictedToCountryOfResidence(false); + tariff.setPassengerType(PassengerType.adult); + tariff.setTariffIdNum(72L); + tariff.setTariffDesc("Full Fare Adult"); + tariffs.add(tariff); + TariffType tariff2 = new TariffType(); + tariff2.setRestrictedToCountryOfResidence(false); + tariff2.setNumberOfPassengers(2L); + tariff2.setPassengerType(PassengerType.child); + tariff2.setTariffIdNum(73L); + tariff2.setTariffDesc("Full Fare Child"); + tariffs.add(tariff2); + return tariffs; + } + + + private static PlacesType getPlaces() { + PlacesType places = new PlacesType(); + places.setPlaceDescription("11-13"); + places.setCoach("12"); + return places; + } + + + private static void populateTravelerData(TravelerData td) { + td.setGroupName("myGroup"); + SequenceOfTravelerType trs = new SequenceOfTravelerType(); + TravelerType tr = new TravelerType(); + tr.setIdCard("12345"); + tr.setFirstName("John"); + tr.setSecondName("Dow"); + tr.setTicketHolder(true); + SequenceOfCustomerStatusType ts = new SequenceOfCustomerStatusType(); + CustomerStatusType cst = new CustomerStatusType(); + cst.setCustomerStatusDescr("senior"); + ts.add(cst); + tr.setStatus(ts); + trs.add(tr); + td.setTraveler(trs); + } + + private static void populateIssuingData(IssuingData issuingDetail) { + issuingDetail.setIssuingYear(2018L); + issuingDetail.setIssuingDay(1L); + issuingDetail.setIssuerPNR("issuerTestPNR"); + issuingDetail.setSpecimen(true); + issuingDetail.setSecurePaperTicket(false); + issuingDetail.setActivated(true); + issuingDetail.setIssuedOnLine(12L); + } + + + private static void populateExtensionSequence(SequenceOfExtensionData ed) { + ExtensionData ed1 = new ExtensionData(); + ed1.setExtensionId("1"); + byte[] ba1 = { (byte) 0x82, (byte) 0xDA }; + ed1.setExtensionData(ba1); + ExtensionData ed2 = new ExtensionData(); + ed2.setExtensionId("2"); + byte[] ba2 = { (byte) 0x83, (byte) 0xDA }; + ed2.setExtensionData(ba2); + ed.add(ed1); + ed.add(ed2); + } + + private static void populate(ControlData controlDetail) { + controlDetail.infoText = "cd"; + controlDetail.setAgeCheckRequired(false); + controlDetail.setIdentificationByIdCard(false); + controlDetail.setIdentificationByPassportId(false); + controlDetail.setOnlineValidationRequired(false); + controlDetail.setPassportValidationRequired(false); + controlDetail.setReductionCardCheckRequired(false); + controlDetail.setIdentificationByCardReference(new SequenceOfCardReferenceType()); + controlDetail.getIdentificationByCardReference().add(populateCardRefrence()); + } + + + /* + { + trailingCardIdNum 100 + } + */ + private static CardReferenceType populateCardRefrence() { + CardReferenceType cr = new CardReferenceType(); + cr.setTrailingCardIdNum(100L); + return cr; + } + + + + } diff --git a/src/test/java/org/uic/barcode/ticket/api/test/testtickets/SimpleTicketLinkTestTicket.java b/src/test/java/org/uic/barcode/ticket/api/test/testtickets/SimpleTicketLinkTestTicket.java new file mode 100644 index 0000000..d752043 --- /dev/null +++ b/src/test/java/org/uic/barcode/ticket/api/test/testtickets/SimpleTicketLinkTestTicket.java @@ -0,0 +1,574 @@ +package org.uic.barcode.ticket.api.test.testtickets; + + import org.uic.barcode.asn1.datatypesimpl.SequenceOfStringUTF8; + import org.uic.barcode.ticket.api.asn.omv1.CardReferenceType; + import org.uic.barcode.ticket.api.asn.omv1.ControlData; + import org.uic.barcode.ticket.api.asn.omv1.CustomerStatusType; + import org.uic.barcode.ticket.api.asn.omv1.DocumentData; + import org.uic.barcode.ticket.api.asn.omv1.ExtensionData; + import org.uic.barcode.ticket.api.asn.omv1.IssuingData; + import org.uic.barcode.ticket.api.asn.omv1.LinkMode; + import org.uic.barcode.ticket.api.asn.omv1.OpenTicketData; + import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCardReferenceType; + import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCustomerStatusType; + import org.uic.barcode.ticket.api.asn.omv1.SequenceOfDocumentData; + import org.uic.barcode.ticket.api.asn.omv1.SequenceOfExtensionData; + import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTicketLinkType; + import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTravelerType; + import org.uic.barcode.ticket.api.asn.omv1.StationPassageData; + import org.uic.barcode.ticket.api.asn.omv1.TicketDetailData; + import org.uic.barcode.ticket.api.asn.omv1.TicketLinkType; + import org.uic.barcode.ticket.api.asn.omv1.TicketType; + import org.uic.barcode.ticket.api.asn.omv1.TokenType; + import org.uic.barcode.ticket.api.asn.omv1.TravelerData; + import org.uic.barcode.ticket.api.asn.omv1.TravelerType; + import org.uic.barcode.ticket.api.asn.omv1.UicRailTicketData; + + public class SimpleTicketLinkTestTicket { + + public static UicRailTicketData getUicTestTicket() { + UicRailTicketData ticket = new UicRailTicketData(); + populateTicket(ticket); + return ticket; + } + + /* + value UicRailTicketData ::= { + issuingDetail { + issuingYear 2018 + issuingDay 1 + specimen TRUE, + securePaperTicket FALSE, + activated TRUE, + issuerPNR "issuerTestPNR", + issuedOnLine 12 + } + ,travelerDetail{ + traveler { + { + firstName "John" + ,secondName "Dow" + ,idCard "12345" + ,ticketHolder TRUE + ,status {{customerStatusDescr "senior" }} + } + } + ,groupName "myGroup" + } + ,transportDocument { + { + token {tokenProviderIA5 "VDV", token '82DA'H } + ,ticket openTicket : { + returnIncluded FALSE + infoText "openTicketInfo" + } + } + ,{ + ticket stationPassage : { + productName "passage" + ,stationNameUTF8 { "Amsterdam" } + ,validFromDay 0 + ,numberOfDaysValid 123 + } + } + } + ,controlDetail { + identificationByCardReference { + { trailingCardIdNum 100 } + } + ,identificationByIdCard FALSE + ,identificationByPassportId FALSE + ,passportValidationRequired FALSE + ,onlineValidationRequired FALSE + ,ageCheckRequired FALSE + ,reductionCardCheckRequired FALSE + ,infoText "cd" + ,includedTickets { + { referenceIA5 "UED12435867" + ,issuerName "OEBB" + ,issuerPNR "PNR" + ,productOwnerIA5 "test" + ,ticketType pass + ,linkMode onlyValidInCombination + + } + } + } + ,extension { + { extensionId "1", extensionData '82DA'H } + ,{ extensionId "2", extensionData '83DA'H } + } + } + */ + + /* + * asn.1 version 1.3 encoding: +Encoding to the file 'data.uper' using PER UNALIGNED encoding rule... +UicRailTicketData SEQUENCE [root fieldcount (not encoded) = 5] + issuingDetail IssuingData SEQUENCE [root fieldcount (not encoded) = 7] + issuingYear INTEGER [length (not encoded) = 1.0] + 2018 + issuingDay INTEGER [length (not encoded) = 1.1] + 1 + specimen BOOLEAN [length (not encoded) = 0.1] + TRUE + securePaperTicket BOOLEAN [length (not encoded) = 0.1] + FALSE + activated BOOLEAN [length (not encoded) = 0.1] + TRUE + issuerPNR IA5String [length = 13.0] + "issuerTestPNR" + issuedOnLine INTEGER [length = 1.0] + 12 + travelerDetail TravelerData SEQUENCE [root fieldcount (not encoded) = 2] + traveler SEQUENCE OF [count = 1] + TravelerType SEQUENCE [root fieldcount (not encoded) = 5] + firstName UTF8String [length = 4.0] + 0x4a6f686e + secondName UTF8String [length = 3.0] + 0x446f77 + idCard IA5String [length = 5.0] + "12345" + ticketHolder BOOLEAN [length (not encoded) = 0.1] + TRUE + status SEQUENCE OF [count = 1] + CustomerStatusType SEQUENCE [fieldcount (not encoded) = 1] + customerStatusDescr IA5String [length = 6.0] + "senior" + groupName UTF8String [length = 7.0] + 0x6d7947726f7570 + transportDocument SEQUENCE OF [count = 2] + DocumentData SEQUENCE [root fieldcount (not encoded) = 2] + token TokenType SEQUENCE [fieldcount (not encoded) = 2] + tokenProviderIA5 IA5String [length = 3.0] + "VDV" + token OCTET STRING [length = 2.0] + 0x82da + ticket CHOICE [index = 2] + openTicket OpenTicketData SEQUENCE [root fieldcount (not encoded) = 2] + returnIncluded BOOLEAN [length (not encoded) = 0.1] + FALSE + infoText UTF8String [length = 14.0] + 0x6f70656e5469636b6574496e666f + DocumentData SEQUENCE [root fieldcount (not encoded) = 1] + ticket CHOICE [index = 9] + stationPassage StationPassageData SEQUENCE [root fieldcount (not encoded) = 4] + productName UTF8String [length = 7.0] + 0x70617373616765 + stationNameUTF8 SEQUENCE OF [count = 1] + UTF8String [length = 9.0] + 0x416d7374657264616d + validFromDay INTEGER [length (not encoded) = 1.2] + 0 + numberOfDaysValid INTEGER [length = 1.0] + 123 + controlDetail ControlData SEQUENCE [root fieldcount (not encoded) = 9] + identificationByCardReference SEQUENCE OF [count = 1] + CardReferenceType SEQUENCE [root fieldcount (not encoded) = 1] + trailingCardIdNum INTEGER [length = 1.0] + 100 + identificationByIdCard BOOLEAN [length (not encoded) = 0.1] + FALSE + identificationByPassportId BOOLEAN [length (not encoded) = 0.1] + FALSE + passportValidationRequired BOOLEAN [length (not encoded) = 0.1] + FALSE + onlineValidationRequired BOOLEAN [length (not encoded) = 0.1] + FALSE + ageCheckRequired BOOLEAN [length (not encoded) = 0.1] + FALSE + reductionCardCheckRequired BOOLEAN [length (not encoded) = 0.1] + FALSE + infoText UTF8String [length = 2.0] + 0x6364 + includedTickets SEQUENCE OF [count = 1] + TicketLinkType SEQUENCE [root fieldcount (not encoded) = 6] + referenceIA5 IA5String [length = 11.0] + "UED12435867" + issuerName UTF8String [length = 4.0] + 0x4f454242 + issuerPNR IA5String [length = 3.0] + "PNR" + productOwnerIA5 IA5String [length = 4.0] + "test" + ticketType TicketType ENUMERATED [length (not encoded) = 0.2] + 1 + linkMode LinkMode ENUMERATED [length (not encoded) = 0.1] + 1 + extension SEQUENCE OF [count = 2] + ExtensionData SEQUENCE [fieldcount (not encoded) = 2] + extensionId IA5String [length = 1.0] + "1" + extensionData OCTET STRING [length = 2.0] + 0x82da + ExtensionData SEQUENCE [fieldcount (not encoded) = 2] + extensionId IA5String [length = 1.0] + "2" + extensionData OCTET STRING [length = 2.0] + 0x83da +Total encoded length = 154.3 +Encoded successfully in 155 bytes: +78022020 050DD3CF 9F5CBCAA 65E7D284 EA40218A 02D00082 2537B437 01A237BB +82B164CD A3580883 73CBBB4E FE40EDAF 28EE4DEE AE004A03 AD12B014 16D08000 +00000403 9BDC195B 951A58DA D95D125B 999BC480 88040EE0 C2E6E6C2 CECA0212 +82DAE6E8 CAE4C8C2 DA0080BD A6010040 2C800131 B200ADC2 EAC588C5 93466D5C +366E089E 8A848407 4275204E 9979F428 100B1028 2DA01640 507B40 + * + * + */ + + /* + * asn.1 version 2.0 encoding + * + Encoding to the file 'data.uper' using PER UNALIGNED encoding rule... +UicRailTicketData SEQUENCE [root fieldcount (not encoded) = 5] + issuingDetail IssuingData SEQUENCE [root fieldcount (not encoded) = 7] + issuingYear INTEGER [length (not encoded) = 1.0] + 2018 + issuingDay INTEGER [length (not encoded) = 1.1] + 1 + specimen BOOLEAN [length (not encoded) = 0.1] + TRUE + securePaperTicket BOOLEAN [length (not encoded) = 0.1] + FALSE + activated BOOLEAN [length (not encoded) = 0.1] + TRUE + issuerPNR IA5String [length = 13.0] + "issuerTestPNR" + issuedOnLine INTEGER [length = 1.0] + 12 + travelerDetail TravelerData SEQUENCE [root fieldcount (not encoded) = 2] + traveler SEQUENCE OF [count = 1] + TravelerType SEQUENCE [root fieldcount (not encoded) = 5] + firstName UTF8String [length = 4.0] + 0x4a6f686e + secondName UTF8String [length = 3.0] + 0x446f77 + idCard IA5String [length = 5.0] + "12345" + ticketHolder BOOLEAN [length (not encoded) = 0.1] + TRUE + status SEQUENCE OF [count = 1] + CustomerStatusType SEQUENCE [fieldcount (not encoded) = 1] + customerStatusDescr IA5String [length = 6.0] + "senior" + groupName UTF8String [length = 7.0] + 0x6d7947726f7570 + transportDocument SEQUENCE OF [count = 2] + DocumentData SEQUENCE [root fieldcount (not encoded) = 2] + token TokenType SEQUENCE [fieldcount (not encoded) = 2] + tokenProviderIA5 IA5String [length = 3.0] + "VDV" + token OCTET STRING [length = 2.0] + 0x82da + ticket CHOICE [index = 2] + openTicket OpenTicketData SEQUENCE [root fieldcount (not encoded) = 2] + returnIncluded BOOLEAN [length (not encoded) = 0.1] + FALSE + infoText UTF8String [length = 14.0] + 0x6f70656e5469636b6574496e666f + DocumentData SEQUENCE [root fieldcount (not encoded) = 1] + ticket CHOICE [index = 9] + stationPassage StationPassageData SEQUENCE [root fieldcount (not encoded) = 4] + productName UTF8String [length = 7.0] + 0x70617373616765 + stationNameUTF8 SEQUENCE OF [count = 1] + UTF8String [length = 9.0] + 0x416d7374657264616d + validFromDay INTEGER [length (not encoded) = 1.2] + 0 + numberOfDaysValid INTEGER [length = 1.0] + 123 + controlDetail ControlData SEQUENCE [root fieldcount (not encoded) = 9] + identificationByCardReference SEQUENCE OF [count = 1] + CardReferenceType SEQUENCE [root fieldcount (not encoded) = 1] + trailingCardIdNum INTEGER [length = 1.0] + 100 + identificationByIdCard BOOLEAN [length (not encoded) = 0.1] + FALSE + identificationByPassportId BOOLEAN [length (not encoded) = 0.1] + FALSE + passportValidationRequired BOOLEAN [length (not encoded) = 0.1] + FALSE + onlineValidationRequired BOOLEAN [length (not encoded) = 0.1] + FALSE + ageCheckRequired BOOLEAN [length (not encoded) = 0.1] + FALSE + reductionCardCheckRequired BOOLEAN [length (not encoded) = 0.1] + FALSE + infoText UTF8String [length = 2.0] + 0x6364 + includedTickets SEQUENCE OF [count = 1] + TicketLinkType SEQUENCE [root fieldcount (not encoded) = 6] + referenceIA5 IA5String [length = 11.0] + "UED12435867" + issuerName UTF8String [length = 4.0] + 0x4f454242 + issuerPNR IA5String [length = 3.0] + "PNR" + productOwnerIA5 IA5String [length = 4.0] + "test" + ticketType TicketType ENUMERATED [length (not encoded) = 0.2] + 1 + linkMode LinkMode ENUMERATED [length (not encoded) = 0.1] + 1 + extension SEQUENCE OF [count = 2] + ExtensionData SEQUENCE [fieldcount (not encoded) = 2] + extensionId IA5String [length = 1.0] + "1" + extensionData OCTET STRING [length = 2.0] + 0x82da + ExtensionData SEQUENCE [fieldcount (not encoded) = 2] + extensionId IA5String [length = 1.0] + "2" + extensionData OCTET STRING [length = 2.0] + 0x83da +Total encoded length = 154.6 +Encoded successfully in 155 bytes: +78022020 050DD3CF 9F5CBCAA 65E7D284 EA40218A 02D00041 129BDA1B 80D11BDD +C158B266 D1AC0441 B9E5DDA7 7F2076D7 947726F7 57002501 D689580A 0B684000 +00000200 737B832B 72A34B1B 5B2BA24B 73337890 110081DC 185CDCD8 59D94042 +505B5CDD 195C9918 5B401017 B4C02008 05900026 364015B8 5D58B118 B268CDAB +86CDC113 D1509080 E84EA409 D32F3E85 02016205 05B402C8 0A0F68 + * + * + * + */ + + public static String getEncodingV1Hex() { + return "78022020050DD3CF9F5CBCAA65E7D284EA40218A02D000822537B43701A237BB" + + "82B164CDA358088373CBBB4EFE40EDAF28EE4DEEAE004A03AD12B01416D08000" + + "000004039BDC195B951A58DAD95D125B999BC48088040EE0C2E6E6C2CECA0212" + + "82DAE6E8CAE4C8C2DA0080BDA60100402C800131B200ADC2EAC588C593466D5C" + + "366E089E8A8484074275204E9979F428100B10282DA01640507B40"; + } + + public static String getEncodingV2Hex() { + return "78022020050DD3CF9F5CBCAA65E7D284EA40218A02D00041129BDA1B80D11BDD" + + "C158B266D1AC0441B9E5DDA77F2076D7947726F757002501D689580A0B684000" + + "00000200737B832B72A34B1B5B2BA24B73337890110081DC185CDCD859D94042" + + "505B5CDD195C99185B401017B4C0200805900026364015B85D58B118B268CDAB" + + "86CDC113D1509080E84EA409D32F3E850201620505B402C80A0F68"; + } + + + private static void populateTicket(UicRailTicketData ticket) { + + ticket.setControlDetail(new ControlData()); + populate(ticket.getControlDetail()); + + + ticket.setIssuingDetail(new IssuingData()); + populateIssuingData(ticket.getIssuingDetail()); + + TravelerData td = new TravelerData(); + populateTravelerData(td); + ticket.setTravelerDetail(td); + + SequenceOfDocumentData ds = new SequenceOfDocumentData(); + + + //OpenTicket + DocumentData do1 = new DocumentData(); + addOpenTicketData(do1); + ds.add(do1); + + //StationPassage + DocumentData do2 = new DocumentData(); + addStationPassage(do2); + ds.add(do2); + + ticket.setTransportDocument(ds); + + SequenceOfExtensionData ed = new SequenceOfExtensionData(); + populateExtensionSequence(ed); + ticket.setExtension(ed); + + } + + /* + ticket stationPassage : { + productName "passage" + ,stationNameUTF8 { "Amsterdam" } + ,validFromDay 0 + ,numberOfDaysValid 123 + } + */ + private static void addStationPassage(DocumentData dd) { + TicketDetailData tdd = new TicketDetailData(); + StationPassageData sp = new StationPassageData(); + sp.setProductName("passage"); + sp.setValidFromDay(0L); + sp.setNumberOfDaysValid(123L); + SequenceOfStringUTF8 ss = new SequenceOfStringUTF8(); + ss.add("Amsterdam"); + sp.setStationNameUTF8(ss); + tdd.setStationPassage(sp); + dd.setTicket(tdd); + } + + /* + { + token {tokenProviderIA5 "VDV", token '82DA'H } + ,ticket openTicket : { + returnIncluded FALSE + infoText "openTicketInfo" + } + } + */ + + + + private static void addOpenTicketData(DocumentData dd) { + TokenType to = new TokenType(); + to.setTokenProviderIA5("VDV"); + byte[] ba = { (byte) 0x82, (byte) 0xDA }; + to.setToken(ba); + dd.setToken(to); + + TicketDetailData tdd = new TicketDetailData(); + OpenTicketData otd = new OpenTicketData(); + otd.setInfoText("openTicketInfo"); + otd.setReturnIncluded(false); + tdd.setOpenTicket(otd); + dd.setTicket(tdd); + } + + + /* + ,travelerDetail{ + traveler { + { + firstName "John" + ,secondName "Dow" + ,idCard "12345" + ,ticketHolder TRUE + ,status {{customerStatusDescr "senior" }} + } + } + ,groupName "myGroup" + } + */ + + private static void populateTravelerData(TravelerData td) { + td.setGroupName("myGroup"); + SequenceOfTravelerType trs = new SequenceOfTravelerType(); + TravelerType tr = new TravelerType(); + tr.setIdCard("12345"); + tr.setFirstName("John"); + tr.setSecondName("Dow"); + tr.setTicketHolder(true); + SequenceOfCustomerStatusType ts = new SequenceOfCustomerStatusType(); + CustomerStatusType cst = new CustomerStatusType(); + cst.setCustomerStatusDescr("senior"); + ts.add(cst); + tr.setStatus(ts); + trs.add(tr); + td.setTraveler(trs); + } + + /* + ,issuingDetail { + issuingYear 2018 + issuingDay 1 + specimen TRUE, + securePaperTicket FALSE, + activated TRUE, + issuerPNR "issuerTestPNR", + issuedOnLine 12 + } + */ + private static void populateIssuingData(IssuingData issuingDetail) { + issuingDetail.setIssuingYear(2018L); + issuingDetail.setIssuingDay(1L); + issuingDetail.setIssuerPNR("issuerTestPNR"); + issuingDetail.setSpecimen(true); + issuingDetail.setSecurePaperTicket(false); + issuingDetail.setActivated(true); + issuingDetail.setIssuedOnLine(12L); + } + + /* + ,extension { + { extensionId "1", extensionData '82DA'H } + ,{ extensionId "2", extensionData '83DA'H } + } + */ + private static void populateExtensionSequence(SequenceOfExtensionData ed) { + ExtensionData ed1 = new ExtensionData(); + ed1.setExtensionId("1"); + byte[] ba1 = { (byte) 0x82, (byte) 0xDA }; + ed1.setExtensionData(ba1); + ExtensionData ed2 = new ExtensionData(); + ed2.setExtensionId("2"); + byte[] ba2 = { (byte) 0x83, (byte) 0xDA }; + ed2.setExtensionData(ba2); + ed.add(ed1); + ed.add(ed2); + } + + /* + ,controlDetail { + identificationByCardReference { + { trailingCardIdNum 100 } + } + ,identificationByIdCard FALSE + ,identificationByPassportId FALSE + ,passportValidationRequired FALSE + ,onlineValidationRequired FALSE + ,ageCheckRequired FALSE + ,reductionCardCheckRequired FALSE + ,infoText "cd" + ,includedTickets { + { productOwnerIA5 "test" + , + + + } + } + } + */ + private static void populate(ControlData controlDetail) { + controlDetail.infoText = "cd"; + controlDetail.setAgeCheckRequired(false); + controlDetail.setIdentificationByIdCard(false); + controlDetail.setIdentificationByPassportId(false); + controlDetail.setOnlineValidationRequired(false); + controlDetail.setPassportValidationRequired(false); + controlDetail.setReductionCardCheckRequired(false); + controlDetail.setIdentificationByCardReference(new SequenceOfCardReferenceType()); + controlDetail.getIdentificationByCardReference().add(populateCardRefrence()); + SequenceOfTicketLinkType sit = new SequenceOfTicketLinkType(); + populateLinkedTickets(sit); + controlDetail.setIncludedTickets(sit); + } + + + /* + * + */ + private static void populateLinkedTickets(SequenceOfTicketLinkType sequenceOfTicketLinkType) { + TicketLinkType tlt = new TicketLinkType(); + tlt.productOwnerIA5="test"; + tlt.setTicketType(TicketType.pass); + tlt.setIssuerPNR("PNR"); + tlt.setReferenceIA5("UED12435867"); + tlt.setLinkMode(LinkMode.onlyValidInCombination); + tlt.setIssuerName("OEBB"); + sequenceOfTicketLinkType.add(tlt); + } + + /* + { + trailingCardIdNum 100 + } + */ + private static CardReferenceType populateCardRefrence() { + CardReferenceType cr = new CardReferenceType(); + cr.setTrailingCardIdNum(100L); + return cr; + } + + + + } diff --git a/src/test/java/org/uic/barcode/ticket/api/test/testtickets/SimpleUicTestTicket.java b/src/test/java/org/uic/barcode/ticket/api/test/testtickets/SimpleUicTestTicket.java new file mode 100644 index 0000000..d8adb3d --- /dev/null +++ b/src/test/java/org/uic/barcode/ticket/api/test/testtickets/SimpleUicTestTicket.java @@ -0,0 +1,244 @@ +package org.uic.barcode.ticket.api.test.testtickets; + +import org.uic.barcode.asn1.datatypesimpl.SequenceOfStringUTF8; +import org.uic.barcode.ticket.api.asn.omv1.CardReferenceType; +import org.uic.barcode.ticket.api.asn.omv1.ControlData; +import org.uic.barcode.ticket.api.asn.omv1.CustomerStatusType; +import org.uic.barcode.ticket.api.asn.omv1.DocumentData; +import org.uic.barcode.ticket.api.asn.omv1.ExtensionData; +import org.uic.barcode.ticket.api.asn.omv1.IssuingData; +import org.uic.barcode.ticket.api.asn.omv1.OpenTicketData; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCardReferenceType; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCustomerStatusType; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfDocumentData; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfExtensionData; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTicketLinkType; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTravelerType; +import org.uic.barcode.ticket.api.asn.omv1.StationPassageData; +import org.uic.barcode.ticket.api.asn.omv1.TicketDetailData; +import org.uic.barcode.ticket.api.asn.omv1.TicketLinkType; +import org.uic.barcode.ticket.api.asn.omv1.TokenType; +import org.uic.barcode.ticket.api.asn.omv1.TravelerData; +import org.uic.barcode.ticket.api.asn.omv1.TravelerType; +import org.uic.barcode.ticket.api.asn.omv1.UicRailTicketData; + +public class SimpleUicTestTicket { + + + public static UicRailTicketData getUicTestTicket() { + UicRailTicketData ticket = new UicRailTicketData(); + populateTicket(ticket); + return ticket; + } + + + + private static void populateTicket(UicRailTicketData ticket) { + + ticket.setControlDetail(new ControlData()); + populate(ticket.getControlDetail()); + + + ticket.setIssuingDetail(new IssuingData()); + populateIssuingData(ticket.getIssuingDetail()); + + TravelerData td = new TravelerData(); + populateTravelerData(td); + ticket.setTravelerDetail(td); + + SequenceOfDocumentData ds = new SequenceOfDocumentData(); + + + //OpenTicket + DocumentData do1 = new DocumentData(); + addOpenTicketData(do1); + ds.add(do1); + + //StationPassage + DocumentData do2 = new DocumentData(); + addStationPassage(do2); + ds.add(do2); + + ticket.setTransportDocument(ds); + + SequenceOfExtensionData ed = new SequenceOfExtensionData(); + populateExtensionSequence(ed); + ticket.setExtension(ed); + + } + + /* + ticket stationPassage : { + productName "passage" + ,stationNameUTF8 { "Amsterdam" } + ,validFromDay 0 + ,numberOfDaysValid 123 + } + */ + private static void addStationPassage(DocumentData dd) { + TicketDetailData tdd = new TicketDetailData(); + StationPassageData sp = new StationPassageData(); + sp.setProductName("passage"); + sp.setValidFromDay(0L); + sp.setNumberOfDaysValid(123L); + SequenceOfStringUTF8 ss = new SequenceOfStringUTF8(); + ss.add("Amsterdam"); + sp.setStationNameUTF8(ss); + tdd.setStationPassage(sp); + dd.setTicket(tdd); + } + + /* + { + token {tokenProviderIA5 "VDV", token '82DA'H } + ,ticket openTicket : { + returnIncluded FALSE + infoText "openTicketInfo" + } + } + */ + + private static void addOpenTicketData(DocumentData dd) { + TokenType to = new TokenType(); + to.setTokenProviderIA5("VDV"); + byte[] ba = { (byte) 0x82, (byte) 0xDA }; + to.setToken(ba); + dd.setToken(to); + + TicketDetailData tdd = new TicketDetailData(); + OpenTicketData otd = new OpenTicketData(); + otd.setInfoText("openTicketInfo"); + otd.setReturnIncluded(false); + tdd.setOpenTicket(otd); + dd.setTicket(tdd); + } + + + /* + ,travelerDetail{ + traveler { + { + firstName "John" + ,secondName "Dow" + ,idCard "12345" + ,ticketHolder TRUE + ,status {{customerStatusDescr "senior" }} + } + } + ,groupName "myGroup" + } + */ + + private static void populateTravelerData(TravelerData td) { + td.setGroupName("myGroup"); + SequenceOfTravelerType trs = new SequenceOfTravelerType(); + TravelerType tr = new TravelerType(); + tr.setIdCard("12345"); + tr.setFirstName("John"); + tr.setSecondName("Dow"); + tr.setTicketHolder(true); + SequenceOfCustomerStatusType ts = new SequenceOfCustomerStatusType(); + CustomerStatusType cst = new CustomerStatusType(); + cst.setCustomerStatusDescr("senior"); + ts.add(cst); + tr.setStatus(ts); + trs.add(tr); + td.setTraveler(trs); + } + + /* + ,issuingDetail { + issuingYear 2018 + issuingDay 1 + specimen TRUE, + securePaperTicket FALSE, + activated TRUE, + issuerPNR "issuerTestPNR", + issuedOnLine 12 + } + */ + private static void populateIssuingData(IssuingData issuingDetail) { + issuingDetail.setIssuingYear(2018L); + issuingDetail.setIssuingDay(1L); + issuingDetail.setIssuerPNR("issuerTestPNR"); + issuingDetail.setSpecimen(true); + issuingDetail.setSecurePaperTicket(false); + issuingDetail.setActivated(true); + issuingDetail.setIssuedOnLine(12L); + } + + /* + ,extension { + { extensionId "1", extensionData '82DA'H } + ,{ extensionId "2", extensionData '83DA'H } + } + */ + private static void populateExtensionSequence(SequenceOfExtensionData ed) { + ExtensionData ed1 = new ExtensionData(); + ed1.setExtensionId("1"); + byte[] ba1 = { (byte) 0x82, (byte) 0xDA }; + ed1.setExtensionData(ba1); + ExtensionData ed2 = new ExtensionData(); + ed2.setExtensionId("2"); + byte[] ba2 = { (byte) 0x83, (byte) 0xDA }; + ed2.setExtensionData(ba2); + ed.add(ed1); + ed.add(ed2); + } + + /* + ,controlDetail { + identificationByCardReference { + { trailingCardIdNum 100 } + } + ,identificationByIdCard FALSE + ,identificationByPassportId FALSE + ,passportValidationRequired FALSE + ,onlineValidationRequired FALSE + ,ageCheckRequired FALSE + ,reductionCardCheckRequired FALSE + ,infoText "cd" + ,includedTickets { + { productOwnerIA5 "test" } + } + } + */ + private static void populate(ControlData controlDetail) { + controlDetail.infoText = "cd"; + controlDetail.setAgeCheckRequired(false); + controlDetail.setIdentificationByIdCard(false); + controlDetail.setIdentificationByPassportId(false); + controlDetail.setOnlineValidationRequired(false); + controlDetail.setPassportValidationRequired(false); + controlDetail.setReductionCardCheckRequired(false); + controlDetail.setIdentificationByCardReference(new SequenceOfCardReferenceType()); + controlDetail.getIdentificationByCardReference().add(populateCardRefrence()); + SequenceOfTicketLinkType sit = new SequenceOfTicketLinkType(); + populateLinkedTickets(sit); + controlDetail.setIncludedTickets(sit); + } + + + /* + * + */ + private static void populateLinkedTickets(SequenceOfTicketLinkType sequenceOfTicketLinkType) { + TicketLinkType tlt = new TicketLinkType(); + tlt.productOwnerIA5="test"; + sequenceOfTicketLinkType.add(tlt); + } + + /* + { + trailingCardIdNum 100 + } + */ + private static CardReferenceType populateCardRefrence() { + CardReferenceType cr = new CardReferenceType(); + cr.setTrailingCardIdNum(100L); + return cr; + } + + + +} diff --git a/src/test/java/org/uic/barcode/ticket/api/test/testtickets/StationPassageTestTicketV1.java b/src/test/java/org/uic/barcode/ticket/api/test/testtickets/StationPassageTestTicketV1.java new file mode 100644 index 0000000..b0626f1 --- /dev/null +++ b/src/test/java/org/uic/barcode/ticket/api/test/testtickets/StationPassageTestTicketV1.java @@ -0,0 +1,183 @@ +package org.uic.barcode.ticket.api.test.testtickets; + +import org.uic.barcode.asn1.datatypesimpl.SequenceOfStringUTF8; +import org.uic.barcode.ticket.api.asn.omv1.CardReferenceType; +import org.uic.barcode.ticket.api.asn.omv1.ControlData; +import org.uic.barcode.ticket.api.asn.omv1.CustomerStatusType; +import org.uic.barcode.ticket.api.asn.omv1.DocumentData; +import org.uic.barcode.ticket.api.asn.omv1.ExtensionData; +import org.uic.barcode.ticket.api.asn.omv1.IssuingData; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCardReferenceType; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCustomerStatusType; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfDocumentData; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfExtensionData; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTicketLinkType; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTravelerType; +import org.uic.barcode.ticket.api.asn.omv1.StationPassageData; +import org.uic.barcode.ticket.api.asn.omv1.TicketDetailData; +import org.uic.barcode.ticket.api.asn.omv1.TicketLinkType; +import org.uic.barcode.ticket.api.asn.omv1.TravelerData; +import org.uic.barcode.ticket.api.asn.omv1.TravelerType; +import org.uic.barcode.ticket.api.asn.omv1.UicRailTicketData; + +public class StationPassageTestTicketV1 { + + + public static UicRailTicketData getUicTestTicket() { + UicRailTicketData ticket = new UicRailTicketData(); + populateTicket(ticket); + return ticket; + } + + + + private static void populateTicket(UicRailTicketData ticket) { + + ticket.setControlDetail(new ControlData()); + populate(ticket.getControlDetail()); + + + ticket.setIssuingDetail(new IssuingData()); + populateIssuingData(ticket.getIssuingDetail()); + + TravelerData td = new TravelerData(); + populateTravelerData(td); + ticket.setTravelerDetail(td); + + SequenceOfDocumentData ds = new SequenceOfDocumentData(); + + + //StationPassage + DocumentData do2 = new DocumentData(); + addStationPassage(do2); + ds.add(do2); + + ticket.setTransportDocument(ds); + + SequenceOfExtensionData ed = new SequenceOfExtensionData(); + populateExtensionSequence(ed); + ticket.setExtension(ed); + + } + + /* + ticket stationPassage : { + productName "passage" + ,stationNameUTF8 { "Amsterdam" } + ,validFromDay 0 + ,numberOfDaysValid 123 + } + */ + private static void addStationPassage(DocumentData dd) { + TicketDetailData tdd = new TicketDetailData(); + StationPassageData sp = new StationPassageData(); + sp.setProductName("passage"); + sp.setValidFromDay(5L); + sp.setValidFromTime(0L); + sp.setValidUntilDay(5L); + sp.setValidUntilTime(1000L); + sp.setNumberOfDaysValid(5L); + SequenceOfStringUTF8 ss = new SequenceOfStringUTF8(); + ss.add("Amsterdam"); + sp.setStationNameUTF8(ss); + tdd.setStationPassage(sp); + dd.setTicket(tdd); + } + + + private static void populateTravelerData(TravelerData td) { + td.setGroupName("myGroup"); + SequenceOfTravelerType trs = new SequenceOfTravelerType(); + TravelerType tr = new TravelerType(); + tr.setIdCard("12345"); + tr.setFirstName("John"); + tr.setSecondName("Dow"); + tr.setTicketHolder(true); + SequenceOfCustomerStatusType ts = new SequenceOfCustomerStatusType(); + CustomerStatusType cst = new CustomerStatusType(); + cst.setCustomerStatusDescr("senior"); + ts.add(cst); + tr.setStatus(ts); + trs.add(tr); + td.setTraveler(trs); + } + + private static void populateIssuingData(IssuingData issuingDetail) { + issuingDetail.setIssuingYear(2018L); + issuingDetail.setIssuingDay(1L); + issuingDetail.setIssuerPNR("issuerTestPNR"); + issuingDetail.setSpecimen(true); + issuingDetail.setSecurePaperTicket(false); + issuingDetail.setActivated(true); + issuingDetail.setIssuedOnLine(12L); + } + + private static void populateExtensionSequence(SequenceOfExtensionData ed) { + ExtensionData ed1 = new ExtensionData(); + ed1.setExtensionId("1"); + byte[] ba1 = { (byte) 0x82, (byte) 0xDA }; + ed1.setExtensionData(ba1); + ExtensionData ed2 = new ExtensionData(); + ed2.setExtensionId("2"); + byte[] ba2 = { (byte) 0x83, (byte) 0xDA }; + ed2.setExtensionData(ba2); + ed.add(ed1); + ed.add(ed2); + } + + /* + ,controlDetail { + identificationByCardReference { + { trailingCardIdNum 100 } + } + ,identificationByIdCard FALSE + ,identificationByPassportId FALSE + ,passportValidationRequired FALSE + ,onlineValidationRequired FALSE + ,ageCheckRequired FALSE + ,reductionCardCheckRequired FALSE + ,infoText "cd" + ,includedTickets { + { productOwnerIA5 "test" } + } + } + */ + private static void populate(ControlData controlDetail) { + controlDetail.infoText = "cd"; + controlDetail.setAgeCheckRequired(false); + controlDetail.setIdentificationByIdCard(false); + controlDetail.setIdentificationByPassportId(false); + controlDetail.setOnlineValidationRequired(false); + controlDetail.setPassportValidationRequired(false); + controlDetail.setReductionCardCheckRequired(false); + controlDetail.setIdentificationByCardReference(new SequenceOfCardReferenceType()); + controlDetail.getIdentificationByCardReference().add(populateCardRefrence()); + SequenceOfTicketLinkType sit = new SequenceOfTicketLinkType(); + populateLinkedTickets(sit); + controlDetail.setIncludedTickets(sit); + } + + + /* + * + */ + private static void populateLinkedTickets(SequenceOfTicketLinkType sequenceOfTicketLinkType) { + TicketLinkType tlt = new TicketLinkType(); + tlt.productOwnerIA5="test"; + sequenceOfTicketLinkType.add(tlt); + } + + /* + { + trailingCardIdNum 100 + } + */ + private static CardReferenceType populateCardRefrence() { + CardReferenceType cr = new CardReferenceType(); + cr.setTrailingCardIdNum(100L); + return cr; + } + + + +} diff --git a/src/test/java/org/uic/barcode/ticket/api/test/testtickets/StationPassageTestTicketV2.java b/src/test/java/org/uic/barcode/ticket/api/test/testtickets/StationPassageTestTicketV2.java new file mode 100644 index 0000000..c551293 --- /dev/null +++ b/src/test/java/org/uic/barcode/ticket/api/test/testtickets/StationPassageTestTicketV2.java @@ -0,0 +1,183 @@ +package org.uic.barcode.ticket.api.test.testtickets; + +import org.uic.barcode.asn1.datatypesimpl.SequenceOfStringUTF8; +import org.uic.barcode.ticket.api.asn.omv2.CardReferenceType; +import org.uic.barcode.ticket.api.asn.omv2.ControlData; +import org.uic.barcode.ticket.api.asn.omv2.CustomerStatusType; +import org.uic.barcode.ticket.api.asn.omv2.DocumentData; +import org.uic.barcode.ticket.api.asn.omv2.ExtensionData; +import org.uic.barcode.ticket.api.asn.omv2.IssuingData; +import org.uic.barcode.ticket.api.asn.omv2.SequenceOfCardReferenceType; +import org.uic.barcode.ticket.api.asn.omv2.SequenceOfCustomerStatusType; +import org.uic.barcode.ticket.api.asn.omv2.SequenceOfDocumentData; +import org.uic.barcode.ticket.api.asn.omv2.SequenceOfExtensionData; +import org.uic.barcode.ticket.api.asn.omv2.SequenceOfTicketLinkType; +import org.uic.barcode.ticket.api.asn.omv2.SequenceOfTravelerType; +import org.uic.barcode.ticket.api.asn.omv2.StationPassageData; +import org.uic.barcode.ticket.api.asn.omv2.TicketDetailData; +import org.uic.barcode.ticket.api.asn.omv2.TicketLinkType; +import org.uic.barcode.ticket.api.asn.omv2.TravelerData; +import org.uic.barcode.ticket.api.asn.omv2.TravelerType; +import org.uic.barcode.ticket.api.asn.omv2.UicRailTicketData; + +public class StationPassageTestTicketV2 { + + + public static UicRailTicketData getUicTestTicket() { + UicRailTicketData ticket = new UicRailTicketData(); + populateTicket(ticket); + return ticket; + } + + + + private static void populateTicket(UicRailTicketData ticket) { + + ticket.setControlDetail(new ControlData()); + populate(ticket.getControlDetail()); + + + ticket.setIssuingDetail(new IssuingData()); + populateIssuingData(ticket.getIssuingDetail()); + + TravelerData td = new TravelerData(); + populateTravelerData(td); + ticket.setTravelerDetail(td); + + SequenceOfDocumentData ds = new SequenceOfDocumentData(); + + + //StationPassage + DocumentData do2 = new DocumentData(); + addStationPassage(do2); + ds.add(do2); + + ticket.setTransportDocument(ds); + + SequenceOfExtensionData ed = new SequenceOfExtensionData(); + populateExtensionSequence(ed); + ticket.setExtension(ed); + + } + + /* + ticket stationPassage : { + productName "passage" + ,stationNameUTF8 { "Amsterdam" } + ,validFromDay 0 + ,numberOfDaysValid 123 + } + */ + private static void addStationPassage(DocumentData dd) { + TicketDetailData tdd = new TicketDetailData(); + StationPassageData sp = new StationPassageData(); + sp.setProductName("passage"); + sp.setValidFromDay(5L); + sp.setValidFromTime(0L); + sp.setValidUntilDay(5L); + sp.setValidUntilTime(1000L); + sp.setNumberOfDaysValid(5L); + SequenceOfStringUTF8 ss = new SequenceOfStringUTF8(); + ss.add("Amsterdam"); + sp.setStationNameUTF8(ss); + tdd.setStationPassage(sp); + dd.setTicket(tdd); + } + + + private static void populateTravelerData(TravelerData td) { + td.setGroupName("myGroup"); + SequenceOfTravelerType trs = new SequenceOfTravelerType(); + TravelerType tr = new TravelerType(); + tr.setIdCard("12345"); + tr.setFirstName("John"); + tr.setSecondName("Dow"); + tr.setTicketHolder(true); + SequenceOfCustomerStatusType ts = new SequenceOfCustomerStatusType(); + CustomerStatusType cst = new CustomerStatusType(); + cst.setCustomerStatusDescr("senior"); + ts.add(cst); + tr.setStatus(ts); + trs.add(tr); + td.setTraveler(trs); + } + + private static void populateIssuingData(IssuingData issuingDetail) { + issuingDetail.setIssuingYear(2018L); + issuingDetail.setIssuingDay(1L); + issuingDetail.setIssuerPNR("issuerTestPNR"); + issuingDetail.setSpecimen(true); + issuingDetail.setSecurePaperTicket(false); + issuingDetail.setActivated(true); + issuingDetail.setIssuedOnLine(12L); + } + + private static void populateExtensionSequence(SequenceOfExtensionData ed) { + ExtensionData ed1 = new ExtensionData(); + ed1.setExtensionId("1"); + byte[] ba1 = { (byte) 0x82, (byte) 0xDA }; + ed1.setExtensionData(ba1); + ExtensionData ed2 = new ExtensionData(); + ed2.setExtensionId("2"); + byte[] ba2 = { (byte) 0x83, (byte) 0xDA }; + ed2.setExtensionData(ba2); + ed.add(ed1); + ed.add(ed2); + } + + /* + ,controlDetail { + identificationByCardReference { + { trailingCardIdNum 100 } + } + ,identificationByIdCard FALSE + ,identificationByPassportId FALSE + ,passportValidationRequired FALSE + ,onlineValidationRequired FALSE + ,ageCheckRequired FALSE + ,reductionCardCheckRequired FALSE + ,infoText "cd" + ,includedTickets { + { productOwnerIA5 "test" } + } + } + */ + private static void populate(ControlData controlDetail) { + controlDetail.infoText = "cd"; + controlDetail.setAgeCheckRequired(false); + controlDetail.setIdentificationByIdCard(false); + controlDetail.setIdentificationByPassportId(false); + controlDetail.setOnlineValidationRequired(false); + controlDetail.setPassportValidationRequired(false); + controlDetail.setReductionCardCheckRequired(false); + controlDetail.setIdentificationByCardReference(new SequenceOfCardReferenceType()); + controlDetail.getIdentificationByCardReference().add(populateCardRefrence()); + SequenceOfTicketLinkType sit = new SequenceOfTicketLinkType(); + populateLinkedTickets(sit); + controlDetail.setIncludedTickets(sit); + } + + + /* + * + */ + private static void populateLinkedTickets(SequenceOfTicketLinkType sequenceOfTicketLinkType) { + TicketLinkType tlt = new TicketLinkType(); + tlt.productOwnerIA5="test"; + sequenceOfTicketLinkType.add(tlt); + } + + /* + { + trailingCardIdNum 100 + } + */ + private static CardReferenceType populateCardRefrence() { + CardReferenceType cr = new CardReferenceType(); + cr.setTrailingCardIdNum(100L); + return cr; + } + + + +} diff --git a/src/test/java/org/uic/barcode/ticket/api/test/testtickets/VoucherTestTicketV1.java b/src/test/java/org/uic/barcode/ticket/api/test/testtickets/VoucherTestTicketV1.java new file mode 100644 index 0000000..b3c2a76 --- /dev/null +++ b/src/test/java/org/uic/barcode/ticket/api/test/testtickets/VoucherTestTicketV1.java @@ -0,0 +1,145 @@ +package org.uic.barcode.ticket.api.test.testtickets; + +import org.uic.barcode.ticket.api.asn.omv1.CardReferenceType; +import org.uic.barcode.ticket.api.asn.omv1.ControlData; +import org.uic.barcode.ticket.api.asn.omv1.CustomerStatusType; +import org.uic.barcode.ticket.api.asn.omv1.DocumentData; +import org.uic.barcode.ticket.api.asn.omv1.ExtensionData; +import org.uic.barcode.ticket.api.asn.omv1.IssuingData; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCardReferenceType; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfCustomerStatusType; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfDocumentData; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfExtensionData; +import org.uic.barcode.ticket.api.asn.omv1.SequenceOfTravelerType; +import org.uic.barcode.ticket.api.asn.omv1.TicketDetailData; +import org.uic.barcode.ticket.api.asn.omv1.TravelerData; +import org.uic.barcode.ticket.api.asn.omv1.TravelerType; +import org.uic.barcode.ticket.api.asn.omv1.UicRailTicketData; +import org.uic.barcode.ticket.api.asn.omv1.VoucherData; + + public class VoucherTestTicketV1 { + + public static UicRailTicketData getUicTestTicket() { + UicRailTicketData ticket = new UicRailTicketData(); + populateTicket(ticket); + return ticket; + } + + + + private static void populateTicket(UicRailTicketData ticket) { + + ticket.setControlDetail(new ControlData()); + populate(ticket.getControlDetail()); + + + ticket.setIssuingDetail(new IssuingData()); + populateIssuingData(ticket.getIssuingDetail()); + + TravelerData td = new TravelerData(); + populateTravelerData(td); + ticket.setTravelerDetail(td); + + SequenceOfDocumentData ds = new SequenceOfDocumentData(); + + + //FipTicket + DocumentData do1 = new DocumentData(); + addTicket(do1); + ds.add(do1); + + + ticket.setTransportDocument(ds); + + SequenceOfExtensionData ed = new SequenceOfExtensionData(); + populateExtensionSequence(ed); + ticket.setExtension(ed); + + } + + + //issue date: 04-03-2021 12:30 UTC + private static void populateIssuingData(IssuingData issuingDetail) { + issuingDetail.setIssuingYear(2021L); + issuingDetail.setIssuingTime(750L); + issuingDetail.setIssuingDay(63L); + issuingDetail.setIssuerPNR("issuerTestPNR"); + issuingDetail.setSpecimen(true); + issuingDetail.setSecurePaperTicket(false); + issuingDetail.setActivated(true); + issuingDetail.setIssuedOnLine(12L); + } + + private static void addTicket(DocumentData dd) { + + TicketDetailData tdd = new TicketDetailData(); + VoucherData ticket = new VoucherData(); + ticket.setInfoText("coffee voucher"); + ticket.setValidFromYear(2022L); + ticket.setValidFromDay(01L); + ticket.setValidUntilYear(2022L); + ticket.setValidUntilDay(01L); + ticket.setReferenceIA5("ACHE12345"); + ticket.setProductOwnerIA5("COFFEEMACHINE"); + ticket.setValue(500L); + tdd.setVoucher(ticket); + dd.setTicket(tdd); + } + + + + private static void populateTravelerData(TravelerData td) { + SequenceOfTravelerType trs = new SequenceOfTravelerType(); + TravelerType tr = new TravelerType(); + tr.setIdCard("12345"); + tr.setFirstName("John"); + tr.setSecondName("Dow"); + tr.setTicketHolder(true); + SequenceOfCustomerStatusType ts = new SequenceOfCustomerStatusType(); + CustomerStatusType cst = new CustomerStatusType(); + cst.setCustomerStatusDescr("employee"); + ts.add(cst); + tr.setStatus(ts); + trs.add(tr); + td.setTraveler(trs); + } + + + + + + private static void populateExtensionSequence(SequenceOfExtensionData ed) { + ExtensionData ed1 = new ExtensionData(); + ed1.setExtensionId("1"); + byte[] ba1 = { (byte) 0x82, (byte) 0xDA }; + ed1.setExtensionData(ba1); + ExtensionData ed2 = new ExtensionData(); + ed2.setExtensionId("2"); + byte[] ba2 = { (byte) 0x83, (byte) 0xDA }; + ed2.setExtensionData(ba2); + ed.add(ed1); + ed.add(ed2); + } + + private static void populate(ControlData controlDetail) { + controlDetail.infoText = "cd"; + controlDetail.setAgeCheckRequired(false); + controlDetail.setIdentificationByIdCard(false); + controlDetail.setIdentificationByPassportId(false); + controlDetail.setOnlineValidationRequired(false); + controlDetail.setPassportValidationRequired(false); + controlDetail.setReductionCardCheckRequired(false); + controlDetail.setIdentificationByCardReference(new SequenceOfCardReferenceType()); + controlDetail.getIdentificationByCardReference().add(populateCardRefrence()); + } + + + private static CardReferenceType populateCardRefrence() { + CardReferenceType cr = new CardReferenceType(); + cr.setTrailingCardIdNum(100L); + return cr; + } + + + + } diff --git a/src/test/java/org/uic/barcode/ticket/api/test/testtickets/VoucherTestTicketV2.java b/src/test/java/org/uic/barcode/ticket/api/test/testtickets/VoucherTestTicketV2.java new file mode 100644 index 0000000..e7844d6 --- /dev/null +++ b/src/test/java/org/uic/barcode/ticket/api/test/testtickets/VoucherTestTicketV2.java @@ -0,0 +1,145 @@ +package org.uic.barcode.ticket.api.test.testtickets; + +import org.uic.barcode.ticket.api.asn.omv2.CardReferenceType; +import org.uic.barcode.ticket.api.asn.omv2.ControlData; +import org.uic.barcode.ticket.api.asn.omv2.CustomerStatusType; +import org.uic.barcode.ticket.api.asn.omv2.DocumentData; +import org.uic.barcode.ticket.api.asn.omv2.ExtensionData; +import org.uic.barcode.ticket.api.asn.omv2.IssuingData; +import org.uic.barcode.ticket.api.asn.omv2.SequenceOfCardReferenceType; +import org.uic.barcode.ticket.api.asn.omv2.SequenceOfCustomerStatusType; +import org.uic.barcode.ticket.api.asn.omv2.SequenceOfDocumentData; +import org.uic.barcode.ticket.api.asn.omv2.SequenceOfExtensionData; +import org.uic.barcode.ticket.api.asn.omv2.SequenceOfTravelerType; +import org.uic.barcode.ticket.api.asn.omv2.TicketDetailData; +import org.uic.barcode.ticket.api.asn.omv2.TravelerData; +import org.uic.barcode.ticket.api.asn.omv2.TravelerType; +import org.uic.barcode.ticket.api.asn.omv2.UicRailTicketData; +import org.uic.barcode.ticket.api.asn.omv2.VoucherData; + + public class VoucherTestTicketV2 { + + public static UicRailTicketData getUicTestTicket() { + UicRailTicketData ticket = new UicRailTicketData(); + populateTicket(ticket); + return ticket; + } + + + + private static void populateTicket(UicRailTicketData ticket) { + + ticket.setControlDetail(new ControlData()); + populate(ticket.getControlDetail()); + + + ticket.setIssuingDetail(new IssuingData()); + populateIssuingData(ticket.getIssuingDetail()); + + TravelerData td = new TravelerData(); + populateTravelerData(td); + ticket.setTravelerDetail(td); + + SequenceOfDocumentData ds = new SequenceOfDocumentData(); + + + //FipTicket + DocumentData do1 = new DocumentData(); + addTicket(do1); + ds.add(do1); + + + ticket.setTransportDocument(ds); + + SequenceOfExtensionData ed = new SequenceOfExtensionData(); + populateExtensionSequence(ed); + ticket.setExtension(ed); + + } + + + //issue date: 04-03-2021 12:30 UTC + private static void populateIssuingData(IssuingData issuingDetail) { + issuingDetail.setIssuingYear(2021L); + issuingDetail.setIssuingTime(750L); + issuingDetail.setIssuingDay(63L); + issuingDetail.setIssuerPNR("issuerTestPNR"); + issuingDetail.setSpecimen(true); + issuingDetail.setSecurePaperTicket(false); + issuingDetail.setActivated(true); + issuingDetail.setIssuedOnLine(12L); + } + + private static void addTicket(DocumentData dd) { + + TicketDetailData tdd = new TicketDetailData(); + VoucherData ticket = new VoucherData(); + ticket.setInfoText("coffee voucher"); + ticket.setValidFromYear(2022L); + ticket.setValidFromDay(01L); + ticket.setValidUntilYear(2022L); + ticket.setValidUntilDay(01L); + ticket.setReferenceIA5("ACHE12345"); + ticket.setProductOwnerIA5("COFFEEMACHINE"); + ticket.setValue(500L); + tdd.setVoucher(ticket); + dd.setTicket(tdd); + } + + + + private static void populateTravelerData(TravelerData td) { + SequenceOfTravelerType trs = new SequenceOfTravelerType(); + TravelerType tr = new TravelerType(); + tr.setIdCard("12345"); + tr.setFirstName("John"); + tr.setSecondName("Dow"); + tr.setTicketHolder(true); + SequenceOfCustomerStatusType ts = new SequenceOfCustomerStatusType(); + CustomerStatusType cst = new CustomerStatusType(); + cst.setCustomerStatusDescr("employee"); + ts.add(cst); + tr.setStatus(ts); + trs.add(tr); + td.setTraveler(trs); + } + + + + + + private static void populateExtensionSequence(SequenceOfExtensionData ed) { + ExtensionData ed1 = new ExtensionData(); + ed1.setExtensionId("1"); + byte[] ba1 = { (byte) 0x82, (byte) 0xDA }; + ed1.setExtensionData(ba1); + ExtensionData ed2 = new ExtensionData(); + ed2.setExtensionId("2"); + byte[] ba2 = { (byte) 0x83, (byte) 0xDA }; + ed2.setExtensionData(ba2); + ed.add(ed1); + ed.add(ed2); + } + + private static void populate(ControlData controlDetail) { + controlDetail.infoText = "cd"; + controlDetail.setAgeCheckRequired(false); + controlDetail.setIdentificationByIdCard(false); + controlDetail.setIdentificationByPassportId(false); + controlDetail.setOnlineValidationRequired(false); + controlDetail.setPassportValidationRequired(false); + controlDetail.setReductionCardCheckRequired(false); + controlDetail.setIdentificationByCardReference(new SequenceOfCardReferenceType()); + controlDetail.getIdentificationByCardReference().add(populateCardRefrence()); + } + + + private static CardReferenceType populateCardRefrence() { + CardReferenceType cr = new CardReferenceType(); + cr.setTrailingCardIdNum(100L); + return cr; + } + + + + } diff --git a/src/test/java/org/uic/barcode/ticketTestDB/DecodeSparpreisTicketDBTest.java b/src/test/java/org/uic/barcode/ticketTestDB/DecodeSparpreisTicketDBTest.java new file mode 100644 index 0000000..5af8bc2 --- /dev/null +++ b/src/test/java/org/uic/barcode/ticketTestDB/DecodeSparpreisTicketDBTest.java @@ -0,0 +1,61 @@ +package org.uic.barcode.ticketTestDB; + +import org.junit.Assert; +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.ITrainLink; +import org.uic.barcode.ticket.api.spec.IUicRailTicket; + +public class DecodeSparpreisTicketDBTest { + + @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.getTravelerDetails().getTravelers().size() == 1); + assert(ticket.getDocumentData().size() == 1); + IOpenTicket openTicket = (IOpenTicket) ticket.getDocumentData().iterator().next(); + Assert.assertNotNull(openTicket.getValidRegionList()); + ITrainLink tl = (ITrainLink) openTicket.getValidRegionList().iterator().next(); + assert(tl.getTrain().contentEquals("ICE973")); + 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 -- cgit v1.2.3