public void ResolveShortestTrip_ShouldReturnExpectedDistanceBasedOnTheRoute(string from, string to, int expectedDistance) { // Act var trip = TripService.FindShortest(Railway, Railway.GetTownByName(from), Railway.GetTownByName(to)); // Assert Assert.Equal(expectedDistance, trip.TotalDistance); }
public void Search_ShouldReturnExpectedMaxTrips_WithDistanceLessThanMaxDistance(string from, string to, int maxDistance, int expectedTrips) { // Act var trips = TripService.Search(Railway.GetTownByName(from), Railway.GetTownByName(to), trip => trip.TotalDistance >= maxDistance); // Assert Assert.Equal(expectedTrips, trips.Count()); }
public void Search_ShouldReturnExpectedMaxTrips_WithExactStops(string from, string to, int stops, int expectedTrips) { // Act var trips = TripService .Search(Railway.GetTownByName(from), Railway.GetTownByName(to), trip => trip.Stops > stops, trip => trip.Stops == stops); // Assert Assert.Equal(expectedTrips, trips.Count()); }
public void ResolveDistance_WhenRouteDoesNotExists_ShouldThrowInvalidRouteException() { // Arrange var path = new Path(); path.AddStop(Railway.GetTownByName("A")); path.AddStop(Railway.GetTownByName("E")); path.AddStop(Railway.GetTownByName("D")); // Act and assert Assert.Throws <InvalidRouteException>(() => TripService.ResolveDistance(path)); }
public void ResolveDistance_ShouldReturnDistanceBetweenABC(int expectedDistance, params string[] towns) { // Arrange var path = new Path(); foreach (var town in towns) { path.AddStop(Railway.GetTownByName(town)); } // Act var actualDistance = TripService.ResolveDistance(path); // Assert Assert.Equal(expectedDistance, actualDistance); }
public void ResolveShortestTrip_WhenRouteDoesNotExist_ShouldThrowInvalidRouteException() { // Act and Assert Assert.Throws <InvalidRouteException>(() => TripService.FindShortest(Railway, Railway.GetTownByName("C"), Railway.GetTownByName("A"))); }
public void Search_WhenStopConditionIsNull_ShouldThrowArgumentNullException() { // Act and Assert Assert.Throws <ArgumentNullException>(() => TripService.Search(Railway.GetTownByName("A"), Railway.GetTownByName("B"), null)); }