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);
        }
예제 #6
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);
        }