public void should_park_car_fail_if_all_parkingLots_are_full() { var parkingBoy = new ParkingBoy(new ParkingLot(1)); parkingBoy.Park(new Car()); Assert.Equal(StatusCode.ParkinglotIsFull, parkingBoy.Park(new Car()).StatusCode); }
public void should_get_park_status_when_one_parkingBoy_parked() { var parkingBoy = new ParkingBoy(new ParkingLot(2)); var manager = new ParkingBoyManager(new List<IParkable> {new ParkingLot(1), parkingBoy}); parkingBoy.Park(new Car()); var director = new ParkingDirector(manager); Assert.Equal("M 1 3\r\n P 0 1\r\n B 1 2\r\n P 1 2", director.GetParkStatus()); }
public void should_get_park_status_with_multiple_parkingBoy_parked() { var parkingBoy = new ParkingBoy(new ParkingLot(2), new ParkingLot(3)); var manager = new ParkingBoyManager(new List<IParkable> { new ParkingLot(1), parkingBoy, new ParkingBoy(new ParkingLot(2)) }); parkingBoy.Park(new Car()); var director = new ParkingDirector(manager); Assert.Equal("M 1 8\r\n P 0 1\r\n B 1 5\r\n P 1 2\r\n P 0 3\r\n B 0 2\r\n P 0 2", director.GetParkStatus()); }
public void parkingLot_should_pick_car_success_after_parkingBoy_park_car() { var car = new Car(); var parkingLot = new ParkingLot(1); var parkingBoy = new ParkingBoy(parkingLot); var parkingInfo = parkingBoy.Park(car); Assert.Same(car, parkingLot.Pick(parkingInfo.ParkingToken)); }
public void should_park_to_first_available_parkingLot_for_mutiple_available_parkingLots() { var bmw = new Car(); var parkingLot1 = new ParkingLot(1); var parkingLot2 = new ParkingLot(1); var parkingBoy = new ParkingBoy(parkingLot1, parkingLot2); var bmwParkingInfo = parkingBoy.Park(bmw); Assert.Same(bmw, parkingLot1.Pick(bmwParkingInfo.ParkingToken)); }