public void Manager_Should_Add_ParkingBoy_Successfully()
        {
            //given
            var parkingLot   = new ParkingLot.ParkingLot("parkingLot_1");
            var parkingBoy_1 = new ParkingBoy("parkingBoy_1", parkingLot);
            var manager      = new ParkingLotServiceManager("manager_1", parkingLot, new List <ParkingBoy>(new ParkingBoy[] { parkingBoy_1 }));
            //when
            var parkingBoy_2 = new ParkingBoy("parkingBoy_2", parkingLot);

            manager.AddParkingBoy(parkingBoy_2);
            //then
            Assert.True(manager.ManageParkingBoy(parkingBoy_2));
        }
Exemplo n.º 2
0
        public void Should_parking_lot_service_manager_add_super_smart_parking_boy_to_managementList()
        {
            // given
            List <ParkingLot> parkingLotListForManager = new List <ParkingLot> {
                new ParkingLot(0), new ParkingLot(1)
            };
            List <ParkingLot> parkingLotListForParkingBoy = new List <ParkingLot> {
                new ParkingLot(2), new ParkingLot(3)
            };
            var expectedSuperSmartParkingBoy = new SuperSmartParkingBoy(parkingLotListForParkingBoy);
            var parkingLotServiceManager     = new ParkingLotServiceManager(parkingLotListForManager, new List <ParkingBoy>());

            parkingLotServiceManager.AddParkingBoy(expectedSuperSmartParkingBoy);
            // when
            var specifiedParkingBoy = parkingLotServiceManager.SpecifyParkingBoy();

            // then
            Assert.Equal(expectedSuperSmartParkingBoy, specifiedParkingBoy);
        }
Exemplo n.º 3
0
        public void Should_parking_lot_service_manager_return_parking_boy_to_do_parking_works()
        {
            // given
            List <ParkingLot> parkingLotListForManager = new List <ParkingLot> {
                new ParkingLot(0), new ParkingLot(1)
            };
            List <ParkingLot> parkingLotListForParkingBoy = new List <ParkingLot> {
                new ParkingLot(2), new ParkingLot(3)
            };
            var superSmartParkingBoy     = new SuperSmartParkingBoy(parkingLotListForParkingBoy);
            var managementList           = new List <ParkingBoy>();
            var parkingLotServiceManager = new ParkingLotServiceManager(parkingLotListForManager, managementList);

            // when
            parkingLotServiceManager.AddParkingBoy(superSmartParkingBoy);
            bool isSuperSmartParkingBoyAdded = managementList.Contains(superSmartParkingBoy);

            // then
            Assert.True(isSuperSmartParkingBoyAdded);
        }
Exemplo n.º 4
0
        public void Should_parking_lot_service_manager_add_standard_parking_boy_to_managementList()
        {
            // given
            List <ParkingLot> parkingLotListForManager = new List <ParkingLot> {
                new ParkingLot(0), new ParkingLot(1)
            };
            List <ParkingLot> parkingLotListForParkingBoy = new List <ParkingLot> {
                new ParkingLot(2), new ParkingLot(3)
            };
            var parkingBoy               = new ParkingBoy(parkingLotListForParkingBoy);
            var managementList           = new List <ParkingBoy>();
            var parkingLotServiceManager = new ParkingLotServiceManager(parkingLotListForManager, managementList);

            // when
            parkingLotServiceManager.AddParkingBoy(parkingBoy);
            bool isStandardParkingBoyAdded = managementList.Contains(parkingBoy);

            // then
            Assert.True(isStandardParkingBoyAdded);
        }
Exemplo n.º 5
0
        public void Should_parking_lot_service_manager_act_as_a_standard_parking_boy()
        {
            // given
            List <ParkingLot> parkingLotListForManager = new List <ParkingLot> {
                new ParkingLot(0, 0), new ParkingLot(1, 0)
            };
            List <ParkingLot> parkingLotListForParkingBoy = new List <ParkingLot> {
                new ParkingLot(2), new ParkingLot(3)
            };
            var standardParkingBoy       = new ParkingBoy(parkingLotListForParkingBoy);
            var parkingLotServiceManager = new ParkingLotServiceManager(parkingLotListForManager, new List <ParkingBoy>());

            parkingLotServiceManager.AddParkingBoy(standardParkingBoy);
            // when
            string errorMessage;

            parkingLotServiceManager.ParkCar(new Car(), out errorMessage);
            // then
            Assert.Equal("Not enough position.", errorMessage);
        }
Exemplo n.º 6
0
        public void Should_specified_parking_boy_only_manipulate_parking_lots_managed_by_him()
        {
            // given
            List <ParkingLot> parkingLotListForManager = new List <ParkingLot> {
                new ParkingLot(0), new ParkingLot(1)
            };
            List <ParkingLot> parkingLotListForParkingBoy = new List <ParkingLot> {
                new ParkingLot(2, 0), new ParkingLot(3, 0)
            };
            var standardParkingBoy       = new ParkingBoy(parkingLotListForParkingBoy);
            var parkingLotServiceManager = new ParkingLotServiceManager(parkingLotListForManager, new List <ParkingBoy>());

            parkingLotServiceManager.AddParkingBoy(standardParkingBoy);
            var specifiedParkingBoy = parkingLotServiceManager.SpecifyParkingBoy();
            // when
            string errorMessage;

            specifiedParkingBoy.ParkCar(new Car(), out errorMessage);
            // then
            Assert.Equal("Not enough position.", errorMessage);
        }
Exemplo n.º 7
0
        public void Should_parking_lot_service_manager_has_have_same_error_message_with_prcking_boy_when_parking_boy_fails_operation()
        {
            // given
            List <ParkingLot> parkingLotListForManager = new List <ParkingLot> {
                new ParkingLot(0), new ParkingLot(1)
            };
            List <ParkingLot> parkingLotListForParkingBoy = new List <ParkingLot> {
                new ParkingLot(2, 0), new ParkingLot(3, 0)
            };
            var standardParkingBoy       = new ParkingBoy(parkingLotListForParkingBoy);
            var parkingLotServiceManager = new ParkingLotServiceManager(parkingLotListForManager, new List <ParkingBoy>());

            parkingLotServiceManager.AddParkingBoy(standardParkingBoy);
            var specifiedParkingBoy = parkingLotServiceManager.SpecifyParkingBoy();
            // when
            string errorMessage;

            specifiedParkingBoy.ParkCar(new Car(), out errorMessage);
            string errorMessageFromManager = parkingLotServiceManager.ErrorMessage;

            // then
            Assert.Equal("Not enough position.", errorMessage);
            Assert.Equal(errorMessage, errorMessageFromManager);
        }