public void RegisterTrips_skips_TripEntry_if_DriverDoesNotExist() { // arrange List <Driver> drivers = new List <Driver> { new Driver() { Name = "Dan" }, new Driver() { Name = "Lauren" }, new Driver() { Name = "Kumi" } }; IStreamReader reader = Substitute.For <IStreamReader>(); reader.CreateReader(Arg.Any <string>()); reader.EndOfStream.Returns(false, true); reader.ReadLine().Returns("Trip Bob 07:15 07:45 17.3"); TripLogic tripLogic = new TripLogic(); // act List <Trip> trips = tripLogic.RegisterTrips(reader, drivers); // assert Assert.IsFalse(trips.Any()); }
public void RegisterDriver_returns_NonEmptyDrivers() { // arrange IStreamReader reader = Substitute.For <IStreamReader>(); reader.CreateReader(Arg.Any <string>()); reader.EndOfStream.Returns(false, true); reader.ReadLine().Returns("Driver Test"); TripLogic tripLogic = new TripLogic(); // act List <Driver> drivers = tripLogic.RegisterDrivers(reader); // assert Assert.IsTrue(drivers.Any()); }
private List <Person> GetPersons(string path, char delimiter) { var persons = new List <Person>(); try { CheckForFile(path); _streamReaderWrapper.CreateReader(path); ReadLines(delimiter, persons); } finally { _streamReaderWrapper.DisposeReader(); } return(persons); }
public void RegisterTrips_returns_CorrectTripDataForDriver() { // arrange List <Driver> drivers = new List <Driver> { new Driver() { Name = "Dan" } }; IStreamReader reader = Substitute.For <IStreamReader>(); reader.CreateReader(Arg.Any <string>()); reader.EndOfStream.Returns(false, true); reader.ReadLine().Returns("Trip Dan 07:15 07:45 17.3"); var expectedTripData = new Trip() { Driver = drivers[0], StartTime = TimeSpan.Parse("07:15"), EndTime = TimeSpan.Parse("07:45"), MilesDriven = (decimal)17.3 }; TripLogic tripLogic = new TripLogic(); // act List <Trip> trips = tripLogic.RegisterTrips(reader, drivers); // assert Assert.AreEqual(expectedTripData.Driver.Name, trips[0].Driver.Name); Assert.AreEqual(expectedTripData.StartTime, trips[0].StartTime); Assert.AreEqual(expectedTripData.EndTime, trips[0].EndTime); Assert.AreEqual(expectedTripData.MilesDriven, trips[0].MilesDriven); }
public static void Run(ITripLogic tripLogic, IConsole console, IStreamReader streamReader) { string filePath = PromptForFile(console); int attempts = 1; while (!streamReader.FileExists(filePath)) { if (attempts < 3) { console.WriteLine("File not found. Please try again.\n"); filePath = PromptForFile(console); } else { console.WriteLine("You have exceeded the maximum number of tries.\n"); return; } attempts++; } streamReader.CreateReader(filePath); List <Driver> drivers = tripLogic.RegisterDrivers(streamReader); List <Trip> trips = tripLogic.RegisterTrips(streamReader, drivers); List <string> driverResults = tripLogic.CalculateResults(drivers, trips); if (driverResults != null && driverResults.Any()) { driverResults.ForEach(console.WriteLine); } }