From 58bafb860b060c609a01815657b4df22ce8fbffc Mon Sep 17 00:00:00 2001 From: CGantert345 <57003061+CGantert345@users.noreply.github.com> Date: Tue, 12 Apr 2022 12:54:16 +0200 Subject: test on algorithm name resolver --- .../java/org/uic/barcode/ticket/api/utils/OpenAsn2ApiDecoder.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/main/java/org/uic/barcode/ticket/api/utils/OpenAsn2ApiDecoder.java') diff --git a/src/main/java/org/uic/barcode/ticket/api/utils/OpenAsn2ApiDecoder.java b/src/main/java/org/uic/barcode/ticket/api/utils/OpenAsn2ApiDecoder.java index 031d5b3..f4e041f 100644 --- a/src/main/java/org/uic/barcode/ticket/api/utils/OpenAsn2ApiDecoder.java +++ b/src/main/java/org/uic/barcode/ticket/api/utils/OpenAsn2ApiDecoder.java @@ -356,12 +356,14 @@ public class OpenAsn2ApiDecoder implements Asn2ApiDecoder { private IDelayConfirmation convertDelayConfirmation(DelayConfirmation asnDocument, Date issuingDate) { IDelayConfirmation document = factory.createDelayConfirmation(); - document.setReference(UicEncoderUtils.mapToString(asnDocument.getReferenceNum().longValue(),asnDocument.getReferenceIA5())); + document.setReference(UicEncoderUtils.mapToString(asnDocument.getReferenceNum(),asnDocument.getReferenceIA5())); document.setExtension(convertExtension(asnDocument.getExtension())); document.setInfoText(asnDocument.getInfoText()); + document.setTrain(UicEncoderUtils.mapToString(asnDocument.getTrainNum(), asnDocument.getTrainIA5())); + if (asnDocument.getStationCodeTable()!=null){ document.setStationCodeTable(IStationCodeTable.valueOf(asnDocument.getStationCodeTable().name())); } -- cgit v1.2.3 From c830c865409321401504ac1ca296ced194811a16 Mon Sep 17 00:00:00 2001 From: CGantert345 <57003061+CGantert345@users.noreply.github.com> Date: Tue, 12 Apr 2022 14:12:55 +0200 Subject: test on car carriage cleanup --- src/main/java/org/uic/barcode/ticket/api/utils/OpenAsn2ApiDecoder.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/main/java/org/uic/barcode/ticket/api/utils/OpenAsn2ApiDecoder.java') diff --git a/src/main/java/org/uic/barcode/ticket/api/utils/OpenAsn2ApiDecoder.java b/src/main/java/org/uic/barcode/ticket/api/utils/OpenAsn2ApiDecoder.java index f4e041f..f62e1f9 100644 --- a/src/main/java/org/uic/barcode/ticket/api/utils/OpenAsn2ApiDecoder.java +++ b/src/main/java/org/uic/barcode/ticket/api/utils/OpenAsn2ApiDecoder.java @@ -648,7 +648,7 @@ public class OpenAsn2ApiDecoder implements Asn2ApiDecoder { } } - return null; + return document; } -- cgit v1.2.3 From 85595c7fa17e056f4dd664fb7e01d6940e1c5d8e Mon Sep 17 00:00:00 2001 From: CGantert345 <57003061+CGantert345@users.noreply.github.com> Date: Wed, 13 Apr 2022 16:17:52 +0200 Subject: complete test for v3 fcb elements fixes on high level data mappings --- .../ticket/api/utils/OpenAsn2ApiDecoder.java | 104 +++++++++++++++++++-- 1 file changed, 97 insertions(+), 7 deletions(-) (limited to 'src/main/java/org/uic/barcode/ticket/api/utils/OpenAsn2ApiDecoder.java') diff --git a/src/main/java/org/uic/barcode/ticket/api/utils/OpenAsn2ApiDecoder.java b/src/main/java/org/uic/barcode/ticket/api/utils/OpenAsn2ApiDecoder.java index f62e1f9..5f5ce4d 100644 --- a/src/main/java/org/uic/barcode/ticket/api/utils/OpenAsn2ApiDecoder.java +++ b/src/main/java/org/uic/barcode/ticket/api/utils/OpenAsn2ApiDecoder.java @@ -5,12 +5,14 @@ package org.uic.barcode.ticket.api.utils; import java.io.IOException; import java.util.Date; +import java.util.Iterator; import java.util.List; import org.uic.barcode.ticket.api.asn.omv1.BerthDetailData; import org.uic.barcode.ticket.api.asn.omv1.CarCarriageReservationData; import org.uic.barcode.ticket.api.asn.omv1.CardReferenceType; import org.uic.barcode.ticket.api.asn.omv1.CompartmentDetailsType; +import org.uic.barcode.ticket.api.asn.omv1.CompartmentPositionType; import org.uic.barcode.ticket.api.asn.omv1.ControlData; import org.uic.barcode.ticket.api.asn.omv1.CountermarkData; import org.uic.barcode.ticket.api.asn.omv1.CustomerCardData; @@ -51,6 +53,7 @@ import org.uic.barcode.ticket.api.asn.omv1.VatDetailType; import org.uic.barcode.ticket.api.asn.omv1.ViaStationType; import org.uic.barcode.ticket.api.asn.omv1.VoucherData; import org.uic.barcode.ticket.api.asn.omv1.ZoneType; +import org.uic.barcode.ticket.api.asn.omv1.ServiceType; import org.uic.barcode.ticket.api.impl.SimpleUicTicketObjectFactory; import org.uic.barcode.ticket.api.spec.IBerth; import org.uic.barcode.ticket.api.spec.IBerthTypeType; @@ -94,6 +97,7 @@ import org.uic.barcode.ticket.api.spec.IRoofRackType; import org.uic.barcode.ticket.api.spec.IRouteSection; import org.uic.barcode.ticket.api.spec.ISeriesDataDetails; import org.uic.barcode.ticket.api.spec.IServiceBrand; +import org.uic.barcode.ticket.api.spec.IServiceType; import org.uic.barcode.ticket.api.spec.IStationCodeTable; import org.uic.barcode.ticket.api.spec.IStationPassage; import org.uic.barcode.ticket.api.spec.ITariff; @@ -436,6 +440,10 @@ public class OpenAsn2ApiDecoder implements Asn2ApiDecoder { document.setArrivalUTCoffset(asnDocument.getDepartureUTCOffset()); } + if (asnDocument.getService() != null) { + document.setService(convert(asnDocument.getService())); + } + if(asnDocument.getClassCode()!=null){ document.setClassCode(ITravelClassType.valueOf(asnDocument.getClassCode().name())); } @@ -455,6 +463,10 @@ public class OpenAsn2ApiDecoder implements Asn2ApiDecoder { if (asnDocument.getPlaces()!=null) { document.setPlaces(convertPlaces(asnDocument.getPlaces())); } + + if (asnDocument.getAdditionalPlaces()!=null) { + document.setAdditionalPlaces(convertPlaces(asnDocument.getAdditionalPlaces())); + } if (asnDocument.getBicyclePlaces()!=null) { document.setBicyclePlaces(convertPlaces(asnDocument.getBicyclePlaces())); @@ -517,6 +529,20 @@ public class OpenAsn2ApiDecoder implements Asn2ApiDecoder { } + private IServiceType convert(ServiceType service) { + + if (service == null) { + return null; + } else if (service.equals(ServiceType.seat)) { + return IServiceType.seat; + } else if (service.equals(ServiceType.couchette)) { + return IServiceType.couchette; + } else if (service.equals(ServiceType.berth)) { + return IServiceType.berth; + } + + return null; + } @@ -701,11 +727,24 @@ public class OpenAsn2ApiDecoder implements Asn2ApiDecoder { details.setCompartmentTypeDescr(asnDetails.getCompartmentTypeDescr()); details.setSpecialAllocationDescr(asnDetails.getSpecialAllocationDescr()); - details.setPosition(ICompartmentPositionType.valueOf(asnDetails.getPosition().name())); + details.setPosition(convert(asnDetails.getPosition())); return details; } + private ICompartmentPositionType convert(CompartmentPositionType position) { + if (position == null) { + return null; + } else if (position.equals(CompartmentPositionType.lowerLevel)) { + return ICompartmentPositionType.lowerLevel; + } else if (position.equals(CompartmentPositionType.upperLevel)) { + return ICompartmentPositionType.upperLevel; + } else if (position.equals(CompartmentPositionType.unspecified)) { + return ICompartmentPositionType.unspecified; + } + return null; + } + /** * Convert places. * @@ -796,7 +835,10 @@ public class OpenAsn2ApiDecoder implements Asn2ApiDecoder { document.setReference(UicEncoderUtils.mapToString(asnDocument.getReferenceNum(),asnDocument.getReferenceIA5())); document.setTicketReference(UicEncoderUtils.mapToString(asnDocument.getTicketReferenceNum(),asnDocument.getTicketReferenceIA5())); - + + if (asnDocument.getStationCodeTable()!=null){ + document.setStationCodeTable(IStationCodeTable.valueOf(asnDocument.getStationCodeTable().name())); + } document.setFromStation(UicEncoderUtils.mapToString(asnDocument.getFromStationNum(),asnDocument.getFromStationIA5())); document.setToStation(UicEncoderUtils.mapToString(asnDocument.getToStationNum(),asnDocument.getToStationIA5())); @@ -811,7 +853,6 @@ public class OpenAsn2ApiDecoder implements Asn2ApiDecoder { } document.setReturnDescription(convertReturnDescription(asnDocument.getReturnDescription(), issuingDate)); - if(asnDocument.getReturnIncluded()!=null){ document.setReturnIncluded(asnDocument.getReturnIncluded()); @@ -819,7 +860,29 @@ public class OpenAsn2ApiDecoder implements Asn2ApiDecoder { document.setReturnIncluded(false); } - + + if (asnDocument.getCarriersNum()!=null && !asnDocument.getCarriersNum().isEmpty()){ + for(Long carrier :asnDocument.getCarriersNum()){ + document.addIncludedCarrier(carrier.toString()); + } + } + if (asnDocument.getCarriersIA5()!=null && !asnDocument.getCarriersIA5().isEmpty()){ + for(String carrier :asnDocument.getCarriersIA5()){ + document.addIncludedCarrier(carrier); + } + } + + if (asnDocument.getIncludedServiceBrands()!=null && !asnDocument.getIncludedServiceBrands().isEmpty()){ + for(Long number :asnDocument.getIncludedServiceBrands()){ + document.addIncludedServiceBrand(number.intValue()); + } + } + + if (asnDocument.getExcludedServiceBrands()!=null && !asnDocument.getExcludedServiceBrands().isEmpty()){ + for(Long number :asnDocument.getExcludedServiceBrands()){ + document.addExcludedServiceBrand(number.intValue()); + } + } document.setGroupName(asnDocument.getGroupName()); @@ -932,6 +995,10 @@ public class OpenAsn2ApiDecoder implements Asn2ApiDecoder { document.setClassCode(ITravelClassType.valueOf(asnDocument.getClassCode().name())); } + if (asnDocument.getServiceLevel() != null && asnDocument.getServiceLevel().length() > 0) { + document.setServiceLevel(asnDocument.getServiceLevel()); + } + document.setValidFrom(asnDocument.getValidFromDate(issuingDate)); document.setValidUntil(asnDocument.getValidUntilDate(issuingDate)); @@ -1058,6 +1125,10 @@ public class OpenAsn2ApiDecoder implements Asn2ApiDecoder { document.setClassCode(classCode); } + if (asnDocument.getServiceLevel() != null && asnDocument.getServiceLevel().length() > 0) { + document.setServiceLevel(asnDocument.getServiceLevel()); + } + document.setValidFrom(asnDocument.getValidFromDate(issuingDate)); document.setValidUntil(asnDocument.getValidUntilDate(issuingDate)); @@ -1173,9 +1244,9 @@ public class OpenAsn2ApiDecoder implements Asn2ApiDecoder { document.setProductName(asnDocument.getProductName()); document.setProductOwner(UicEncoderUtils.mapToString(asnDocument.getProductOwnerNum(),asnDocument.getProductOwnerIA5())); - if (asnDocument.getStationNameUTF8()!= null && asnDocument.getStationNameUTF8().isEmpty() ) { + if (asnDocument.getStationNameUTF8()!= null && !asnDocument.getStationNameUTF8().isEmpty() ) { for (String name : asnDocument.getStationNameUTF8()) { - document.addStation(name); + document.addStationName(name); } } @@ -1338,9 +1409,13 @@ public class OpenAsn2ApiDecoder implements Asn2ApiDecoder { } if (asnDocument.getAlternativeRoutes()!= null && !asnDocument.getAlternativeRoutes().isEmpty()) { for ( ViaStationType routeVia: asnDocument.getAlternativeRoutes()) { - via.addRouteStation(convertViaStation(routeVia)); + via.getAlternativeRoutes().add(convertViaStation(routeVia)); } } + + if (asnDocument.getSeriesId() != null) { + via.setSeriesId(asnDocument.getSeriesId().intValue()); + } return via; @@ -1395,6 +1470,13 @@ public class OpenAsn2ApiDecoder implements Asn2ApiDecoder { zone.setNUTScode(asnDocument.getNutsCode()); + if (asnDocument.getZoneId() != null && !asnDocument.getZoneId().isEmpty()) { + Iterator it = asnDocument.getZoneId().iterator(); + while (it.hasNext()) { + zone.addZoneId(it.next().intValue()); + } + } + return zone; } @@ -1413,6 +1495,8 @@ public class OpenAsn2ApiDecoder implements Asn2ApiDecoder { IGeoCoordinate firstEdge = convertGeoCoordinate(asnPolygone.getFirstEdge()); if (firstEdge == null) return null; + + polygone.addEdge(firstEdge); if (asnPolygone.getEdges()!=null && !asnPolygone.getEdges().isEmpty()) { for (DeltaCoordinates asnEdge :asnPolygone.getEdges()){ @@ -1645,6 +1729,9 @@ public class OpenAsn2ApiDecoder implements Asn2ApiDecoder { if (asnDocument.getNumberOfDaysOfTravel() != null) { document.setNumberOfDaysOfTravel(asnDocument.getNumberOfDaysOfTravel().intValue()); } + if (asnDocument.getNumberOfValidityDays() != null) { + document.setNumberOfValidityDays(asnDocument.getNumberOfValidityDays().intValue()); + } if (asnDocument.getNumberOfPossibleTrips() != null) { document.setNumberOfPossibleTrips(asnDocument.getNumberOfPossibleTrips().intValue()); } @@ -1856,6 +1943,9 @@ public class OpenAsn2ApiDecoder implements Asn2ApiDecoder { card.addIncludedService(new Integer(service.intValue())); } } + + card.setExtension(convertExtension(asnDocument.getExtension())); + return card; } -- cgit v1.2.3 From 4204b79b6fd1f783ac8c5282ea46d50b88cd0355 Mon Sep 17 00:00:00 2001 From: CGantert345 <57003061+CGantert345@users.noreply.github.com> Date: Wed, 13 Apr 2022 17:48:04 +0200 Subject: unit test for fcb version 1 including all elements --- .../ticket/api/utils/OpenAsn2ApiDecoder.java | 36 ++++++++++++++++++---- 1 file changed, 30 insertions(+), 6 deletions(-) (limited to 'src/main/java/org/uic/barcode/ticket/api/utils/OpenAsn2ApiDecoder.java') diff --git a/src/main/java/org/uic/barcode/ticket/api/utils/OpenAsn2ApiDecoder.java b/src/main/java/org/uic/barcode/ticket/api/utils/OpenAsn2ApiDecoder.java index 5f5ce4d..4cccb18 100644 --- a/src/main/java/org/uic/barcode/ticket/api/utils/OpenAsn2ApiDecoder.java +++ b/src/main/java/org/uic/barcode/ticket/api/utils/OpenAsn2ApiDecoder.java @@ -8,6 +8,7 @@ import java.util.Date; import java.util.Iterator; import java.util.List; +import org.uic.barcode.ticket.EncodingFormatException; import org.uic.barcode.ticket.api.asn.omv1.BerthDetailData; import org.uic.barcode.ticket.api.asn.omv1.CarCarriageReservationData; import org.uic.barcode.ticket.api.asn.omv1.CardReferenceType; @@ -132,8 +133,9 @@ public class OpenAsn2ApiDecoder implements Asn2ApiDecoder { * @param asnUicRailTicketData the asn uic rail ticket data * @return the decoded uic rail ticket * @throws IOException Signals that an I/O exception has occurred. + * @throws EncodingFormatException */ - public IUicRailTicket decodeFromAsn (UicRailTicketData asnUicRailTicketData) throws IOException{ + public IUicRailTicket decodeFromAsn (UicRailTicketData asnUicRailTicketData) throws IOException, EncodingFormatException{ IUicRailTicket uicRailTicket = factory.createUicRailTicket(); @@ -149,8 +151,9 @@ public class OpenAsn2ApiDecoder implements Asn2ApiDecoder { * @param data byte array of the asn.1 encoded FCB data * @return the decoded uic rail ticket * @throws IOException Signals that an I/O exception has occurred. + * @throws EncodingFormatException */ - public IUicRailTicket decodeFromAsn (byte[] data) throws IOException{ + public IUicRailTicket decodeFromAsn (byte[] data) throws IOException, EncodingFormatException{ UicRailTicketData asnUicRailTicketData = UicRailTicketData.decode(data); @@ -171,8 +174,9 @@ public class OpenAsn2ApiDecoder implements Asn2ApiDecoder { * * @param uicRailTicket the uic rail ticket * @param asnUicRailTicketData the asn uic rail ticket data + * @throws EncodingFormatException */ - protected void populateFromAsn1Model(IUicRailTicket uicRailTicket, UicRailTicketData asnUicRailTicketData) { + protected void populateFromAsn1Model(IUicRailTicket uicRailTicket, UicRailTicketData asnUicRailTicketData) throws EncodingFormatException { if (asnUicRailTicketData.getExtension()!= null && !asnUicRailTicketData.getExtension().isEmpty()) { for (ExtensionData asnExtension : asnUicRailTicketData.getExtension()){ @@ -215,8 +219,9 @@ public class OpenAsn2ApiDecoder implements Asn2ApiDecoder { * @param asnTransportDocuments the asn transport documents * @param uicRailTicket the uic rail ticket * @param issuingDate the issuing date + * @throws EncodingFormatException */ - protected void populateTravelDocuments(List asnTransportDocuments,IUicRailTicket uicRailTicket, Date issuingDate) { + protected void populateTravelDocuments(List asnTransportDocuments,IUicRailTicket uicRailTicket, Date issuingDate) throws EncodingFormatException { for ( DocumentData asnDocument : asnTransportDocuments){ @@ -1658,12 +1663,15 @@ public class OpenAsn2ApiDecoder implements Asn2ApiDecoder { * @param asnDocument the asn document * @param issuingDate the issuing date * @return the i fip ticket + * @throws EncodingFormatException */ - protected IFipTicket convertFipTicket(FIPTicketData asnDocument , Date issuingDate) { + protected IFipTicket convertFipTicket(FIPTicketData asnDocument , Date issuingDate) throws EncodingFormatException { if (asnDocument == null) return null; IFipTicket document = factory.createFipTicket(); + + if(asnDocument.getClassCode()!=null){ document.setClassCode(ITravelClassType.valueOf(asnDocument.getClassCode().name())); } @@ -1671,7 +1679,16 @@ public class OpenAsn2ApiDecoder implements Asn2ApiDecoder { document.setValidFrom(asnDocument.getValidFromDate(issuingDate)); document.setValidUntil(asnDocument.getValidUntilDate(issuingDate)); - + if (asnDocument.getCarrierNum()!=null && !asnDocument.getCarrierNum().isEmpty()){ + for(Long carrier :asnDocument.getCarrierNum()){ + document.addCarrier(carrier.toString()); + } + } + if (asnDocument.getCarrierIA5()!=null && !asnDocument.getCarrierIA5().isEmpty()){ + for(String carrier :asnDocument.getCarrierIA5()){ + document.addCarrier(carrier); + } + } document.setProductId(UicEncoderUtils.mapToString(asnDocument.getProductIdNum(),asnDocument.getProductIdIA5())); document.setProductOwner(UicEncoderUtils.mapToString(asnDocument.getProductOwnerNum(),asnDocument.getProductOwnerIA5())); @@ -2200,6 +2217,13 @@ public class OpenAsn2ApiDecoder implements Asn2ApiDecoder { issuingDetail.setPointOfSale(convertGeoCoordinate(asnIssuingDetail.getPointOfSale())); } + + issuingDetail.setCurrency(asnIssuingDetail.getCurrency()); + + if (asnIssuingDetail.getCurrencyFract() != null) { + issuingDetail.setCurrencyFraction(asnIssuingDetail.getCurrencyFract().intValue()); + } + } -- cgit v1.2.3