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; } }