//UC5 //Given mutiple premium rides return the Invoice Summary class object public void GivenMultiplePremiumRides_GivesInvoiceSummaryObject() { Ride[] rides = { new Ride(2, 5), new Ride(2, 5) }; InvoiceGenerator invoiceGenerator = new InvoiceGenerator(RideType.PREMIUM); InvoiceSummary actual = invoiceGenerator.calculateFare(rides); InvoiceSummary expected = new InvoiceSummary(2, 80); Assert.AreEqual(expected, actual); }
public void GivenDistanceAndTime_ShouldReturnTotalFare() { double expected = 25; InvoiceGenerator invoiceGenerator = new InvoiceGenerator(RideType.NORMAL); double distance = 2.0; int time = 5; double actual = invoiceGenerator.calculateFare(distance, time); Assert.AreEqual(expected, actual); }
public void GivenUserId_returnTheInvoice() { Ride[] rides = { new Ride(2, 5), new Ride(2, 5) }; InvoiceGenerator invoiceGenerator = new InvoiceGenerator(RideType.NORMAL); invoiceGenerator.AddRides("100", rides); InvoiceSummary actual = invoiceGenerator.calculateFare(rides); InvoiceSummary expected = invoiceGenerator.GetInvoiceSummary("100"); Assert.AreEqual(expected, actual); }
public void GivenMutipleRides_GetEnhancedInvoice() { Ride[] rides = { new Ride(2, 5), new Ride(2, 5) }; InvoiceGenerator invoiceGenerator = new InvoiceGenerator(RideType.NORMAL); InvoiceSummary invoiceSummary = invoiceGenerator.calculateFare(rides); int expectedNoOfRides = 2; double expectedTotalFare = 50; double expectedAvgFare = 25; Assert.AreEqual(expectedNoOfRides, invoiceSummary.numberOfRides); Assert.AreEqual(expectedTotalFare, invoiceSummary.totalFare); Assert.AreEqual(expectedAvgFare, invoiceSummary.avgFare); }
public void GivenInvalidDistance_ShouldThrowException() { CabInvoiceException.ExceptionType expected = CabInvoiceException.ExceptionType.INVALID_DISTANCE; try { InvoiceGenerator invoiceGenerator = new InvoiceGenerator(RideType.NORMAL); double distance = -2.0; int time = 5; invoiceGenerator.calculateFare(distance, time); } catch (CabInvoiceException cie) { CabInvoiceException.ExceptionType actual = cie.type; Assert.AreEqual(expected, actual); } }
public void GivenInvalidRideType_ShouldThrowException() { string expected = "Invalid ride type"; string actual = null; try { InvoiceGenerator invoiceGenerator = new InvoiceGenerator(); double distance = 2.0; int time = 5; invoiceGenerator.calculateFare(distance, time); } catch (CabInvoiceException cie) { actual = cie.Message; } Assert.AreEqual(expected, actual); }