From fb111633ee8b8435510334c2de40daf2061f9d57 Mon Sep 17 00:00:00 2001 From: LO Kam Tao Leo Date: Sun, 1 Jan 2023 10:41:44 +0000 Subject: [PATCH] New test case and fixed incorrect value for speed --- .../leolo/nrdatad/model/TrainScheduleSector.java | 5 +- .../org/leolo/nrdatad/model/TrainScheduleTest.java | 67 +++++++++++++++++++++- .../resources/org/leolo/nrdatad/test/V56331_N.json | 18 +++--- 3 files changed, 78 insertions(+), 12 deletions(-) diff --git a/src/main/java/org/leolo/nrdatad/model/TrainScheduleSector.java b/src/main/java/org/leolo/nrdatad/model/TrainScheduleSector.java index 72e9376..d53a683 100644 --- a/src/main/java/org/leolo/nrdatad/model/TrainScheduleSector.java +++ b/src/main/java/org/leolo/nrdatad/model/TrainScheduleSector.java @@ -2,6 +2,7 @@ package org.leolo.nrdatad.model; import org.json.JSONArray; import org.json.JSONObject; +import org.leolo.nrdatad.util.JSONUtil; import java.util.List; import java.util.Vector; @@ -231,9 +232,9 @@ public class TrainScheduleSector { tss.businessSector = object.optString("CIF_business_sector"); tss.powerType = object.optString("CIF_power_type"); tss.timingLoad = object.optString("CIF_timing_load"); - tss.speed = object.optInt("CIF_speed"); + tss.speed = JSONUtil.parseInt(object.optString("CIF_speed")); tss.operatingCharacteristic = object.optString("CIF_operating_characteristics"); - tss.trainClass = object.optString("COF_train_class"); + tss.trainClass = object.optString("CIF_train_class"); tss.sleeper = object.optString("CIF_sleepers"); tss.reservation = object.optString("COF_reservations"); tss.catering = object.optString("CIF_catering_code"); diff --git a/src/test/java/org/leolo/nrdatad/model/TrainScheduleTest.java b/src/test/java/org/leolo/nrdatad/model/TrainScheduleTest.java index 01ba306..bc3a5e6 100644 --- a/src/test/java/org/leolo/nrdatad/model/TrainScheduleTest.java +++ b/src/test/java/org/leolo/nrdatad/model/TrainScheduleTest.java @@ -1,6 +1,7 @@ package org.leolo.nrdatad.model; import org.junit.Test; import org.leolo.nrdatad.util.TestUtil; +import org.leolo.nrdatad.util.TimeUtil; import java.io.BufferedReader; import java.io.IOException; @@ -41,7 +42,71 @@ public class TrainScheduleTest { assertEquals("", tss.getSleeper()); assertEquals("25441000", tss.getTrainServiceCode()); assertEquals("S", tss.getTrainClass()); - //TODO: finish the function + //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()); } } diff --git a/src/test/resources/org/leolo/nrdatad/test/V56331_N.json b/src/test/resources/org/leolo/nrdatad/test/V56331_N.json index df53330..a34a56f 100644 --- a/src/test/resources/org/leolo/nrdatad/test/V56331_N.json +++ b/src/test/resources/org/leolo/nrdatad/test/V56331_N.json @@ -32,7 +32,7 @@ "pathing_allowance": null, "record_identity": "LO", "engineering_allowance": null, - "line": null, + "line": "U", "public_departure": "1654", "tiploc_code": "PTYPRID", "tiploc_instance": null, @@ -42,21 +42,21 @@ "platform": "1" }, { - "engineering_allowance": null, - "arrival": "1656", + "engineering_allowance": "1", + "arrival": "1656H", "pass": null, - "line": null, + "line": "UL", "public_arrival": "1656", - "performance_allowance": null, + "performance_allowance": "2", "location_type": "LI", - "platform": null, - "pathing_allowance": null, + "platform": "A", + "pathing_allowance": "3", "record_identity": "LI", - "path": null, + "path": "UP", "public_departure": "1657", "tiploc_code": "TREFRST", "tiploc_instance": null, - "departure": "1657" + "departure": "1657H" }, { "engineering_allowance": null,