public void GetTollFee_Day_Ranges_TollFee(string dateStr, double expectedTollFee) { var checkDate = DateTime.Parse(dateStr); var vehicle = new Mock <IVehicle>(); var configuration = new SwedishCityConfiguration(); var tollFee = configuration.Rule.GetTollFee(vehicle.Object, checkDate); Assert.Equal(expectedTollFee, tollFee, 0); }
public void GetTollFee_Weekend_Is_Free(string dateStr) { var checkDate = DateTime.Parse(dateStr); var vehicle = new Mock <IVehicle>(); var configuration = new SwedishCityConfiguration(); var tollFee = configuration.Rule.GetTollFee(vehicle.Object, checkDate); Assert.Equal(0.0, tollFee, 0); }
public void GetTollFee_Holliday_Days_TollFee_Should_Be_0(string dateStr) { var expectedTollFee = 0.0; var checkDate = DateTime.Parse(dateStr); var vehicle = new Mock <IVehicle>(); var configuration = new SwedishCityConfiguration(); var tollFee = configuration.Rule.GetTollFee(vehicle.Object, checkDate); Assert.Equal(expectedTollFee, tollFee, 0); }
public void GetTollFee_Toll_Free_Vehicles_TollFee_Should_Be_0(int vehicleCode) { double expectedTollFee = 0; var checkDate = new DateTime(2018, 12, 21, 18, 0, 0); // Friday var vehicle = new Vehicle(string.Empty, vehicleCode); var configuration = new SwedishCityConfiguration(); var tollFee = configuration.Rule.GetTollFee(vehicle, checkDate); Assert.Equal(expectedTollFee, tollFee, 0); }
public void GetTollFee_Holliday_Month_TollFee_Should_Be_0() { var expectedTollFee = 0.0; var monthNumber = 7; var checkDate = new DateTime(2013, monthNumber, 1, 15, 0, 0); // Monday var vehicle = new Mock <IVehicle>(); var configuration = new SwedishCityConfiguration(); var tollFee = configuration.Rule.GetTollFee(vehicle.Object, checkDate); Assert.Equal(expectedTollFee, tollFee, 0); }
static void Main(string[] args) { var serializer = new XmlSerializer(typeof(TrafficData)); var configuration = new SwedishCityConfiguration(); var calculator = new Calculator(configuration); TrafficData trafficData; using (var fileStream = new FileStream("data.xml", FileMode.Open)) { trafficData = (TrafficData)serializer.Deserialize(fileStream); } foreach (var item in trafficData.VehiclesTraffic) { var tollFee = calculator.CalculateTollFee(new Vehicle(item.Name, item.VehicleCode), item.Dates); Console.WriteLine($"{item.Name}:{item.VehicleCode}\t{tollFee}SEK"); } Console.ReadLine(); }
public void TollFeeInterval_Is_60() { var configuration = new SwedishCityConfiguration(); Assert.Equal(TimeSpan.FromHours(1), configuration.TollFeeInterval); }
public void DayTollFeeMaximum_Is_60() { var configuration = new SwedishCityConfiguration(); Assert.Equal(60, configuration.DayTollFeeMaximum); }