Пример #1
0
        public void ParkTheVehicle()
        {
            var vehicle = new Vehicle {
                Number = "a001aa77"
            };

            _parkingManager.Park(vehicle, DateTime.Now);

            Assert.True(_plc.Occupied);
            Assert.True(_session.Vehicle.Number == vehicle.Number);
        }
Пример #2
0
        void should_can_pick_the_car_when_manage_super_parking_boy_and_park_a_car()
        {
            var manager = new ParkingManager(new SuperParkingBoy(new ParkingLot(10)));
            var car     = new Car();
            var token   = manager.Park(car);

            var pickedCar = manager.Pick(token);

            Assert.Same(car, pickedCar);
        }
Пример #3
0
        public void given_a_parkingLot_and_a_parking_manager_when_parking_manager_park_a_car_then_he_can_pick_the_car()
        {
            var parkinglot = new OOParkingLot(1);
            var manager    = new ParkingManager(parkinglot);
            var car        = new Car("car");

            var carId = manager.Park(car);

            Assert.AreSame(car, manager.Pick(carId));
        }
        public void should_park_car_when_manages_parking_lot()
        {
            var parkingLot     = new ParkingLot(1);
            var parkingManager = new ParkingManager(parkingLot);
            var car            = new Car();

            var token     = parkingManager.Park(car);
            var pickedCar = parkingManager.Pick(token);

            pickedCar.Should().BeSameAs(car);
        }
Пример #5
0
        public void ShouldReportWhichSpotsAreAvailable()
        {
            Assert.IsTrue(_manager.Enter(_vehicle1));
            Assert.IsTrue(_manager.Enter(_vehicle2));
            Assert.IsTrue(_manager.Enter(_vehicle3));

            Assert.AreEqual(_spot1, _manager.AvailableSpot());
            _manager.Park(_vehicle1, _spot1);

            Assert.AreEqual(_spot2, _manager.AvailableSpot());
            _manager.Park(_vehicle2, _spot2);

            Assert.AreEqual(_spot3, _manager.AvailableSpot());
            _manager.Park(_vehicle3, _spot3);

            Assert.IsNull(_manager.AvailableSpot());
        }
        public void should_park_car_when_manages_smart_parking_boy()
        {
            var parkingLot      = new ParkingLot(1);
            var smartParkingBoy = new SmartParkingBoy(parkingLot);
            var parkingManager  = new ParkingManager(smartParkingBoy);
            var car             = new Car();

            var token     = parkingManager.Park(car);
            var pickedCar = parkingManager.Pick(token);

            pickedCar.Should().BeSameAs(car);
        }
        public void given_a_parking_manager_with_empty_space_parking_lot_managed_by_a_parking_director_then_director_could_print_right_report()
        {
            var ooParkingLot    = new OOParkingLot(1);
            var parkingManager  = new ParkingManager(ooParkingLot);
            var parkingDirector = new ParkingDirector(parkingManager);

            parkingManager.Park(new Car("car"));

            var report = parkingDirector.OutPutByStrategy();

            Assert.AreEqual("M 0 1\r\n\tP 0 1", report);
        }
Пример #8
0
        void should_can_pick_the_car_when_manage_parking_lots_and_parking_boys_and_park_a_car()
        {
            var lotNoSpace  = new ParkingLot(0);
            var lotHasSpace = new ParkingLot(2);
            var boy         = new SuperParkingBoy(lotHasSpace);
            var superBoy    = new SuperParkingBoy(lotHasSpace);
            var smartBoy    = new SuperParkingBoy(lotNoSpace);
            var manager     = new ParkingManager(lotNoSpace, boy, smartBoy, superBoy);
            var car         = new Car();

            var token = manager.Park(car);

            Assert.Same(car, manager.Pick(token));

            token = manager.Park(car);
            Assert.Same(car, boy.Pick(token));

            token = manager.Park(car);
            Assert.Same(car, superBoy.Pick(token));

            token = manager.Park(car);
            Assert.Same(car, lotHasSpace.Pick(token));

            token = manager.Park(car);
            Assert.Throws <NotFoundException>(() => smartBoy.Pick(token));

            token = manager.Park(car);
            Assert.Throws <NotFoundException>(() => lotNoSpace.Pick(token));
        }
Пример #9
0
        given_a_full_parking_lot_and_a_parking_boy_which_managed_by_parking_mananger_with_one_space_parking_lot_when_parking_manager_park_the_car_then_parking_boy_could_pick_the_car
            ()
        {
            var emptyParkinglot = new OOParkingLot(0);
            var parkinglot      = new OOParkingLot(1);
            var parkingBoy      = new ParkingBoy(parkinglot);
            var manager         = new ParkingManager(emptyParkinglot, parkingBoy);
            var car             = new Car("car");

            var carId = manager.Park(car);

            Assert.AreSame(car, parkingBoy.Pick(carId));
        }
Пример #10
0
        public void should_park_car_when_manages_multiple_parking_lots()
        {
            var fullParkingLot = new ParkingLotBuilder()
                                 .WithCapacity(1)
                                 .WithOccupiedParkingSpace(1)
                                 .Create();
            var parkingManager = new ParkingManager(fullParkingLot, new ParkingLot(1));
            var car            = new Car();

            var token     = parkingManager.Park(car);
            var pickedCar = parkingManager.Pick(token);

            pickedCar.Should().BeSameAs(car);
        }
Пример #11
0
        given_a_smart_boy_with_empty_parking_lot_and_a_super_boy_with_one_space_parking_lot_both_managed_by_parking_manager_when_parking_manager_park_the_car_then_super_boy_could_pick_the_car
            ()
        {
            var emptyParkinglot = new OOParkingLot(0);
            var parkinglot      = new OOParkingLot(1);
            var smartBoy        = new SmartParkingBoy(emptyParkinglot);
            var superBoy        = new SuperParkingBoy(parkinglot);
            var manager         = new ParkingManager(smartBoy, superBoy);
            var car             = new Car("car");

            var carId = manager.Park(car);

            Assert.AreSame(car, superBoy.Pick(carId));
        }
Пример #12
0
        public void should_parkingmanager_park_in_parkinglot_with_parkingboy()
        {
            var parkingBoy = ParkingBoyFactory.CreateParkingBoy(new Parkinglot());
            var parkingManager = new ParkingManager(
                ParkingBoyFactory.CreateSmartParkingBoy(new Parkinglot(0)),
                ParkingBoyFactory.CreateSuperParkingBoy(new Parkinglot(0)),
                parkingBoy,
                new Parkinglot(0));
            var car = new Car();

            var token = parkingManager.Park(car);

            Assert.Same(car, parkingBoy.Pick(token));
        }