public void Should_return_no_ticket_when_passing_a_parked_car()
        {
            // given
            List <ParkingLot> parkingLotList = new List <ParkingLot> {
                new ParkingLot(0), new ParkingLot(1)
            };
            var parkingBoy    = new ParkingBoy(parkingLotList);
            var car           = new Car();
            var parkingTicket = parkingBoy.ParkCar(car, out string errorMessagePark1);
            // when
            var newParkingTicket = parkingBoy.ParkCar(car, out string errorMessagePark2);

            // then
            Assert.Null(newParkingTicket);
        }
        public void Should_return_no_ticket_when_try_to_park_a_car_when_there_is_no_position_in_parking_lot()
        {
            // given
            List <ParkingLot> parkingLotList = new List <ParkingLot> {
                new ParkingLot(0, 1), new ParkingLot(1, 0)
            };
            var parkingBoy    = new ParkingBoy(parkingLotList);
            var car           = new Car();
            var parkingTicket = parkingBoy.ParkCar(car, out string errorMessage1);
            // when
            var anotherCar       = new Car();
            var newParkingTicket = parkingBoy.ParkCar(anotherCar, out string errorMessage2);

            // then
            Assert.Null(newParkingTicket);
        }
Esempio n. 3
0
        public void ParkingBoy_Should_Add_Error_Message_Given_Outof_Capacity()
        {
            //given
            var parkingLot = new ParkingLot.ParkingLot("parkingLot_1", 2);
            var parkingBoy = new ParkingBoy("parkingBoy_1", parkingLot);
            var car_1      = new Car("car_1");
            var car_2      = new Car("car_2");
            var car_3      = new Car("car_3");

            //when
            parkingBoy.ParkCar(car_1, out _);
            parkingBoy.ParkCar(car_2, out _);
            parkingBoy.ParkCar(car_3, out var errorMessage);
            var expectedMessage = "Not enough position.";

            //then
            Assert.Equal(expectedMessage, errorMessage);
        }
        public void Should_get_the_right_car_when_add_multiple_cars()
        {
            // given
            List <ParkingLot> parkingLotList = new List <ParkingLot> {
                new ParkingLot(0), new ParkingLot(1)
            };
            var parkingBoy    = new ParkingBoy(parkingLotList);
            var expectedCar   = new Car();
            var anotherCar    = new Car();
            var parkingTicket = parkingBoy.ParkCar(expectedCar, out string errorMessagePark1);

            parkingBoy.ParkCar(anotherCar, out string errorMessagePark2);
            // when
            var actualCar            = parkingBoy.FetchCar(parkingTicket, out string errorMessage);
            var isFetchedTheRightCar = expectedCar.Equals(actualCar) && !anotherCar.Equals(actualCar);

            // then
            Assert.True(isFetchedTheRightCar);
        }
        public void ParkingBoy_Should_Return_Null_Given_Null_Car()
        {
            //given
            var parkingLot = new ParkingLot("parkingLot_1", 3);
            var parkingBoy = new ParkingBoy("parkingBoy_1", parkingLot);

            //when
            var resultGivenParkedCar = parkingBoy.ParkCar(null, out _);

            //then
            Assert.Null(resultGivenParkedCar);
        }
        public void ParkingBoy_Should_Return_Null_Given_Parked_Car()
        {
            //given
            var car         = new Car("car_1");
            var newCustomer = new Customer("customer_1", car);
            var parkingLot  = new ParkingLot("parkingLot_1", 3);
            var parkingBoy  = new ParkingBoy("parkingBoy_1", parkingLot);

            //when
            newCustomer.PassCarToParkingBoy(parkingBoy);
            var resultGivenParkedCar = parkingBoy.ParkCar(car, out _);

            //then
            Assert.Null(resultGivenParkedCar);
        }
        public void Should_return_the_car_when_use_correct_parking_ticket_to_fetch_the_car()
        {
            // given
            List <ParkingLot> parkingLotList = new List <ParkingLot> {
                new ParkingLot(0), new ParkingLot(1)
            };
            var parkingBoy    = new ParkingBoy(parkingLotList);
            var expectedCar   = new Car();
            var parkingTicket = parkingBoy.ParkCar(expectedCar, out string errorMessagePark);
            // when
            var actualCar = parkingBoy.FetchCar(parkingTicket, out string errorMessage);

            // then
            Assert.Equal(expectedCar, actualCar);
        }
        public void Should_return_correct_parking_ticket_when_parked_a_car()
        {
            // given
            List <ParkingLot> parkingLotList = new List <ParkingLot> {
                new ParkingLot(0), new ParkingLot(1)
            };
            var parkingBoy = new ParkingBoy(parkingLotList);
            var car        = new Car();
            // when
            var  parkingTicket          = parkingBoy.ParkCar(car, out string errorMessage);
            bool isParkingTicketCorrect = parkingTicket.ParkingLotId == 0 && parkingTicket.CarId == 0;

            // then
            Assert.True(isParkingTicketCorrect);
        }
        public void Should_return_null_when_not_given_a_parking_ticket_to_fetch_car()
        {
            // given
            List <ParkingLot> parkingLotList = new List <ParkingLot> {
                new ParkingLot(0), new ParkingLot(1)
            };
            var parkingBoy    = new ParkingBoy(parkingLotList);
            var car           = new Car();
            var parkingTicket = parkingBoy.ParkCar(car, out string errorMessagePark);
            // when
            var actualCar = parkingBoy.FetchCar(null, out string errorMessage);

            // then
            Assert.Null(actualCar);
        }
        public void Should_return_no_parking_ticket_and_generate_error_message_Not_enough_position_when_the_parking_boy_attempt_to_park_into_a_parking_lot_without_position()
        {
            // given
            List <ParkingLot> parkingLotList = new List <ParkingLot> {
                new ParkingLot(0, 0), new ParkingLot(1, 0)
            };
            var parkingBoy = new ParkingBoy(parkingLotList);
            var car        = new Car();
            // when
            string errorMessage;
            var    parkingTicket = parkingBoy.ParkCar(car, out errorMessage);

            // then
            Assert.Null(parkingTicket);
            Assert.Equal("Not enough position.", errorMessage);
        }
        public void Should_park_car_when_given_a_car()
        {
            // given
            List <ParkingLot> parkingLotList = new List <ParkingLot> {
                new ParkingLot(0), new ParkingLot(1)
            };
            var parkingBoy = new ParkingBoy(parkingLotList);
            var car        = new Car();

            // when
            parkingBoy.ParkCar(car, out string errorMessage);
            var isCarParked = parkingLotList.Where(parkingLot => parkingLot.HasCar(car)).ToList().Count > 0;

            // then
            Assert.True(isCarParked);
        }
        public void Should_return_no_car_and_generate_error_message_Please_provide_your_parking_ticket_when_customer_does_not_provide_a_ticket()
        {
            // given
            List <ParkingLot> parkingLotList = new List <ParkingLot> {
                new ParkingLot(0), new ParkingLot(1)
            };
            var parkingBoy    = new ParkingBoy(parkingLotList);
            var car           = new Car();
            var parkingTicket = parkingBoy.ParkCar(car, out string errorMessagePark);
            // when
            string errorMessage;
            var    actualCar = parkingBoy.FetchCar(null, out errorMessage);

            // then
            Assert.Null(actualCar);
            Assert.Equal("Please provide your parking ticket.", errorMessage);
        }
        public void Should_return_no_car_and_generate_error_message_Unrecognized_parking_ticket_when_parking_boy_does_not_provide_the_ticket()
        {
            // given
            List <ParkingLot> parkingLotList = new List <ParkingLot> {
                new ParkingLot(0), new ParkingLot(1)
            };
            var parkingBoy    = new ParkingBoy(parkingLotList);
            var car           = new Car();
            var parkingTicket = parkingBoy.ParkCar(car, out string errorMessagePark);
            // when
            string errorMessage;
            var    actualCar = parkingBoy.FetchCar(new ParkingTicket(parkingTicket.ParkingLotId, parkingTicket.CarId + 1), out errorMessage);

            // then
            Assert.Null(actualCar);
            Assert.Equal("Unrecognized parking ticket.", errorMessage);
        }
Esempio n. 14
0
        public void ParkingBoy_Should_Add_Error_Message_Given_Parked_Ticket()
        {
            //given
            var car         = new Car("car_1");
            var newCustomer = new Customer("customer_1", car);
            var parkingLot  = new ParkingLot.ParkingLot("parkingLot_1", 3);
            var parkingBoy  = new ParkingBoy("parkingBoy_1", parkingLot);

            //when
            var parkedTicket = parkingBoy.ParkCar(car, out _);

            parkingBoy.FetchCar(parkedTicket, out _);
            parkingBoy.FetchCar(parkedTicket, out var errorMessage);
            var expectedMessage = "Unrecognized parking ticket.";

            //then
            Assert.Equal(expectedMessage, errorMessage);
        }