diff options
author | CGantert345 <57003061+CGantert345@users.noreply.github.com> | 2021-03-29 14:44:43 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-29 14:44:43 +0200 |
commit | c25be270079ed4fa23d7a5c2a2d5eb8519243fb3 (patch) | |
tree | 011863c021df3e5356f07b056d30d0e7476061e4 /src/test/java/org/uic/barcode/ticket/api/test/UperEncodeTicketLinkTestV1.java | |
parent | Merge pull request #13 from UnionInternationalCheminsdeFer/time_zone_fix_3 (diff) | |
parent | structure change 1 (diff) | |
download | UIC-barcode-c25be270079ed4fa23d7a5c2a2d5eb8519243fb3.tar UIC-barcode-c25be270079ed4fa23d7a5c2a2d5eb8519243fb3.tar.gz UIC-barcode-c25be270079ed4fa23d7a5c2a2d5eb8519243fb3.tar.bz2 UIC-barcode-c25be270079ed4fa23d7a5c2a2d5eb8519243fb3.tar.lz UIC-barcode-c25be270079ed4fa23d7a5c2a2d5eb8519243fb3.tar.xz UIC-barcode-c25be270079ed4fa23d7a5c2a2d5eb8519243fb3.tar.zst UIC-barcode-c25be270079ed4fa23d7a5c2a2d5eb8519243fb3.zip |
Diffstat (limited to 'src/test/java/org/uic/barcode/ticket/api/test/UperEncodeTicketLinkTestV1.java')
-rw-r--r-- | src/test/java/org/uic/barcode/ticket/api/test/UperEncodeTicketLinkTestV1.java | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/src/test/java/org/uic/barcode/ticket/api/test/UperEncodeTicketLinkTestV1.java b/src/test/java/org/uic/barcode/ticket/api/test/UperEncodeTicketLinkTestV1.java new file mode 100644 index 0000000..0a4b04c --- /dev/null +++ b/src/test/java/org/uic/barcode/ticket/api/test/UperEncodeTicketLinkTestV1.java @@ -0,0 +1,75 @@ +package org.uic.barcode.ticket.api.test; + +import static org.junit.Assert.assertEquals; + +import java.io.IOException; +import java.util.logging.Level; + +import org.junit.Test; +import org.uic.barcode.asn1.uper.UperEncoder; +import org.uic.barcode.ticket.api.asn.omv1.UicRailTicketData; +import org.uic.barcode.ticket.api.spec.ILinkMode; +import org.uic.barcode.ticket.api.spec.ITicketLink; +import org.uic.barcode.ticket.api.spec.ITicketType; +import org.uic.barcode.ticket.api.spec.IUicRailTicket; +import org.uic.barcode.ticket.api.test.testtickets.SimpleTicketLinkTestTicket; +import org.uic.barcode.ticket.api.utils.OpenAsn2ApiDecoder; + + +public class UperEncodeTicketLinkTestV1 { + + + + + + @Test public void testEncodeTicket() throws IllegalArgumentException, IllegalAccessException { + UicRailTicketData ticket = SimpleTicketLinkTestTicket.getUicTestTicket(); + byte[] encoded = UperEncoder.encode(ticket); + String hex = UperEncoder.hexStringFromBytes(encoded); + UperEncoder.logger.log(Level.FINEST,String.format("data hex: %s", hex)); + + String expectedHex = SimpleTicketLinkTestTicket.getEncodingV1Hex(); + 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 = SimpleTicketLinkTestTicket.getUicTestTicket(); + byte[] encoded = UperEncoder.encode(ticket); + String hex = UperEncoder.hexStringFromBytes(encoded); + UperEncoder.logger.log(Level.FINEST,String.format("data hex: %s", hex)); + String expectedHex = SimpleTicketLinkTestTicket.getEncodingV1Hex(); + 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 ); + assert(decodedTicket.controlDetail.getIncludedTickets().size() == 1); + } + + @Test public void testDecodeTicket2Api() throws IllegalArgumentException, IllegalAccessException { + UicRailTicketData ticket = SimpleTicketLinkTestTicket.getUicTestTicket(); + byte[] encoded = UperEncoder.encode(ticket); + UicRailTicketData decodedTicket = UperEncoder.decode(encoded, UicRailTicketData.class); + + OpenAsn2ApiDecoder decoder = new OpenAsn2ApiDecoder(); + IUicRailTicket uicTicket = null; + try { + uicTicket = decoder.decodeFromAsn(decodedTicket); + } catch (IOException e) { + assert (false); + } + + assert(uicTicket.getControlDetails().getLinkedTickets().size() == 1); + for (ITicketLink link: uicTicket.getControlDetails().getLinkedTickets() ) { + assert(link.getLinkMode() == ILinkMode.onlyValidInCombination); + assert(link.getTicketType() == ITicketType.pass); + } + } + + +} |