blob: ac7aed6491048ba045cc270da18d3c8ff863e864 (
plain) (
tree)
|
|
package org.uic.barcode.ticket.api.test;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.TimeZone;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.uic.barcode.asn1.uper.UperEncoder;
import org.uic.barcode.logger.LoggerFactory;
import org.uic.barcode.ticket.EncodingFormatException;
import org.uic.barcode.ticket.api.spec.ICarCarriageReservation;
import org.uic.barcode.ticket.api.spec.IDocumentData;
import org.uic.barcode.ticket.api.spec.ILoadingDeckType;
import org.uic.barcode.ticket.api.spec.IPriceTypeType;
import org.uic.barcode.ticket.api.spec.IRoofRackType;
import org.uic.barcode.ticket.api.spec.IUicRailTicket;
import org.uic.barcode.ticket.api.test.testtickets.CarCarriageReservationTestTicketV3;
import org.uic.barcode.ticket.api.utils.Api2AsnEncoder;
import org.uic.barcode.ticket.api.utils.Api2OpenAsnEncoderV3;
import org.uic.barcode.ticket.api.utils.Asn2ApiDecoder;
import org.uic.barcode.ticket.api.utils.OpenAsn2ApiDecoderV3;
/**
* The Class CarCarriageTestV1.
*
*
*
*/
public class CarCarriageTestV3 {
/** The decoder. */
Asn2ApiDecoder decoder = new OpenAsn2ApiDecoderV3();
/** The encoder. */
Api2AsnEncoder encoder = new Api2OpenAsnEncoderV3();
/** The API ticket low level encoded for case 1. */
IUicRailTicket iTicketDecodedFromAsn1Case1 = null;
/** The ticket decoded 1. */
IUicRailTicket iTicketDecodedCase1 = null;
byte[] encodedInTimeZone1 = null;
TimeZone defaulttimeZone = null;
/**
* Prepare tickets.
*/
@Before public void prepare() {
LoggerFactory.setActivateConsoleLog(true);
defaulttimeZone = TimeZone.getDefault();
}
/**
* clean up
*/
@After public void resetTimeZone() {
TimeZone.setDefault(defaulttimeZone);
}
/**
* Test encode test tickets in UTC and decode in CET.
*
* @throws IllegalArgumentException the illegal argument exception
* @throws IllegalAccessException the illegal access exception
* @throws ParseException
*/
@Test public void testDelayConfirmation() throws IllegalArgumentException, IllegalAccessException, ParseException {
//get tickets
defaulttimeZone = TimeZone.getDefault();
//encode in UTC time zone
TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
IUicRailTicket ticketDecoded = null;
try {
ticketDecoded = decoder.decodeFromAsn(CarCarriageReservationTestTicketV3.getEncodingBytes());
} catch (Exception e) {
assert(false);
}
IDocumentData document = ticketDecoded.getDocumentData().iterator().next();
assert(document != null);
assert(document instanceof ICarCarriageReservation);
ICarCarriageReservation c = (ICarCarriageReservation) document;
assert(c.getAttachedBicycles() == 1L);
assert(c.getAttachedSurfboards() == 2L);
assert(c.getCarCategory() == 3L);
assert(c.getCoach().equals("21"));
assert(c.getPlace().equals("41"));
assert(c.getFromStation().equals("8100001"));
assert(c.getToStation().equals("800001"));
assert(c.getInfoText().equals("car carriage"));
assert(c.getLoadingDeck().equals(ILoadingDeckType.upper));
assert(c.getLoadingListEntry() == 421L);
assert(c.getTrain().equals("123"));
assert(c.getNumberPlate().equals("AD-DE-123"));
assert(c.getTrailerPlate().equals("DX-AB-123"));
assert(c.isTextileRoof() == false);
assert(c.getServiceBrand().getServiceBrandAbbreviation().equals("AZ"));
assert(c.getServiceBrand().getServiceBrandDescription().equals("special train"));
assert(c.getServiceBrand().getServiceBrand() == 100L);
assert(c.getRoofRackType().equals(IRoofRackType.bicycleRack));
assert(c.getTariff() != null);
assert(c.getRoofRackHeight() == 20L);
assert(c.getPriceType().equals(IPriceTypeType.travelPrice));
assert(c.getReference().equals("810123456789"));
assert(c.getVatDetails() != null);
assert(c.getCarriers().contains("1080"));
assert(c.getCarriers().contains("1181"));
assert(c.getPrice() == 12345L);
DateFormat dateFormat = new SimpleDateFormat( "yyyy.MM.dd-HH:mm" );
String pdb = dateFormat.format(c.getBeginLoading());
assert(pdb.equals("2018.01.11-00:00"));
String pde = dateFormat.format(c.getEndLoading());
assert(pde.equals("2018.01.11-08:20"));
byte[] encoded = null;
try {
encoded = encoder.encode(ticketDecoded);
} catch (EncodingFormatException e) {
assert(false);
}
IUicRailTicket ticketDecoded2 = null;
try {
ticketDecoded2 = decoder.decodeFromAsn(encoded);
} catch (Exception e) {
assert(false);
}
assert (ticketDecoded2 != null);
String hex1 = UperEncoder.hexStringFromBytes(encoded);
String hex2 = CarCarriageReservationTestTicketV3.getEncodingHex();
assert(hex1.equals(hex2));
TimeZone.setDefault(defaulttimeZone);
}
}
|