Esempio n. 1
0
class TestRoute(TestCase):
    def setUp(self):
        self.terminal = Station()
        self.middle_station = Station()
        self.valid_route = Route(
            [self.terminal, self.middle_station, self.terminal])

    def test_creation_allows_base_case(self):
        try:
            terminal = Station()
            Route([terminal, Station(), terminal])
        except ValueError:
            self.fail("Raised exception with legal constructor arguments")

    def test_creation_fails_when_first_and_last_station_are_different(self):
        self.assertRaises(ValueError, Route, [Station(), Station()])

    def test_creation_fails_if_consecutive_stations_are_identical(self):
        fail_station = Station()
        self.assertRaises(ValueError, Route, [fail_station, fail_station])

    def test_go_to_next_station_base_case(self):
        self.assertTrue(self.valid_route.go_to_next_station())
        self.assertEqual(self.middle_station, self.valid_route.current_station)

    def test_go_to_next_station_fails_when_at_final_station(self):
        self.assertTrue(self.valid_route.go_to_next_station())
        self.assertTrue(self.valid_route.go_to_next_station())
        self.assertFalse(self.valid_route.go_to_next_station())