master
1package ca.mokhan.test;
2
3import Q10.*;
4import java.io.*;
5import java.text.*;
6import java.util.*;
7import junit.framework.Test;
8import junit.framework.TestCase;
9import junit.framework.TestSuite;
10
11public class TrainTimeTableTest extends TestCase {
12 private TrainTimeTable subject;
13 private LinkedList<Station> stations =
14 new LinkedList<Station>(
15 Arrays.asList(
16 new Station("Vancouver", null, new Date(1546374600000L), 1),
17 new Station("Kamloops", new Date(1546408800000L), new Date(1546410900000L), 2),
18 new Station("Jasper", new Date(1546444800000L), new Date(1546450200000L), 2),
19 new Station("Edmonton", new Date(1546470000000L), new Date(1546473540000L), 2),
20 new Station("Saskatchewan", new Date(1546502400000L), new Date(1546503900000L), 3),
21 new Station("Winnipeg", new Date(1546548300000L), new Date(1546554600000L), 3),
22 new Station("Sioux Lookout", new Date(1546578120000L), new Date(1546580520000L), 4),
23 new Station("Hornepayne", new Date(1546616100000L), new Date(1546618200000L), 4),
24 new Station("Capreol", new Date(1546647480000L), new Date(1546649280000L), 5),
25 new Station("Toronto", new Date(1546680600000L), null, 5)));
26
27 public TrainTimeTableTest(String testName) {
28 super(testName);
29 this.subject = new TrainTimeTable(this.stations);
30 }
31
32 public static Test suite() {
33 return new TestSuite(TrainTimeTableTest.class);
34 }
35
36 public void test_delay_edmonton_30minutes() {
37 this.subject.delay("Edmonton", 30);
38
39 Station station = this.subject.stationIn("Edmonton");
40 assertNotNull(station);
41 assertEquals("Edmonton", station.getCity());
42 assertEquals("23:30", station.getArrival());
43 assertEquals("00:29", station.getDeparture());
44 assertEquals(3, station.getDay());
45
46 station = this.subject.stationIn("Saskatchewan");
47 assertNotNull(station);
48 assertEquals("Saskatchewan", station.getCity());
49 assertEquals("08:30", station.getArrival());
50 assertEquals("08:55", station.getDeparture());
51 assertEquals(3, station.getDay());
52
53 station = this.subject.stationIn("Winnipeg");
54 assertNotNull(station);
55 assertEquals("Winnipeg", station.getCity());
56 assertEquals("21:15", station.getArrival());
57 assertEquals("23:00", station.getDeparture());
58 assertEquals(3, station.getDay());
59
60 station = this.subject.stationIn("Sioux Lookout");
61 assertNotNull(station);
62 assertEquals("Sioux Lookout", station.getCity());
63 assertEquals("05:32", station.getArrival());
64 assertEquals("06:12", station.getDeparture());
65 assertEquals(4, station.getDay());
66
67 station = this.subject.stationIn("Hornepayne");
68 assertNotNull(station);
69 assertEquals("Hornepayne", station.getCity());
70 assertEquals("16:05", station.getArrival());
71 assertEquals("16:40", station.getDeparture());
72 assertEquals(4, station.getDay());
73
74 station = this.subject.stationIn("Capreol");
75 assertNotNull(station);
76 assertEquals("Capreol", station.getCity());
77 assertEquals("00:48", station.getArrival());
78 assertEquals("01:18", station.getDeparture());
79 assertEquals(5, station.getDay());
80
81 station = this.subject.stationIn("Toronto");
82 assertNotNull(station);
83 assertEquals("Toronto", station.getCity());
84 assertEquals("10:00", station.getArrival());
85 assertEquals("-", station.getDeparture());
86 assertEquals(5, station.getDay());
87 }
88
89 public void test_stationIn() {
90 assertNotNull(this.subject.stationIn("Edmonton"));
91 assertEquals("Edmonton", this.subject.stationIn("Edmonton").getCity());
92 }
93
94 public void test_stationIn_lowercase() {
95 assertNotNull(this.subject.stationIn("edmonton"));
96 assertEquals("Edmonton", this.subject.stationIn("edmonton").getCity());
97 }
98}