From 425bd35c736b7e1c0dbe5b3f9162e195b3be6018 Mon Sep 17 00:00:00 2001 From: CGantert345 <57003061+CGantert345@users.noreply.github.com> Date: Thu, 25 Feb 2021 11:02:26 +0100 Subject: - bug fix on TicketType Enum - duplicate function getDocument removed - issuedOnLine null value allowed - maven install added (required renaming of some packages) --- src/org/uic/ticket/api/test/DateTimeUtilsTest.java | 45 ---- .../uic/ticket/api/test/SimpleUicTestTicket.java | 245 --------------------- .../ticket/api/test/UperEncodeTicketTestV1.java | 118 ---------- .../api/test/UperEncodeUICTicketExtensionTest.java | 127 ----------- 4 files changed, 535 deletions(-) delete mode 100644 src/org/uic/ticket/api/test/DateTimeUtilsTest.java delete mode 100644 src/org/uic/ticket/api/test/SimpleUicTestTicket.java delete mode 100644 src/org/uic/ticket/api/test/UperEncodeTicketTestV1.java delete mode 100644 src/org/uic/ticket/api/test/UperEncodeUICTicketExtensionTest.java (limited to 'src/org/uic/ticket/api/test') diff --git a/src/org/uic/ticket/api/test/DateTimeUtilsTest.java b/src/org/uic/ticket/api/test/DateTimeUtilsTest.java deleted file mode 100644 index 1b809dd..0000000 --- a/src/org/uic/ticket/api/test/DateTimeUtilsTest.java +++ /dev/null @@ -1,45 +0,0 @@ -package org.uic.ticket.api.test; - -import java.util.Calendar; -import java.util.TimeZone; -import org.junit.Test; -import org.uic.ticket.api.asn.omv1.DateTimeUtils; - - -public class DateTimeUtilsTest{ - - - - @Test public void testDateDiff1() throws IllegalArgumentException, IllegalAccessException { - - Calendar issuing = Calendar.getInstance(); - issuing.setTimeZone(TimeZone.getTimeZone("UTC")); - issuing.set(Calendar.YEAR,2017); - issuing.set(Calendar.DAY_OF_MONTH, 31); - issuing.set(Calendar.MONTH, 12); - issuing.set(Calendar.HOUR_OF_DAY, 23); - issuing.set(Calendar.MINUTE, 5); - - Calendar local = Calendar.getInstance(); - local.set(Calendar.YEAR,2018); - local.set(Calendar.DAY_OF_MONTH, 1); - local.set(Calendar.MONTH, 1); - issuing.set(Calendar.HOUR_OF_DAY, 0); - issuing.set(Calendar.MINUTE, 5); - - Long diff = DateTimeUtils.getDateDifference(issuing.getTime(), local.getTime()); - - - assert(diff.intValue() == 1); - } - - - - - - - - - - -} diff --git a/src/org/uic/ticket/api/test/SimpleUicTestTicket.java b/src/org/uic/ticket/api/test/SimpleUicTestTicket.java deleted file mode 100644 index a4788d3..0000000 --- a/src/org/uic/ticket/api/test/SimpleUicTestTicket.java +++ /dev/null @@ -1,245 +0,0 @@ -package org.uic.ticket.api.test; - -import org.uic.ticket.api.asn.omv1.CardReferenceType; -import org.uic.ticket.api.asn.omv1.ControlData; -import org.uic.ticket.api.asn.omv1.CustomerStatusType; -import org.uic.ticket.api.asn.omv1.DocumentData; -import org.uic.ticket.api.asn.omv1.ExtensionData; -import org.uic.ticket.api.asn.omv1.IssuingData; -import org.uic.ticket.api.asn.omv1.OpenTicketData; -import org.uic.ticket.api.asn.omv1.SequenceOfCardReferenceType; -import org.uic.ticket.api.asn.omv1.SequenceOfCustomerStatusType; -import org.uic.ticket.api.asn.omv1.SequenceOfDocumentData; -import org.uic.ticket.api.asn.omv1.SequenceOfExtensionData; -import org.uic.ticket.api.asn.omv1.SequenceOfTicketLinkType; -import org.uic.ticket.api.asn.omv1.SequenceOfTravelerType; -import org.uic.ticket.api.asn.omv1.StationPassageData; -import org.uic.ticket.api.asn.omv1.TicketDetailData; -import org.uic.ticket.api.asn.omv1.TicketLinkType; -import org.uic.ticket.api.asn.omv1.TokenType; -import org.uic.ticket.api.asn.omv1.TravelerData; -import org.uic.ticket.api.asn.omv1.TravelerType; -import org.uic.ticket.api.asn.omv1.UicRailTicketData; - -import net.gcdc.asn1.datatypesimpl.SequenceOfStringUTF8; - -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(); - populateIncludedTickets(sit); - controlDetail.setIncludedTickets(sit); - } - - - /* - * - */ - private static void populateIncludedTickets(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/org/uic/ticket/api/test/UperEncodeTicketTestV1.java b/src/org/uic/ticket/api/test/UperEncodeTicketTestV1.java deleted file mode 100644 index 419981f..0000000 --- a/src/org/uic/ticket/api/test/UperEncodeTicketTestV1.java +++ /dev/null @@ -1,118 +0,0 @@ -package org.uic.ticket.api.test; - -import static org.junit.Assert.assertEquals; - -import java.util.logging.Level; - -import net.gcdc.asn1.uper.UperEncoder; - -import org.junit.Test; -import org.uic.ticket.api.asn.omv1.UicRailTicketData; - - -public class UperEncodeTicketTestV1 { - - /** - * Example from the Standard on UPER. -
-     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 {
-          	{ productOwnerIA5 "test" }
-          }
-       } 
-       ,extension {
-            { extensionId "1", extensionData '82DA'H }
-           ,{ extensionId "2", extensionData '83DA'H }
-        }			
-     }
-     
-     
-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 B2008101 3A65E7D0 08058814
-16D00B20 283DA0
-
-    
- */ - - - - @Test public void testEncodeTicket() throws IllegalArgumentException, IllegalAccessException { - UicRailTicketData ticket = SimpleUicTestTicket.getUicTestTicket(); - byte[] encoded = UperEncoder.encode(ticket); - String hex = UperEncoder.hexStringFromBytes(encoded); - UperEncoder.logger.log(Level.FINEST,String.format("data hex: %s", hex)); - - String expectedHex = "78022020050DD3CF9F5CBCAA65E7D284EA40218A02D000822537B43701A237BB82B164CDA358088373CBBB4EFE40EDAF28EE4DEEAE004A03AD12B01416D08000000004039BDC195B951A58DAD95D125B999BC48088040EE0C2E6E6C2CECA021282DAE6E8CAE4C8C2DA0080BDA60100402C800131B20081013A65E7D00805881416D00B20283DA0"; - UperEncoder.logger.debug(String.format("first difference at index: %d",hex.compareTo(expectedHex))); - UperEncoder.logger.debug(String.format("data returned: %s",hex)); - UperEncoder.logger.debug(String.format("data expected: %s",expectedHex)); - assert(hex.equals(expectedHex)); - } - - @Test public void testDecodeTicket() throws IllegalArgumentException, IllegalAccessException { - UicRailTicketData ticket = SimpleUicTestTicket.getUicTestTicket(); - byte[] encoded = UperEncoder.encode(ticket); - String hex = UperEncoder.hexStringFromBytes(encoded); - UperEncoder.logger.log(Level.FINEST,String.format("data hex: %s", hex)); - String expectedHex = "78022020050DD3CF9F5CBCAA65E7D284EA40218A02D000822537B43701A237BB82B164CDA358088373CBBB4EFE40EDAF28EE4DEEAE004A03AD12B01416D08000000004039BDC195B951A58DAD95D125B999BC48088040EE0C2E6E6C2CECA021282DAE6E8CAE4C8C2DA0080BDA60100402C800131B20081013A65E7D00805881416D00B20283DA0"; - assertEquals(hex,expectedHex); - UicRailTicketData decodedTicket = UperEncoder.decode(encoded, UicRailTicketData.class); - assert(decodedTicket != null); - assertEquals(decodedTicket.controlDetail.ageCheckRequired , false ); - assertEquals(decodedTicket.controlDetail.getInfoText() , "cd" ); - assertEquals(decodedTicket.controlDetail.getIncludedTickets().get(0).getProductOwnerIA5() , "test" ); - assert(decodedTicket.controlDetail.getIdentificationByCardReference().get(0).getTrailingCardIdNum() == 100L ); - } - -} diff --git a/src/org/uic/ticket/api/test/UperEncodeUICTicketExtensionTest.java b/src/org/uic/ticket/api/test/UperEncodeUICTicketExtensionTest.java deleted file mode 100644 index 3874b4e..0000000 --- a/src/org/uic/ticket/api/test/UperEncodeUICTicketExtensionTest.java +++ /dev/null @@ -1,127 +0,0 @@ -package org.uic.ticket.api.test; - -import static org.junit.Assert.assertEquals; - -import java.util.logging.Level; - -import net.gcdc.asn1.datatypes.Asn1Optional; -import net.gcdc.asn1.datatypes.Sequence; -import net.gcdc.asn1.uper.UperEncoder; - -import org.junit.Test; -import org.uic.ticket.api.asn.omv1.ExtensionData; -import org.uic.ticket.api.asn.omv1.SequenceOfExtensionData; - - -public class UperEncodeUICTicketExtensionTest { - - /** - * Example from the Standard on UPER. -
- 		World-Schema DEFINITIONS AUTOMATIC TAGS ::= 
-		BEGIN
-		TestRecord ::= [APPLICATION 0] IMPLICIT SEQUENCE {     
-          extensionList			SEQUENCE OF ExtensionData 	OPTIONAL   
-        }
-        ExtensionData	::= SEQUENCE 	{	
-	      extensionId   IA5String, 
-	      extensionData OCTET STRING
-        }        
-        END
-     
-     
-		value TestRecord ::= { extensionList {
-       		{ extensionId "1", extensionData '82DA'H }
-      	   ,{ extensionId "2", extensionData '83DA'H }
-   		 }			
-		}
-     
-Encoding to the file 'data.uper' using PER UNALIGNED encoding rule...
-TestRecord SEQUENCE [fieldcount (not encoded) = 1]
-  extensionList 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 = 10.7
-Encoded successfully in 11 bytes:
-8100B102 82DA0164 0507B4
-    
- */ - - - @Sequence - public static class TestRecord { - - @Asn1Optional public SequenceOfExtensionData extension; - - public TestRecord() {} - public void setExtensionList(SequenceOfExtensionData sd){ - this.extension = sd; - } - } - - - @Test public void testEncodeTicket() throws IllegalArgumentException, IllegalAccessException { - TestRecord ticket = new TestRecord(); - populateTicket(ticket); - byte[] encoded = UperEncoder.encode(ticket); - String hex = UperEncoder.hexStringFromBytes(encoded); - UperEncoder.logger.log(Level.FINEST,String.format("data hex: %s", hex)); - String expectedHex = "8100B10282DA01640507B4"; - UperEncoder.logger.debug(String.format("first diference at index: %d",hex.compareTo(expectedHex))); - assertEquals(hex,expectedHex); - } - - @Test public void testDecodeTicket() throws IllegalArgumentException, IllegalAccessException { - TestRecord ticket = new TestRecord(); - populateTicket(ticket); - byte[] encoded = UperEncoder.encode(ticket); - String hex = UperEncoder.hexStringFromBytes(encoded); - UperEncoder.logger.log(Level.FINEST,String.format("data hex: %s", hex)); - String expectedHex = "8100B10282DA01640507B4"; - TestRecord decodedTicket = UperEncoder.decode(encoded, TestRecord.class); - assert(decodedTicket != null); - assertEquals(hex,expectedHex); - } - - private void populateTicket(TestRecord ticket) { - - SequenceOfExtensionData ed = new SequenceOfExtensionData(); - populateExtensionSequence(ed); - ticket.setExtensionList(ed); - - } - - - - /* - ,extension { - { extensionId "1", extensionData '82DA'H } - ,{ extensionId "2", extensionData '83DA'H } - } - */ - private 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); - } - - - - - -} -- cgit v1.2.3