Browse Source

Updating the unit test in preparation for the technical renew on Network Rail's data feed

feature-nr-renew
LO Kam Tao Leo 3 years ago
parent
commit
b4288758ad
  1. 4
      src/main/java/org/leolo/nrdatad/db/mariadb/DatabaseManager.java
  2. 51
      src/test/java/org/leolo/nrdatad/model/ScheduleAssociationTest.java
  3. 11
      src/test/java/org/leolo/nrdatad/model/TiplocTest.java
  4. 96
      src/test/java/org/leolo/nrdatad/model/TrainScheduleTest.java
  5. 113
      src/test/resources/org/leolo/nrdatad/test/V56332_N.json

4
src/main/java/org/leolo/nrdatad/db/mariadb/DatabaseManager.java

@ -31,8 +31,8 @@ public class DatabaseManager implements org.leolo.nrdatad.db.DatabaseManager{
logger.atDebug().log("URL={}",url);
try {
ds = new MariaDbPoolDataSource(url);
ds.setMinPoolSize(1);
ds.setMaxPoolSize(Integer.parseInt(conf.getOrDefault("db.poolsize", "20").toString()));
// ds.setMinPoolSize(1);
// ds.setMaxPoolSize(Integer.parseInt(conf.getOrDefault("db.poolsize", "20").toString()));
ds.setUser(conf.getProperty("db.user").toString());
ds.setPassword(conf.getProperty("db.pwd").toString());
} catch (SQLException e) {

51
src/test/java/org/leolo/nrdatad/model/ScheduleAssociationTest.java

@ -9,7 +9,7 @@ import static org.junit.Assert.*;
public class ScheduleAssociationTest {
@Test public void basicCase() throws ParseException {
@Test public void basicCase1() throws ParseException {
String json = "{\"diagram_type\":\"T\",\"assoc_end_date\":\"2022-12-05T00:00:00Z\",\"assoc_location_suffix\":null," +
"\"assoc_days\":\"1000000\",\"assoc_train_uid\":\"L77547\",\"transaction_type\":\"Create\"," +
"\"date_indicator\":\"S\",\"base_location_suffix\":null,\"main_train_uid\":\"L77935\"," +
@ -32,7 +32,7 @@ public class ScheduleAssociationTest {
assertEquals(790828983, sa.hashCode());
}
@Test public void vstpAssoc() throws ParseException {
@Test public void vstpAssoc1() throws ParseException {
String json = "{\"diagram_type\":\"T\",\"assoc_end_date\":\"2022-12-05T00:00:00Z\",\"assoc_location_suffix\":null," +
"\"assoc_days\":\"1000000\",\"assoc_train_uid\":\" 77547\",\"transaction_type\":\"Create\"," +
"\"date_indicator\":\"S\",\"base_location_suffix\":null,\"main_train_uid\":\" 77935\"," +
@ -55,4 +55,51 @@ public class ScheduleAssociationTest {
assertEquals(-1968067017, sa.hashCode());
}
@Test public void basicCase2() throws ParseException {
String json = "{\"diagram_type\":\"T\",\"assoc_end_date\":\"2022-12-05T00:00:00Z\"," +
"\"assoc_days\":\"1000000\",\"assoc_train_uid\":\"L77547\",\"transaction_type\":\"Create\"," +
"\"date_indicator\":\"S\",\"main_train_uid\":\"L77935\"," +
"\"CIF_stp_indicator\":\"P\",\"assoc_start_date\":\"2022-05-16T00:00:00Z\"," +
"\"location\":\"KNGX\",\"category\":\"NP\"}";
ScheduleAssociation sa = ScheduleAssociation.parseJSON(json);
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
assertEquals(sdf.parse("20221205"), sa.getEndDate());
assertEquals("", sa.getAssocLocationSuffix());
assertEquals("1000000", sa.getAssoDays());
assertEquals("L77547", sa.getAssoUid());
assertEquals(0, sa.getAssociationDate());
assertEquals("", sa.getBaseLocationSuffix());
assertEquals("L77935", sa.getMainUid());
assertEquals(ShortTermPlanningIndicator.PERMANENT, sa.getStpIndicator());
assertEquals(sdf.parse("20220516"), sa.getStartDate());
assertEquals("KNGX", sa.getAssociationLocation());
assertEquals(AssociationCategory.NEXT, sa.getAssociationCategory());
assertEquals("L77935L77547KNGXPFE4P", sa.getAuid());
assertEquals(790828983, sa.hashCode());
}
@Test public void vstpAssoc2() throws ParseException {
String json = "{\"diagram_type\":\"T\",\"assoc_end_date\":\"2022-12-05T00:00:00Z\"," +
"\"assoc_days\":\"1000000\",\"assoc_train_uid\":\" 77547\",\"transaction_type\":\"Create\"," +
"\"date_indicator\":\"S\",\"main_train_uid\":\" 77935\"," +
"\"CIF_stp_indicator\":\"P\",\"assoc_start_date\":\"2022-05-16T00:00:00Z\"," +
"\"location\":\"KNGX\",\"category\":\"NP\"}";
ScheduleAssociation sa = ScheduleAssociation.parseJSON(json);
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
assertEquals(sdf.parse("20221205"), sa.getEndDate());
assertEquals("", sa.getAssocLocationSuffix());
assertEquals("1000000", sa.getAssoDays());
assertEquals("77547", sa.getAssoUid());
assertEquals(0, sa.getAssociationDate());
assertEquals("", sa.getBaseLocationSuffix());
assertEquals("77935", sa.getMainUid());
assertEquals(ShortTermPlanningIndicator.PERMANENT, sa.getStpIndicator());
assertEquals(sdf.parse("20220516"), sa.getStartDate());
assertEquals("KNGX", sa.getAssociationLocation());
assertEquals(AssociationCategory.NEXT, sa.getAssociationCategory());
assertEquals("7793577547KNGXPFE4P", sa.getAuid());
assertEquals(-1968067017, sa.hashCode());
}
}

11
src/test/java/org/leolo/nrdatad/model/TiplocTest.java

@ -16,4 +16,15 @@ public class TiplocTest {
assertEquals("ABRDEEN", tiploc.getTiplocCode());
assertEquals("897600", tiploc.getNalco());
}
@Test public void basicTest2(){
String json = "{\"tps_description\":\"ABERDEEN\",\"description\":\"ABERDEEN\"," +
"\"stanox\":\"02071\",\"tiploc_code\":\"ABRDEEN\",\"transaction_type\":\"Create\",\"nalco\":\"897600\"}";
Tiploc tiploc = Tiploc.parseJSON(json);
assertEquals("ABERDEEN", tiploc.getTpsDescription());
assertEquals("", tiploc.getCrsCode());
assertEquals("ABERDEEN", tiploc.getDescription());
assertEquals("02071", tiploc.getStanox());
assertEquals("ABRDEEN", tiploc.getTiplocCode());
assertEquals("897600", tiploc.getNalco());
}
}

96
src/test/java/org/leolo/nrdatad/model/TrainScheduleTest.java

@ -109,4 +109,100 @@ public class TrainScheduleTest {
assertEquals(0, tsl.getWttPass());
}
@Test public void testSchedule2() throws IOException, ParseException {
String json = TestUtil.openResourceFileAsString("org/leolo/nrdatad/test/V56332_N.json");
TrainSchedule ts = TrainSchedule.parseJSON(json);
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
//Schedule Info
assertEquals("V56332", ts.getTrainUid());
assertEquals("V56332M3M4N", ts.getSUID());
assertEquals("AW", ts.getAtocCode());
assertEquals(ShortTermPlanningIndicator.NEW, ts.getShortTermPlanningIndicator());
assertEquals(sdf.parse("20230104"), ts.getStartDate());
assertEquals(sdf.parse("20230105"), ts.getEndDate());
assertEquals("0011000", ts.getRunsOn());
assertEquals("",ts.getRunsOnBankHoliday());
//Sector Info
TrainScheduleSector tss = ts.getSector();
assertEquals("", tss.getServiceBranding());
assertEquals("OO", tss.getTrainCategory());
assertEquals("??", tss.getBusinessSector());
assertEquals(75, tss.getSpeed());
assertEquals("", tss.getReservation());
assertEquals("", tss.getCatering());
assertEquals("DMU", tss.getPowerType());
assertEquals("S", tss.getTimingLoad());
assertEquals("2F60", tss.getSignalId());
assertEquals("", tss.getHeadcode());
assertEquals("", tss.getOperatingCharacteristic());
assertEquals("", tss.getSleeper());
assertEquals("25441000", tss.getTrainServiceCode());
assertEquals("S", tss.getTrainClass());
//Check each location
//1 - PTYPRID
TrainScheduleLocation tsl = tss.getScheduleLocations().get(0);
assertEquals(0, tsl.getPathingAllowance());
assertEquals(TrainScheduleLocationRecordIdentity.ORIGINATE, tsl.getRecordIdentity());
assertEquals(0, tsl.getEngineeringAllowance());
assertEquals("U", tsl.getLine());
assertEquals("", tsl.getPath());
assertEquals(TrainScheduleLocation.UNKNOWN_RECORD_SEQUENCE, tsl.getTiplocInstance());
assertEquals(tss, tsl.getRecordSector());
assertEquals(1, tsl.getRecordSequence());
assertEquals("1", tsl.getPlatform());
assertEquals(TimeUtil.parseTime("1654"), tsl.getWttDeparture());
assertEquals(TimeUtil.parseTime("1654"), tsl.getPublicDeparture());
assertEquals(0, tsl.getWttArrival());
assertEquals(0, tsl.getPublicArrival());
assertEquals(0, tsl.getWttPass());
//2 - TREFRST
tsl = tss.getScheduleLocations().get(1);
assertEquals(180_000, tsl.getPathingAllowance());
assertEquals(TrainScheduleLocationRecordIdentity.INTERMEDIATE, tsl.getRecordIdentity());
assertEquals(60_000, tsl.getEngineeringAllowance());
assertEquals("UL", tsl.getLine());
assertEquals("UP", tsl.getPath());
assertEquals(TrainScheduleLocation.UNKNOWN_RECORD_SEQUENCE, tsl.getTiplocInstance());
assertEquals(tss, tsl.getRecordSector());
assertEquals(2, tsl.getRecordSequence());
assertEquals("A", tsl.getPlatform());
assertEquals(TimeUtil.parseTime("1657H"), tsl.getWttDeparture());
assertEquals(TimeUtil.parseTime("1657"), tsl.getPublicDeparture());
assertEquals(TimeUtil.parseTime("1656H"), tsl.getWttArrival());
assertEquals(TimeUtil.parseTime("1656"), tsl.getPublicArrival());
assertEquals(0, tsl.getWttPass());
//8 - CVLESBY
tsl = tss.getScheduleLocations().get(7);
assertEquals(0, tsl.getPathingAllowance());
assertEquals(TrainScheduleLocationRecordIdentity.INTERMEDIATE, tsl.getRecordIdentity());
assertEquals(0, tsl.getEngineeringAllowance());
assertEquals("", tsl.getLine());
assertEquals("", tsl.getPath());
assertEquals(TrainScheduleLocation.UNKNOWN_RECORD_SEQUENCE, tsl.getTiplocInstance());
assertEquals(tss, tsl.getRecordSector());
assertEquals(8, tsl.getRecordSequence());
assertEquals("", tsl.getPlatform());
assertEquals(0, tsl.getWttDeparture());
assertEquals(0, tsl.getPublicDeparture());
assertEquals(0, tsl.getWttArrival());
assertEquals(0, tsl.getPublicArrival());
assertEquals(TimeUtil.parseTime("1723"), tsl.getWttPass());
//9 - CRDFCEN
tsl = tss.getScheduleLocations().get(8);
assertEquals(0, tsl.getPathingAllowance());
assertEquals(TrainScheduleLocationRecordIdentity.TERMINATE, tsl.getRecordIdentity());
assertEquals(0, tsl.getEngineeringAllowance());
assertEquals("", tsl.getLine());
assertEquals("", tsl.getPath());
assertEquals(TrainScheduleLocation.UNKNOWN_RECORD_SEQUENCE, tsl.getTiplocInstance());
assertEquals(tss, tsl.getRecordSector());
assertEquals(9, tsl.getRecordSequence());
assertEquals("7", tsl.getPlatform());
assertEquals(0, tsl.getWttDeparture());
assertEquals(0, tsl.getPublicDeparture());
assertEquals(TimeUtil.parseTime("1724"), tsl.getWttArrival());
assertEquals(TimeUtil.parseTime("1725"), tsl.getPublicArrival());
assertEquals(0, tsl.getWttPass());
}
}

113
src/test/resources/org/leolo/nrdatad/test/V56332_N.json

@ -0,0 +1,113 @@
{
"train_status": "1",
"CIF_train_uid": "V56332",
"schedule_days_runs": "0011000",
"CIF_stp_indicator": "N",
"applicable_timetable": "Y",
"atoc_code": "AW",
"schedule_start_date": "2023-01-04",
"new_schedule_segment": {
},
"transaction_type": "Create",
"schedule_end_date": "2023-01-05",
"schedule_segment": {
"CIF_train_category": "OO",
"CIF_business_sector": "??",
"CIF_speed": "075",
"CIF_power_type": "DMU",
"CIF_course_indicator": 1,
"CIF_timing_load": "S",
"signalling_id": "2F60",
"schedule_location": [
{
"record_identity": "LO",
"line": "U",
"public_departure": "1654",
"tiploc_code": "PTYPRID",
"departure": "1654",
"location_type": "LO",
"platform": "1"
},
{
"engineering_allowance": "1",
"arrival": "1656H",
"line": "UL",
"public_arrival": "1656",
"performance_allowance": "2",
"location_type": "LI",
"platform": "A",
"pathing_allowance": "3",
"record_identity": "LI",
"path": "UP",
"public_departure": "1657",
"tiploc_code": "TREFRST",
"departure": "1657H"
},
{
"arrival": "1703",
"public_arrival": "1704",
"location_type": "LI",
"record_identity": "LI",
"public_departure": "1704",
"tiploc_code": "TAFFSWL",
"departure": "1704"
},
{
"arrival": "1707",
"public_arrival": "1708",
"location_type": "LI",
"platform": "1",
"record_identity": "LI",
"public_departure": "1708",
"tiploc_code": "RADYR",
"departure": "1708"
},
{
"arrival": "1710",
"public_arrival": "1710",
"location_type": "LI",
"record_identity": "LI",
"public_departure": "1711",
"tiploc_code": "LLANDAF",
"departure": "1711"
},
{
"engineering_allowance": "1",
"arrival": "1714H",
"public_arrival": "1715",
"location_type": "LI",
"pathing_allowance": "H",
"record_identity": "LI",
"public_departure": "1715",
"tiploc_code": "CATHAYS",
"departure": "1715H"
},
{
"arrival": "1719",
"public_arrival": "1720",
"location_type": "LI",
"platform": "3",
"record_identity": "LI",
"public_departure": "1721",
"tiploc_code": "CARDFQS",
"departure": "1721"
},
{
"pass": "1723",
"location_type": "LI",
"record_identity": "LI",
"tiploc_code": "CVLESBY"
},
{
"record_identity": "LT",
"arrival": "1724",
"public_arrival": "1725",
"tiploc_code": "CRDFCEN",
"location_type": "LT",
"platform": "7"
}
],
"CIF_train_service_code": "25441000",
"CIF_train_class": "S"
}
}
Loading…
Cancel
Save