Пример #1
0
        public void CalculateParkingFee_Given_EntryAndExitTime_Should_Not_Return_EarlyBirdRate()
        {
            //Arrange
            var calculateEngine = new CarParkCalculateEngine();

            //17/2/2018 645am
            var entryDateTime = new DateTime(2018, 2, 16, 6, 45, 20, DateTimeKind.Local);

            //17/2/2018 1131pm
            var exitDateTime = new DateTime(2018, 2, 16, 15, 29, 30, DateTimeKind.Local);

            //Act
            var parkingPriceDetails = calculateEngine.GetCarParkingPriceDetails(entryDateTime, exitDateTime);

            //Assert
            Assert.IsNotNull(parkingPriceDetails);
            Assert.IsInstanceOfType(parkingPriceDetails, typeof(CarParkingFeeDetails));
            Assert.IsNotNull(parkingPriceDetails.Rate);
            Assert.IsNotInstanceOfType(parkingPriceDetails.Rate, typeof(EarlyBirdRate));
            Assert.AreEqual(parkingPriceDetails.TotalParkingFee, 20.00m);
        }
Пример #2
0
        public void CalculateParkingFee_Given_EntryAndExitTime_Should_Return_NightRate_Scenario2()
        {
            //Arrange
            var calculateEngine = new CarParkCalculateEngine();

            //17/2/2018 645am
            var entryDateTime = new DateTime(2018, 2, 15, 18, 45, 20, DateTimeKind.Local);

            //17/2/2018 1115pm
            var exitDateTime = new DateTime(2018, 2, 16, 5, 59, 30, DateTimeKind.Local);

            //Act
            var parkingPriceDetails = calculateEngine.GetCarParkingPriceDetails(entryDateTime, exitDateTime);

            //Assert
            Assert.IsNotNull(parkingPriceDetails);
            Assert.IsInstanceOfType(parkingPriceDetails, typeof(CarParkingFeeDetails));
            Assert.IsNotNull(parkingPriceDetails.Rate);
            Assert.IsInstanceOfType(parkingPriceDetails.Rate, typeof(NightRate));
            Assert.AreEqual(parkingPriceDetails.TotalParkingFee, 6.50m);
        }
Пример #3
0
        public void CalculateParkingFee_Given_EntryAndExitTime_Should_Return_StandardRate_Scenario2()
        {
            //Arrange
            var calculateEngine = new CarParkCalculateEngine();

            //17/2/2018 1100am
            var entryDateTime = new DateTime(2018, 2, 12, 11, 00, 20, DateTimeKind.Local);

            //18/2/2018 1359pm
            var exitDateTime = new DateTime(2018, 2, 12, 13, 59, 00, DateTimeKind.Local);

            //Act
            var parkingPriceDetails = calculateEngine.GetCarParkingPriceDetails(entryDateTime, exitDateTime);

            //Assert
            Assert.IsNotNull(parkingPriceDetails);
            Assert.IsInstanceOfType(parkingPriceDetails, typeof(CarParkingFeeDetails));
            Assert.IsNotNull(parkingPriceDetails.Rate);
            Assert.IsInstanceOfType(parkingPriceDetails.Rate, typeof(StandardRate));
            Assert.AreEqual(parkingPriceDetails.TotalParkingFee, 15.00m);
        }