public JourneyFareTestController() { var builder = new DbContextOptionsBuilder <ApiDbContext>(); builder.UseInMemoryDatabase("TestDB"); DbContextOptions <ApiDbContext> options = builder.Options; IFareCalculator service = new FareCalculatorService(options); jc = new JourneyFareController(service); }
public void TestCalculate() { IFareCalculatorService service = new FareCalculatorService(_fakeTaxiRateRepository); var result = service.Calculate(new RideHistory { NumberOfMinutesIdleOrGoingAboveSixMph = 5, TotalMilesGoingBelowSixMph = 2, StartDateTime = DateTime.Parse("10/08/2010 05:30:00 pm") }); Assert.AreEqual(result, 9.75m); }
public void NightSurchargeDuringDayTimeTest() { //Arrange FareCalculatorService calculator = new FareCalculatorService(); PrivateObject privateCalculator = new PrivateObject(calculator); var date = new DateTime(2018, 9, 20, 7, 0, 0); //Act var fare = privateCalculator.Invoke("NightTimeSurcharge", date); //Assert Assert.AreEqual((decimal)fare, 0); }
public void DistanceUnitsBelowSixMphCalculationTest() { //Arrange FareCalculatorService calculator = new FareCalculatorService(); PrivateObject privateCalculator = new PrivateObject(calculator); var distanceUnits = 3; //Act var fare = privateCalculator.Invoke("PriceFromDistanceUnitsBelowSixMph", distanceUnits); //Assert Assert.AreEqual((decimal)fare, (decimal)1.05); }
public void MinutesAboveSixMphCalculationTest() { //Arrange FareCalculatorService calculator = new FareCalculatorService(); PrivateObject privateCalculator = new PrivateObject(calculator); var minutes = 10; //Act var fare = privateCalculator.Invoke("PriceFromMinutesAboveSixMph", minutes); //Assert Assert.AreEqual((decimal)fare, (decimal)3.50); }
//[Route("CalculateFare")] public JsonResult CalculateFare(FareCalculatorViewModel model) { var calculator = new FareCalculatorService(); //Call service method with Model var dataModel = new FareCalculatorDataModel { Date = model.Date, Time = model.Time, DistanceUnitsBelowSixMph = model.DistanceUnitsBelowSixMph, MinutesAboveSixMph = model.MinutesAboveSixMph, }; return(Json(new { totalFare = calculator.CalculateFare(dataModel) }, JsonRequestBehavior.AllowGet)); }
public void PeakSurchargeWeekendOffPeakTimeTest() { //Arrange FareCalculatorService calculator = new FareCalculatorService(); PrivateObject privateCalculator = new PrivateObject(calculator); // Is a Saturday var date = new DateTime(2018, 9, 22, 21, 0, 0); //Act var fare = privateCalculator.Invoke("PeakTimeSurcharge", date, date); //Assert Assert.AreEqual(0, (decimal)fare); }
public void CalculateFareTest() { //Arrange FareCalculatorService calculator = new FareCalculatorService(); FareCalculatorDataModel model = new FareCalculatorDataModel { Date = new DateTime(2018, 9, 20, 16, 0, 0), // Thursday Time = new DateTime(2018, 9, 20, 16, 0, 0), // Peak Time DistanceUnitsBelowSixMph = 10, MinutesAboveSixMph = 5, }; //Act var fare = calculator.CalculateFare(model); //Assert Assert.AreEqual((decimal)fare, (decimal)9.75); }