Пример #1
0
        public void GetStatusFullSingleSector_ShouldReturnCorrectResult()
        {
            // Arrange
            IVehiclePark park = new VehiclePark(2, 2);
            IVehicle car3 = new Car("CA1236CA", "Pesho", 3);
            IVehicle car4 = new Car("CA1237CA", "Pesho", 3);

            // Act
            park.InsertVehicle(car3, 2, 1, new DateTime(2015, 10, 17, 10, 30, 0));
            park.InsertVehicle(car4, 2, 2, new DateTime(2015, 10, 17, 10, 30, 0));
            string result = park.GetStatus();
            string expected = "Sector 1: 0 / 2 (0% full)\r\nSector 2: 2 / 2 (100% full)";

            // Assert
            Assert.AreEqual(expected, result);
        }
Пример #2
0
        public void VehicleExitNonPresentLicensePlate_ShouldThrowExceptionWithCorrectResult()
        {
            // Arrange
            IVehiclePark park = new VehiclePark(2, 2);
            string licensePlate = "CA1234CA";
            IVehicle car = new Car(licensePlate, "Pesho", 3);
            int sector = 1;
            int place = 1;

            // Act
            park.InsertVehicle(car, sector, place, new DateTime(2015, 10, 17, 10, 30, 0));
            string result = string.Empty;
            try
            {
                park.ExitVehicle("CA1234CB", new DateTime(2015, 10, 17, 13, 30, 0), 6M);
            }
            catch (Exception ex)
            {
                result = ex.Message;
            }

            string expected = string.Format(GlobalMessages.VehicleNotPresent, "CA1234CB");

            // Assert
            Assert.AreEqual(expected, result);
        }
Пример #3
0
        public void InsertMultipleVehicleValidOperation_ShouldReturnCorrectResult()
        {
            // Arrange
            IVehiclePark park = new VehiclePark(2, 3);
            IVehicle car1 = new Car("CA1234CA", "Pesho", 3);
            IVehicle car2 = new Car("CA1235CA", "Pesho", 3);
            IVehicle car3 = new Car("CA1236CA", "Pesho", 3);
            IVehicle car4 = new Car("CA1237CA", "Pesho", 3);
            IVehicle car5 = new Car("CA1238CA", "Pesho", 3);
            IVehicle car6 = new Car("CA1239CA", "Pesho", 3);
            StringBuilder result = new StringBuilder();
            StringBuilder expected = new StringBuilder();

            // Act
            result.AppendLine(park.InsertVehicle(car1, 1, 1, new DateTime(2015, 10, 17, 10, 30, 0)));
            result.AppendLine(park.InsertVehicle(car2, 1, 2, new DateTime(2015, 10, 17, 10, 30, 0)));
            result.AppendLine(park.InsertVehicle(car3, 1, 3, new DateTime(2015, 10, 17, 10, 30, 0)));
            result.AppendLine(park.InsertVehicle(car4, 2, 1, new DateTime(2015, 10, 17, 10, 30, 0)));
            result.AppendLine(park.InsertVehicle(car5, 2, 2, new DateTime(2015, 10, 17, 10, 30, 0)));
            result.AppendLine(park.InsertVehicle(car6, 2, 3, new DateTime(2015, 10, 17, 10, 30, 0)));

            expected.AppendLine(string.Format(GlobalMessages.VehicleParked, car1.GetType().Name, "(1,1)"));
            expected.AppendLine(string.Format(GlobalMessages.VehicleParked, car1.GetType().Name, "(1,2)"));
            expected.AppendLine(string.Format(GlobalMessages.VehicleParked, car1.GetType().Name, "(1,3)"));
            expected.AppendLine(string.Format(GlobalMessages.VehicleParked, car1.GetType().Name, "(2,1)"));
            expected.AppendLine(string.Format(GlobalMessages.VehicleParked, car1.GetType().Name, "(2,2)"));
            expected.AppendLine(string.Format(GlobalMessages.VehicleParked, car1.GetType().Name, "(2,3)"));

            // Assert
            Assert.AreEqual(expected.ToString(), result.ToString());
        }
Пример #4
0
        public void GetStatusOneVehicle_ShouldReturnCorrectResult()
        {
            // Arrange
            int totalSectors = 2;
            IVehiclePark park = new VehiclePark(totalSectors, 2);
            IVehicle car = new Car("CA1234CA", "Pesho", 3);

            // Act
            park.InsertVehicle(car, 1, 1, new DateTime(2015, 10, 17, 10, 30, 0));
            string result = park.GetStatus();
            string expected = "Sector 1: 1 / 2 (50% full)\r\nSector 2: 0 / 2 (0% full)";

            // Assert
            Assert.AreEqual(expected, result);
        }
Пример #5
0
        public void VehicleExitExactlyOnTime_ShouldReturnCorrectResult()
        {
            // Arrange
            IVehiclePark park = new VehiclePark(2, 2);
            string licensePlate = "CA1234CA";
            IVehicle car = new Car(licensePlate, "Pesho", 3);
            int sector = 1;
            int place = 1;

            // Act
            park.InsertVehicle(car, sector, place, new DateTime(2015, 10, 17, 10, 30, 0));
            string result = park.ExitVehicle(licensePlate, new DateTime(2015, 10, 17, 13, 30, 0), 6M);
            string expected = "********************\r\nCar [CA1234CA], owned by Pesho\nat place (1,1)\nRate: $6,00\nOvertime rate: $0,00\r\n--------------------\r\nTotal: $6,00\nPaid: $6,00\nChange: $0,00\r\n********************";

            // Assert
            Assert.AreEqual(expected, result);
        }
Пример #6
0
        public void InsertVehicleAtNegativePlace_ShouldThrowExceptionWithCorrectMessage()
        {
            // Arrange
            IVehiclePark park = new VehiclePark(2, 2);
            IVehicle car = new Car("CA1234CA", "Pesho", 3);
            int sector = 1;
            int place = -1;
            string result = string.Empty;
            string expected = string.Format(GlobalMessages.NoSuchPlaceInSector, place, sector);

            // Act
            try
            {
                park.InsertVehicle(car, sector, place, new DateTime(2015, 10, 17, 10, 30, 0));
            }
            catch (Exception ex)
            {
                result = ex.Message;
            }

            // Assert
            Assert.AreEqual(expected, result);
        }
Пример #7
0
        public void InsertVehicleWithExistingLicensePlate_ShouldThrowExceptionWithCorrectMessage()
        {
            // Arrange
            IVehiclePark park = new VehiclePark(2, 2);
            IVehicle car = new Car("CA1234CA", "Pesho", 3);
            int sector = 1;
            int place = 1;
            string result = string.Empty;
            string expected = string.Format(GlobalMessages.VehicleAlreadyParked, "CA1234CA");

            // Act
            park.InsertVehicle(car, sector, place, new DateTime(2015, 10, 17, 10, 30, 0));
            try
            {
                park.InsertVehicle(car, sector + 1, place + 1, new DateTime(2015, 10, 17, 10, 30, 0));
            }
            catch (Exception ex)
            {
                result = ex.Message;
            }

            // Assert
            Assert.AreEqual(expected, result);
        }
Пример #8
0
        public void InsertVehicleValidOperation_ShouldReturnCorrectResult()
        {
            // Arrange
            IVehiclePark park = new VehiclePark(2, 2);
            IVehicle car = new Car("CA1234CA", "Pesho", 3);
            int sector = 1;
            int place = 1;

            // Act
            string result = park.InsertVehicle(car, sector, place, new DateTime(2015, 10, 17, 10, 30, 0));
            string parkPlace = string.Format("({0},{1})", sector, place);
            string expected = string.Format(GlobalMessages.VehicleParked, car.GetType().Name, parkPlace);

            // Assert
            Assert.AreEqual(expected, result);
        }
Пример #9
0
        public void InsertVehicleAtOccupiedSpace_ShouldThrowExceptionWithCorrectMessage()
        {
            // Arrange
            IVehiclePark park = new VehiclePark(2, 2);
            IVehicle car1 = new Car("CA1234CA", "Pesho", 3);
            IVehicle car2 = new Car("CA1235CA", "Pesho", 3);
            int sector = 1;
            int place = 1;
            string parkPlace = string.Format("({0},{1})", sector, place);
            string expected = string.Format(GlobalMessages.PlaceIsOccupied, parkPlace);

            // Act
            park.InsertVehicle(car1, sector, place, new DateTime(2015, 10, 17, 10, 30, 0));
            string result = string.Empty;
            try
            {
                park.InsertVehicle(car2, sector, place, new DateTime(2015, 10, 17, 10, 30, 0));
            }
            catch (Exception ex)
            {
                result = ex.Message;
            }

            // Assert
            Assert.AreEqual(expected, result);
        }