public void should_get_message_when_parking_bot_to_parking_car() { var parkingLots = new List <ParkingLot>(); var parkingLotA = new ParkingLot(20); var parkingLotB = new ParkingLot(20); parkingLots.Add(parkingLotA); parkingLots.Add(parkingLotB); for (int i = 0; i < 20; i++) { parkingLotA.Park(new Car()); } for (int i = 0; i < 20; i++) { parkingLotB.Park(new Car()); } var parkingBot = new ParkingBot(parkingLots); var exception = Assert.Throws <Exception>(() => parkingBot.Park(new Car())); Assert.Equal("ParkingLot is full", exception.Message); }
public void should_return_ticket_when_make_park_bot_park_a_car_given_parking_lot_has_only_one_space() { var parkingLot = new ParkingLot(1); var bot = new ParkingBot(new List <ParkingLot> { parkingLot }); var ticket = bot.Park(new Car()); Assert.NotNull(ticket); }
public void should_throw_NoSpaceException_when_make_park_bot_park_a_car_given_parking_lot_no_space() { var parkingLot = new ParkingLot(0); var bot = new ParkingBot(new List <ParkingLot> { parkingLot }); var exception = Assert.Throws <NoSpaceException>(() => bot.Park(new Car())); Assert.Equal("no space", exception.Message); }
void should_return_a_ticket_when_given_a_car_to_parking_bot() { var parkingBoy = new ParkingBot(new List <ParkingLot> { new ParkingLot(parkingLotSize) }); var ticket = parkingBoy.Park(new Car()); Assert.NotNull(ticket); }
public void should_park_a_car_into_a_parking_lot_which_has_space_and_get_a_ticket() { var list = new List <ParkingLot> { new ParkingLot(_capacity) }; var parkingBoy = new ParkingBot(list); var ticket = parkingBoy.Park(new Car()); Assert.NotNull(ticket); }
void should_get_a_car_when_give_ticket_given_by_parking_bot() { var parkingBoy = new ParkingBot(new List <ParkingLot> { _parkingLot }); var car = new Car(); var ticket = parkingBoy.Park(car); var getCar = _parkingLot.GetCar(ticket); Assert.Same(car, getCar); }
public void should_return_ticket_from_packing_bot_when_let_boy_to_packing_car() { var parkingLots = new List <ParkingLot>(); var parkingLot = new ParkingLot(20); parkingLots.Add(parkingLot); var parkingBot = new ParkingBot(parkingLots); var ticket = parkingBot.Park(new Car()); Assert.NotNull(ticket); }
void should_return_same_ordered_list_when_given_ordered_list_to_parking_bot() { var parkingLot1 = new ParkingLot(parkingLotSize); var parkingLot2 = new ParkingLot(parkingLotSize); var managedParkingLots = new List <ParkingLot> { parkingLot1, parkingLot2 }; var parkingBoy = new ParkingBot(managedParkingLots); Assert.Equal(parkingLot2, parkingBoy.ManagedParkingLots[1]); Assert.Equal(parkingLot1, parkingBoy.ManagedParkingLots[0]); }
public void should_return_when_user_pick_a_car_given_the_ticket_is_created_by_bot() { var parkingLot1 = new ParkingLot(1); var parkingLot2 = new ParkingLot(1); var car = new Car(); var bot = new ParkingBot(new List <ParkingLot> { parkingLot1, parkingLot2 }); var ticket = bot.Park(car); Assert.Equal(car, parkingLot1.Pick(ticket)); var exception = Assert.Throws <InvalidTicketException>(() => parkingLot2.Pick(ticket)); Assert.Equal("invalid ticket", exception.Message); }
public void should_park_car_to_A_when_parking_bot_to_parking_car() { var parkingLots = new List <ParkingLot>(); var parkingLotA = new ParkingLot(20); var parkingLotB = new ParkingLot(20); parkingLots.Add(parkingLotA); parkingLots.Add(parkingLotB); var parkingBot = new ParkingBot(parkingLots); parkingBot.Park(new Car()); Assert.Single(parkingLotA.ticketToCars); }
public void should_keep_order_when_make_park_bot_park_a_car_given_bot_own_two_parking_lot_first_parking_lot_has_two_spaces() { var firsLot = new ParkingLot(2); var secondLot = new ParkingLot(0); var lots = new List <ParkingLot> { firsLot, secondLot }; var bot = new ParkingBot(lots); bot.Park(new Car()); bot.Park(new Car()); Assert.Equal(2, firsLot.CurrentCount()); Assert.Equal(0, secondLot.CurrentCount()); }
public void should_not_park_a_car_into_a_parking_lot_which_has_no_space() { var parkingLot = new ParkingLot(_capacity); for (var i = 0; i < 20; i++) { parkingLot.Park(new Car()); } var list = new List <ParkingLot> { parkingLot }; var parkingBoy = new ParkingBot(list); Assert.Throws <Exception>(() => parkingBoy.Park(new Car())); }
void should_return_error_message_when_given_a_car_to_parking_bot_while_parking_lots_are_full() { var parkingBoy = new ParkingBot(new List <ParkingLot> { new ParkingLot(parkingLotSize), new ParkingLot(parkingLotSize) }); for (var i = 0; i < parkingLotSize * 2; i++) { parkingBoy.Park(new Car()); } var error = Assert.Throws <Exception>(() => parkingBoy.Park(new Car())); Assert.Equal("Parking lots are full!", error.Message); }
public void should_park_into_first_parking_lot_when_have_two_available_parking_lots() { var parkingLotA = new ParkingLot(_capacity); var parkingLotB = new ParkingLot(_capacity); var preNumOfCarA = parkingLotA.GetAvailableSpotNumber(); var preNumOfCarB = parkingLotB.GetAvailableSpotNumber(); var car = new Car(); var list = new List <ParkingLot>() { parkingLotA, parkingLotB }; var parkingBoy = new ParkingBot(list); parkingBoy.Park(car); Assert.Equal(preNumOfCarA - 1, parkingLotA.GetAvailableSpotNumber()); Assert.Equal(preNumOfCarB, parkingLotB.GetAvailableSpotNumber()); }
public void should_return_exception_when_have_two_parking_lots_and_both_of_them_are_full() { var parkingLotA = new ParkingLot(_capacity); var parkingLotB = new ParkingLot(_capacity); for (var i = 0; i < 20; i++) { parkingLotA.Park(new Car()); parkingLotB.Park(new Car()); } var car = new Car(); var list = new List <ParkingLot>() { parkingLotA, parkingLotB }; var parkingBoy = new ParkingBot(list); Assert.Throws <Exception>(() => parkingBoy.Park(car)); }
void should_return_error_message_when_given_a_car_to_parking_bot_while_parking_lots_managed_by_him_are_full() { var notManagedParkingLot = new ParkingLot(parkingLotSize); var managedParkingLot = new ParkingLot(parkingLotSize); var parkingBoy = new ParkingBot(new List <ParkingLot> { managedParkingLot }); for (var i = 0; i < parkingLotSize; i++) { parkingBoy.Park(new Car()); } Assert.NotNull(notManagedParkingLot.Park(new Car())); var error = Assert.Throws <Exception>(() => parkingBoy.Park(new Car())); Assert.Equal("Parking lots are full!", error.Message); }
public void should_park_car_to_B_when_parking_bot_to_parking_car() { var parkingLots = new List <ParkingLot>(); var parkingLotA = new ParkingLot(20); var parkingLotB = new ParkingLot(20); parkingLots.Add(parkingLotA); parkingLots.Add(parkingLotB); for (int i = 0; i < 20; i++) { parkingLotA.Park(new Car()); } var parkingBot = new ParkingBot(parkingLots); parkingBot.Park(new Car()); Assert.Equal(20, parkingLotA.ticketToCars.Count); Assert.Single(parkingLotB.ticketToCars); }
void should_park_car_at_first_empty_space_when_give_to_parking_bot() { var parkingLot1 = new ParkingLot(parkingLotSize); var parkingLot2 = new ParkingLot(parkingLotSize); var parkingBoy = new ParkingBot(new List <ParkingLot> { parkingLot1, parkingLot2 }); for (var i = 0; i < parkingLotSize; i++) { parkingLot1.Park(new Car()); } var car = new Car(); var ticket = parkingBoy.Park(car); Assert.NotNull(ticket); Assert.Throws <Exception>(() => parkingLot1.GetCar(ticket)); Assert.Equal(car, parkingLot2.GetCar(ticket)); }
public void should_park_into_second_parking_lot_when_have_two_parking_lots_and_second_is_available() { var parkingLotA = new ParkingLot(_capacity); var parkingLotB = new ParkingLot(_capacity); for (var i = 0; i < 20; i++) { parkingLotA.Park(new Car()); } var preNumOfCarA = parkingLotA.GetAvailableSpotNumber(); var preNumOfCarB = parkingLotB.GetAvailableSpotNumber(); var car = new Car(); var list = new List <ParkingLot>() { parkingLotA, parkingLotB }; var parkingBoy = new ParkingBot(list); parkingBoy.Park(car); Assert.Equal(preNumOfCarA, parkingLotA.GetAvailableSpotNumber()); Assert.Equal(preNumOfCarB - 1, parkingLotB.GetAvailableSpotNumber()); }