summaryrefslogblamecommitdiffstats
path: root/src/org/uic/barcode/test/utils/SimpleUICTestTicket.java
blob: be3453564fe73853b38f50d84f5adc6ee64b50db (plain) (tree)
1
2
3
4
5
6





                                    























                                                                        































































































































































































































                                                                                                               
package org.uic.barcode.test.utils;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.uic.barcode.ticket.api.impl.SimpleCardReference;
import org.uic.barcode.ticket.api.impl.SimpleControlDetail;
import org.uic.barcode.ticket.api.impl.SimpleCustomerStatusDescription;
import org.uic.barcode.ticket.api.impl.SimpleExtension;
import org.uic.barcode.ticket.api.impl.SimpleIssuingDetail;
import org.uic.barcode.ticket.api.impl.SimpleOpenTicket;
import org.uic.barcode.ticket.api.impl.SimpleStationPassage;
import org.uic.barcode.ticket.api.impl.SimpleTicketLink;
import org.uic.barcode.ticket.api.impl.SimpleToken;
import org.uic.barcode.ticket.api.impl.SimpleTraveler;
import org.uic.barcode.ticket.api.impl.SimpleTravelerDetail;
import org.uic.barcode.ticket.api.impl.SimpleUicRailTicket;
import org.uic.barcode.ticket.api.spec.ICardReference;
import org.uic.barcode.ticket.api.spec.IControlDetail;
import org.uic.barcode.ticket.api.spec.ICustomerStatusDescription;
import org.uic.barcode.ticket.api.spec.IExtension;
import org.uic.barcode.ticket.api.spec.IIssuingDetail;
import org.uic.barcode.ticket.api.spec.ILinkMode;
import org.uic.barcode.ticket.api.spec.IOpenTicket;
import org.uic.barcode.ticket.api.spec.IStationPassage;
import org.uic.barcode.ticket.api.spec.ITicketLink;
import org.uic.barcode.ticket.api.spec.IToken;
import org.uic.barcode.ticket.api.spec.ITraveler;
import org.uic.barcode.ticket.api.spec.IUicRailTicket;

public class SimpleUICTestTicket {
	
	
	public static IUicRailTicket getUicTestTicket() {
		IUicRailTicket ticket = new SimpleUicRailTicket();
    	populateTicket(ticket);
		return ticket;
	}

	
    private static void populateTicket(IUicRailTicket ticket) {
    	
    	ticket.setControlDetails(new SimpleControlDetail());
    	populate(ticket.getControlDetails());
    	
     	
    	ticket.setIssuerDetails(new SimpleIssuingDetail());
    	populateIssuingData(ticket.getIssuerDetails());
    	
    	SimpleTravelerDetail td = new SimpleTravelerDetail();
    	populateTravelerData(td);
    	ticket.setTravelerDetails(td);    	
    	
     	
    	//OpenTicket
    	IOpenTicket do1 = new SimpleOpenTicket();
    	populate(do1);
    	ticket.addOpenTicket(do1);
    	
    	//StationPassage
    	IStationPassage do2 = new SimpleStationPassage();   
    	populateStationPassage(do2);
    	ticket.addStationPassage(do2);
    	
    	//token
    	IToken to = new SimpleToken();
    	to.setTokenProvider("VDV");
    	byte[] ba = { (byte) 0x82, (byte) 0xDA };
    	to.setToken(ba);

    	
    	ticket.addExtension(populateExtension());
    	
	}
    
    /*
	 ticket stationPassage : {
       	productName "passage"
       	,station {8312345}
       	,stationNameUTF8 { "Amsterdam" }       
       	,validFromDay 0
       	,validUntilDay 4
 	 }
     */
    private static void populateStationPassage(IStationPassage sp) {
    	sp.setProductName("passage");
    	
		try {
			Date date = new SimpleDateFormat("dd/MM/yyyy").parse("01/01/2018");
			sp.setValidFrom(date);
		} catch (ParseException e) {
			e.printStackTrace();
		}
		try {
			Date date = new SimpleDateFormat("dd/MM/yyyy").parse("04/01/2018");
			sp.setValidUntil(date);
		} catch (ParseException e) {
			e.printStackTrace();
		}    	
    	
    	sp.addStation("8312345");
    	sp.addStationName("Amsterdam");
	
	}
    
    /*
     	{
	        token {tokenProviderIA5 "VDV", token '82DA'H }
	        ,ticket openTicket : {
	        	returnIncluded FALSE
        		infoText "openTicketInfo"
	        }
	    }
     */
    
	private static void populate(IOpenTicket otd) {
    	otd.setInfoText("openTicketInfo");
    	otd.setReturnIncluded(false);
	}


	/*
       ,travelerDetail{
            traveler {
               {
                	firstName "John"
          	     	,secondName "Dow"
                	,idCard "12345"
                	,ticketHolder TRUE
          			,status {{customerStatusDescr "senior"  }}
               }
            }
           ,groupName "myGroup"
       }
     */
    
    private static void populateTravelerData(SimpleTravelerDetail td) {
    	td.setGroupName("myGroup");
    	ITraveler tr = new SimpleTraveler();
    	tr.setIdCard("12345");
    	tr.setFirstName("John");
    	tr.setSecondName("Dow");
    	tr.setTicketHolder(true);	
    	ICustomerStatusDescription cst = new SimpleCustomerStatusDescription();
    	tr.addStatusDescription(cst);
    	cst.setDescription("senior");
    	td.addTraveler(tr);
	}

	/*
       ,issuingDetail {
            issuerNum 1080
            issuingYear       2018
            issuingDay        1
       	    specimen  TRUE,
            securePaperTicket FALSE,
            activated TRUE,
            issuerPNR  "issuerTestPNR",
       	    issuedOnLine  12
       }
     */
    private static void populateIssuingData(IIssuingDetail iIssuingDetail) {   	

		try {
			Date date = new SimpleDateFormat("dd/MM/yyyy").parse("01/01/2018");
			iIssuingDetail.setIssuer("1080");
	    	iIssuingDetail.setIssuingDate(date);
		} catch (ParseException e) {
			e.printStackTrace();
		}

    	
    	iIssuingDetail.setIssuerPNR("issuerTestPNR");
    	iIssuingDetail.setSpecimen(true);
    	iIssuingDetail.setSecurePaperTicket(false);
    	iIssuingDetail.setActivated(true);
    	iIssuingDetail.setIssuedOnLine(12);	
	}

	/*
       ,extension {
            { extensionId "1", extensionData '82DA'H }
           ,{ extensionId "2", extensionData '83DA'H }
        }
     */
    private static IExtension populateExtension() {
    	IExtension ed1 = new SimpleExtension();
    	ed1.setId("1");
    	byte[] ba1 = { (byte) 0x82, (byte) 0xDA };
    	ed1.setBinarydata(ba1); 
    	return ed1;
	}

    /*
       ,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(IControlDetail iControlDetail) {
		iControlDetail.setInfoText("cd");
		iControlDetail.setAgeCheckRequired(false);
		iControlDetail.setIdentificationByIdCard(false);
		iControlDetail.setIdentificationByPassportId(false);
		iControlDetail.setOnlineValidationRequired(false);
		iControlDetail.setPassportValidationRequired(false);
		iControlDetail.setReductionCardCheckRequired(false);
		iControlDetail.getIdentificationByCardReference().add(populateCardRefrence());	
		iControlDetail.addLinkedTicket(populateLinkedTicket());
	}

	
	/*
	 * 
	 */
	private static ITicketLink populateLinkedTicket() {
		ITicketLink it = new SimpleTicketLink();
		it.setProductOwner("test");
		it.setLinkMode(ILinkMode.issuedTogether);
		return it;
	}

	/*
	 {
	   trailingCardIdNum 100
	 }
	 */
	private static ICardReference populateCardRefrence() {
		ICardReference cr = new SimpleCardReference();
		cr.setTrailingCardId("100");
		return cr;
	}

	
	public static void compare(IUicRailTicket ticket1, IUicRailTicket ticket2) {
		
		assert(ticket1.getIssuerDetails().getIssuer().equals(ticket2.getIssuerDetails().getIssuer()));
		
	}


}