public void MustGetTheCorrectFactorIdForEachCarGroupBillType() { //Arrange IDictionary <CarGroupBill, Guid> carGroupBillMapping = new SortedDictionary <CarGroupBill, Guid> { { CarGroupBill.A, CarbonKnown.DAL.Models.Constants.Factors.CarGroupBill.A_Economy_1_4 }, { CarGroupBill.B, CarbonKnown.DAL.Models.Constants.Factors.CarGroupBill.B_Compact_1_4_2_l_Petrol }, { CarGroupBill.C, CarbonKnown.DAL.Models.Constants.Factors.CarGroupBill.C_Intermediate_1_6_l_Petrol }, { CarGroupBill.D, CarbonKnown.DAL.Models.Constants.Factors.CarGroupBill.D_Intermediate_1_6_l_Petrol }, { CarGroupBill.E, CarbonKnown.DAL.Models.Constants.Factors.CarGroupBill.E_Standard_2_0_2_4_l_Petrol }, { CarGroupBill.F, CarbonKnown.DAL.Models.Constants.Factors.CarGroupBill.F_Full_Size_1_8_2_l_Petrol }, { CarGroupBill.G, CarbonKnown.DAL.Models.Constants.Factors.CarGroupBill.G_Premium_1_8_2_l_Petrol }, { CarGroupBill.H, CarbonKnown.DAL.Models.Constants.Factors.CarGroupBill.H_Hybrid_HYB }, { CarGroupBill.I, CarbonKnown.DAL.Models.Constants.Factors.CarGroupBill.I_Compact_Petrol }, { CarGroupBill.J, CarbonKnown.DAL.Models.Constants.Factors.CarGroupBill.J_Luxury_2_3_2_5_l_Petrol }, { CarGroupBill.K, CarbonKnown.DAL.Models.Constants.Factors.CarGroupBill.K_Speciality_SUV_2_4_2_5_l_Petrol }, { CarGroupBill.L, CarbonKnown.DAL.Models.Constants.Factors.CarGroupBill.L_Speciality_Leisure_4X4_3_l }, { CarGroupBill.M, CarbonKnown.DAL.Models.Constants.Factors.CarGroupBill.M_Economy_1_1_1_4_Petrol }, { CarGroupBill.N, CarbonKnown.DAL.Models.Constants.Factors.CarGroupBill.N_Speciality_People_Carrier }, { CarGroupBill.O, CarbonKnown.DAL.Models.Constants.Factors.CarGroupBill.O_Full_Size_1_8_2_l_Petrol }, { CarGroupBill.P, CarbonKnown.DAL.Models.Constants.Factors.CarGroupBill.P_Full_Size_1_4_l_Petrol }, }; var calculations = new Dictionary <CarGroupBill, Mock <ICalculationDataContext> >(); DateTime?currentDate = DateTime.Now; var dailyData = new DailyData { UnitsPerDay = 1 }; //Act foreach (var keyValue in carGroupBillMapping) { var mockContext = new Mock <ICalculationDataContext>(); var sut = new CarHireCalculation(mockContext.Object); var entry = new CarHireData { CarGroupBill = keyValue.Key }; mockContext .Setup(context => context.FactorValue(It.IsAny <DateTime>(), It.IsAny <Guid>())) .Returns(1); sut.CalculateEmission(currentDate.Value, dailyData, entry); calculations.Add(keyValue.Key, mockContext); } //Assert foreach (var keyValue in carGroupBillMapping) { var mockContext = calculations[keyValue.Key]; mockContext .Verify(context => context.FactorValue( It.Is <DateTime>(d => d == currentDate), It.Is <Guid>(g => g == keyValue.Value)), Times.Once); } }
public void IfTheFactorValueIsNotFoundReturnNull() { //Arrange var currentDate = DateTime.Now; var dailyData = new DailyData { UnitsPerDay = 1 }; var mockContext = new Mock <ICalculationDataContext>(); var sut = new CarHireCalculation(mockContext.Object); var entry = new CarHireData { CarGroupBill = CarGroupBill.A }; mockContext .Setup(context => context.FactorValue(It.IsAny <DateTime>(), It.IsAny <Guid>())) .Returns((decimal?)null); //Act var result = sut.CalculateEmission(currentDate, dailyData, entry); //Assert Assert.IsNull(result); }
public void TheResultIsTheFactorValueTimesTheUnitsPerDay() { //Arrange var currentDate = DateTime.Now; var dailyData = new DailyData { UnitsPerDay = 7 }; var mockContext = new Mock <ICalculationDataContext>(); var sut = new CarHireCalculation(mockContext.Object); var entry = new CarHireData { CarGroupBill = CarGroupBill.A }; mockContext .Setup(context => context.FactorValue(It.IsAny <DateTime>(), It.IsAny <Guid>())) .Returns(4); //Act var result = sut.CalculateEmission(currentDate, dailyData, entry); //Assert Assert.AreEqual(28, result); }