@Test public void should_success_to_park_car_when_two_parkinglot_both_empty() { ParkingBoy smartParkingBoy = ParkingBoy.smartParkingBoy(Arrays.asList(new ParkingLot(1), new ParkingLot(1))); Car car = new Car(CAR_LICENSE); UUID ticket = smartParkingBoy.park(car); assertEquals(car, smartParkingBoy.pick(ticket)); }
@Test public void should_success_to_pick_car_when_parked_a_car_in_one_parkinglot_with_one_capacity() { ParkingBoy smartParkingBoy = ParkingBoy.smartParkingBoy(Collections.singletonList(new ParkingLot(1))); Car car = new Car(CAR_LICENSE); UUID ticket = smartParkingBoy.park(car); assertEquals(car, smartParkingBoy.pick(ticket)); }
@Test public void should_fail_to_park_car_when_two_parkinglot_both_full() { // given ParkingBoy smartParkingBoy = ParkingBoy.smartParkingBoy(Arrays.asList(new ParkingLot(0), new ParkingLot(0))); // when Car car = new Car(CAR_LICENSE); // then assertNull(smartParkingBoy.park(car)); }
@Test public void should_fail_to_park_car_when_one_parkinglot_with_one_capacity_occupied() { ParkingLot parkingLot = new ParkingLot(1) { { park(new Car(ANOTHER_CAR_LICENSE)); } }; ParkingBoy smartParkingBoy = ParkingBoy.smartParkingBoy(Collections.singletonList(parkingLot)); Car car = new Car(CAR_LICENSE); assertNull(smartParkingBoy.park(car)); }
@Test public void should_success_to_park_car_in_first_parkinglot_when_two_parkinglot_both_one_space() { // given ParkingLot oneSpaceParkinglot = new ParkingLot(1); ParkingLot anotherOneSpaceParkinglot = new ParkingLot(1); ParkingBoy smartParkingBoy = ParkingBoy.smartParkingBoy(Arrays.asList(oneSpaceParkinglot, anotherOneSpaceParkinglot)); // when Car car = new Car(CAR_LICENSE); UUID ticket = smartParkingBoy.park(car); // then assertEquals(car, oneSpaceParkinglot.pick(ticket)); }
@Test public void should_success_to_park_at_second_when_two_parkinglot_first_has_one_space_second_has_two() { // given ParkingLot oneSpaceParkinglot = new ParkingLot(1); ParkingLot twoSpaceParkingLot = new ParkingLot(2); ParkingBoy smartParkingBoy = ParkingBoy.smartParkingBoy(Arrays.asList(oneSpaceParkinglot, twoSpaceParkingLot)); // when Car car = new Car(CAR_LICENSE); UUID ticket = smartParkingBoy.park(car); // then assertEquals(car, twoSpaceParkingLot.pick(ticket)); }