Exemplo n.º 1
0
        public void given_a_parking_lot_when_not_parking_a_car_then_I_can_not_pick_a_car()
        {
            var parkingLot   = new OOParkingLot(1);
            var notParkedCar = new Car("car");

            Assert.IsNull(parkingLot.Pick(notParkedCar.Id));
        }
        given_parking_boy_and_smart_parking_boy_then_smart_boy_can_not_manage_parking_boy()
        {
            var parkingLot      = new OOParkingLot(1);
            var parkingBoy      = new ParkingBoy(parkingLot);
            var smartParkingBoy = new SmartParkingBoy(parkingBoy as IParkingLot);

            smartParkingBoy.Park(new Car("car"));
        }
        given_parking_boy_and_super_parking_boy_then_super_boy_can_not_manage_parking_boy()
        {
            var parkingLot = new OOParkingLot(1);
            var parkingBoy = new ParkingBoy(parkingLot);
            var superBoy   = new SuperParkingBoy(parkingBoy as IParkingLot);

            superBoy.Park(new Car("car"));
        }
Exemplo n.º 4
0
        public void given_a_parking_lot_when_park_a_car_then_I_can_pick_a_car()
        {
            var p   = new OOParkingLot(1);
            var car = new Car("car");

            var carId = p.Park(car);

            Assert.AreSame(car, p.Pick(carId));
        }
        public void given_a_parking_manager_with_one_space_parking_lot_managed_by_a_parking_director_then_director_could_print_right_report_by_file_log()
        {
            var ooParkingLot    = new OOParkingLot(1);
            var parkingDirector = new ParkingDirector(new ParkingManager(ooParkingLot));

            var report = parkingDirector.OutPutByStrategy(new FileStrategy());

            Assert.AreEqual("M 1 0\r\n\tP 1 0", report);
        }
Exemplo n.º 6
0
        public void given_a_parking_lot_with_no_empty_space_when_parking_a_car_then_I_can_not_park()
        {
            var parkingLot = new OOParkingLot(0);
            var car        = new Car("car");

            var carId = parkingLot.Park(car);

            Assert.IsNull(carId);
        }
Exemplo n.º 7
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 given_a_parkingLot_and_a_super_parking_boy_when_super_boy_park_a_car_then_the_car_in_the_parkingLot()
        {
            var firstParkinglot = new OOParkingLot(1);
            var superParkingBoy = new SuperParkingBoy(firstParkinglot);
            var car             = new Car("car");

            var carId = superParkingBoy.Park(car);

            Assert.AreSame(car, firstParkinglot.Pick(carId));
        }
        public void given_a_parking_manager_with_two_parking_lot_managed_by_a_parking_director_then_the_director_could_print_right_report()
        {
            var firstParkingLot  = new OOParkingLot(1);
            var secondParkingLot = new OOParkingLot(0);
            var parkingDirector  = new ParkingDirector(new ParkingManager(firstParkingLot, secondParkingLot));

            var report = parkingDirector.OutPutByStrategy();

            Assert.AreEqual("M 1 0\r\n\tP 1 0\r\n\tP 0 0", report);
        }
        public void given_a_parking_manager_with_a_super_parking_boy_with_a_parking_lot_managed_by_a_parking_director_then_the_director_could_print_right_report()
        {
            var ooParkingLot    = new OOParkingLot(1);
            var superParkingBoy = new SuperParkingBoy(new OOParkingLot(1));
            var parkingDirector = new ParkingDirector(new ParkingManager(ooParkingLot, superParkingBoy));

            var report = parkingDirector.OutPutByStrategy();

            Assert.AreEqual("M 2 0\r\n\tP 1 0\r\n\tB2 1 0\r\n\t\tP 1 0", report);
        }
Exemplo n.º 11
0
        given_a_no_space_parking_lot_and_a_parking_boy_when_parking_boy_park_a_car_then_can_not_park_a_car
            ()
        {
            var parkingLot = new OOParkingLot(0);
            var parkingBoy = new ParkingBoy(parkingLot);

            var myCar = new Car("a");
            var carId = parkingBoy.Park(myCar);

            Assert.AreSame(null, carId);
        }
Exemplo n.º 12
0
        given_a_parking_lot_and_a_parking_boy_when_park_a_car_in_parking_lot_directly_then_parking_boy_can_pick_the_car
            ()
        {
            var parkingLot = new OOParkingLot(1);
            var parkingBoy = new ParkingBoy(parkingLot);

            var myCar = new Car("a");
            var carId = parkingLot.Park(myCar);

            Assert.AreSame(myCar, parkingBoy.Pick(carId));
        }
Exemplo n.º 13
0
        public void given_a_parking_lot_and_a_super_parking_boy_which_managed_by_parking_manager_when_parking_boy_park_a_car_then_manager_could_pick_the_car()
        {
            var parkinglot      = new OOParkingLot(1);
            var superParkingBoy = new SuperParkingBoy(parkinglot);
            var manager         = new ParkingManager(superParkingBoy);
            var car             = new Car("car");

            var carId = superParkingBoy.Park(car);

            Assert.AreSame(car, manager.Pick(carId));
        }
Exemplo n.º 14
0
        public void given_a_parking_lot_when_parking_a_car_then_I_can_only_pick_one()
        {
            var parkingLot = new OOParkingLot(1);
            var myCar      = new Car("my own car is unique");

            var myCarId = parkingLot.Park(myCar);

            parkingLot.Pick(myCarId);

            Assert.IsNull(parkingLot.Pick(myCarId));
        }
Exemplo n.º 15
0
        public void given_a_parking_lot_when_parking_two_car_then_I_can_pick_all_of_them()
        {
            var parkingLot = new OOParkingLot(2);
            var firstCar   = new Car("Car One");
            var secondCar  = new Car("Second One");

            parkingLot.Park(firstCar);
            var secondCarId = parkingLot.Park(secondCar);

            Assert.AreSame(secondCar, parkingLot.Pick(secondCarId));
        }
        public void given_two_parkingLot_with_same_space_and_a_smart_parking_boy_when_smart_boy_park_a_car_then_the_car_in_the_first_parkingLot()
        {
            var firstParkinglot  = new OOParkingLot(1);
            var secondParkinglot = new OOParkingLot(1);

            var smartParkingBoy = new SmartParkingBoy(firstParkinglot, secondParkinglot);
            var car             = new Car("car");
            var carId           = smartParkingBoy.Park(car);

            Assert.AreSame(car, firstParkinglot.Pick(carId));
        }
        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);
        }
Exemplo n.º 18
0
        given_two_parking_lot_with_first_parking_lot_is_full_when_parking_boy_park_a_car_then_the_car_parked_in_the_second_parking_lot
            ()
        {
            var firstParkingLot  = new OOParkingLot(0);
            var secondParkingLot = new OOParkingLot(1);
            var parkingBoy       = new ParkingBoy(firstParkingLot, secondParkingLot);
            var car = new Car("car");

            var carId = parkingBoy.Park(car);

            Assert.AreSame(car, secondParkingLot.Pick(carId));
        }
Exemplo n.º 19
0
        given_two_parking_lot_with_all_parking_lot_is_full_when_parking_boy_park_a_car_then_the_car_cannot_be_parked
            ()
        {
            var firstParkingLot  = new OOParkingLot(0);
            var secondParkingLot = new OOParkingLot(0);
            var parkingBoy       = new ParkingBoy(firstParkingLot, secondParkingLot);
            var car = new Car("car");

            var carId = parkingBoy.Park(car);

            Assert.AreSame(null, carId);
        }
        public void given_a_parking_manager_with_a_super_parking_boy_with_two_parking_lot_and_a_smart_boy_with_a_parking_lot_which_parked_a_car_managed_by_a_parking_director_then_the_director_could_print_right_report()
        {
            var superParkingBoy    = new SuperParkingBoy(new OOParkingLot(1), new OOParkingLot(1));
            var smartBoyParkingLot = new OOParkingLot(1);
            var smartParkingBoy    = new SmartParkingBoy(smartBoyParkingLot);
            var parkingDirector    = new ParkingDirector(new ParkingManager(smartParkingBoy, superParkingBoy));

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

            var report = parkingDirector.OutPutByStrategy();

            Assert.AreEqual("M 2 1\r\n\tB1 0 1\r\n\t\tP 0 1\r\n\tB2 2 0\r\n\t\tP 1 0\r\n\t\tP 1 0", report);
        }
Exemplo n.º 21
0
        public void given_a_parking_lot_with_one_space_when_I_park_the_first_car_and_pick_the_first_car_then_I_can_park_the_second_one()
        {
            var parkingLot = new OOParkingLot(1);
            var firstCar   = new Car("first car");
            var secondCar  = new Car("second car");

            var firstCarId = parkingLot.Park(firstCar);

            parkingLot.Pick(firstCarId);
            var secondCarId = parkingLot.Park(secondCar);

            Assert.AreSame(secondCar, parkingLot.Pick(secondCarId));
        }
Exemplo n.º 22
0
        given_a_parking_lot_and_a_parking_boy_then_parking_boy_park_a_car_and_pick_the_car_then_parking_boy_cannot_pick_the_car
            ()
        {
            var parkingLot = new OOParkingLot(1);
            var parkingBoy = new ParkingBoy(parkingLot);
            var myCar      = new Car("a");

            var carId = parkingBoy.Park(myCar);

            parkingBoy.Pick(carId);

            Assert.AreEqual(null, parkingBoy.Pick(carId));
        }
Exemplo n.º 23
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));
        }
Exemplo n.º 24
0
        given_two_parking_lot_when_parking_boy_park_a_car_and_pick_the_car_then_parking_boy_cannot_pick_a_car
            ()
        {
            var firstParkingLot  = new OOParkingLot(1);
            var secondParkingLot = new OOParkingLot(1);
            var parkingBoy       = new ParkingBoy(firstParkingLot, secondParkingLot);
            var car = new Car("car");

            var carId = parkingBoy.Park(car);

            parkingBoy.Pick(carId);

            Assert.AreSame(null, parkingBoy.Pick(carId));
        }
Exemplo n.º 25
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));
        }
        public void given_two_parkinglot_and_the_first_parkinglot_emptyRate_is_smaller_than_the_second_one_when_super_boy_park_a_car_then_the_second_parkinglot_could_pick_the_car()
        {
            var firstPrakingLot  = new OOParkingLot(3);
            var secondPrakingLot = new OOParkingLot(4);
            var car = new Car("car");
            var parkedCarInFirstParkingLot  = new Car("car parked in the first parkinglot");
            var parkedCarInSecondParkingLot = new Car("car parked in the second parkinglot");

            firstPrakingLot.Park(parkedCarInFirstParkingLot);
            secondPrakingLot.Park(parkedCarInSecondParkingLot);
            var superBoy = new SuperParkingBoy(firstPrakingLot, secondPrakingLot);

            var carId = superBoy.Park(car);

            Assert.AreSame(car, secondPrakingLot.Pick(carId));
        }