public void Manager_Should_Add_ParkingBoy_Successfully() { //given var parkingLot = new ParkingLot.ParkingLot("parkingLot_1"); var parkingBoy_1 = new ParkingBoy("parkingBoy_1", parkingLot); var manager = new ParkingLotServiceManager("manager_1", parkingLot, new List <ParkingBoy>(new ParkingBoy[] { parkingBoy_1 })); //when var parkingBoy_2 = new ParkingBoy("parkingBoy_2", parkingLot); manager.AddParkingBoy(parkingBoy_2); //then Assert.True(manager.ManageParkingBoy(parkingBoy_2)); }
public void Should_Park_Return_Null_When_Park_Null_Car() { // given Car car = null; var parkingLot1 = new ParkingLot("ParkingLotOne"); var parkingLot2 = new ParkingLot("ParkingLotOne"); var parkingBoy = new ParkingLotServiceManager("Jack", parkingLot1, parkingLot2); // when var parkingTicket = parkingBoy.Park(car); // then Assert.Null(parkingTicket); }
public void Should_Park_Return_ParkingTicket_When_Park_To_Available_ParkingLot() { // given var car = new Car("JAA8888"); var parkingLot1 = new ParkingLot("ParkingLotOne"); var parkingLot2 = new ParkingLot("ParkingLotOne"); var parkingBoy = new ParkingLotServiceManager("Jack", parkingLot1, parkingLot2); // when var parkingTicket = parkingBoy.Park(car); // then Assert.IsType <ParkingTicket>(parkingTicket); }
public void Manager_Should_Add_Error_Message_Given_No_Ticket() { //given var parkingLot = new ParkingLot.ParkingLot("parkingLot_1", 3); var parkingBoy = new ParkingBoy("parkingBoy_1", parkingLot); var manager = new ParkingLotServiceManager("manager_1", parkingLot, new List <ParkingBoy>(new[] { parkingBoy })); //when manager.FetchCarByParkingBoy(null, parkingBoy, out var errorMessage); var expectedMessage = "Please provide your parking ticket."; //then Assert.Equal(expectedMessage, errorMessage); }
public void Should_Fetch_Return_Car_With_Valid_ParkingTicket() { // given // given var parkedCar = new Car("JAA8888"); var parkingLot1 = new ParkingLot("ParkingLotOne"); var parkingLot2 = new ParkingLot("ParkingLotOne"); var parkingBoy = new ParkingLotServiceManager("Jack", parkingLot1, parkingLot2); var parkingTicket = parkingBoy.Park(parkedCar); // when var fetchedCar = parkingBoy.Fetch(parkingTicket); // then Assert.IsType <Car>(fetchedCar); Assert.Equal(fetchedCar, parkedCar); }
public void Manager_Should_Park_And_Fetch_Car_Correctly() { //given var car = new Car("car_1"); var newCustomer = new Customer("customer_1", car); var parkingLot = new ParkingLot.ParkingLot("parkingLot_1", 3); var parkingBoy = new ParkingBoy("parkingBoy_1", parkingLot); var manager = new ParkingLotServiceManager("manager_1", parkingLot, new List <ParkingBoy>(new[] { parkingBoy })); //when newCustomer.PassCarToParkingBoy(manager); //then Assert.True(parkingLot.ContainCar(car)); var carReturned = newCustomer.FetchCarFromParkingBoy(manager, newCustomer.GetTicket(0)); Assert.Equal(car, carReturned); }
public void Should_parking_lot_service_manager_add_super_smart_parking_boy_to_managementList() { // given List <ParkingLot> parkingLotListForManager = new List <ParkingLot> { new ParkingLot(0), new ParkingLot(1) }; List <ParkingLot> parkingLotListForParkingBoy = new List <ParkingLot> { new ParkingLot(2), new ParkingLot(3) }; var expectedSuperSmartParkingBoy = new SuperSmartParkingBoy(parkingLotListForParkingBoy); var parkingLotServiceManager = new ParkingLotServiceManager(parkingLotListForManager, new List <ParkingBoy>()); parkingLotServiceManager.AddParkingBoy(expectedSuperSmartParkingBoy); // when var specifiedParkingBoy = parkingLotServiceManager.SpecifyParkingBoy(); // then Assert.Equal(expectedSuperSmartParkingBoy, specifiedParkingBoy); }
public void Manager_Should_Add_Error_Message_Given_Parked_Ticket() { //given var car = new Car("car_1"); var newCustomer = new Customer("customer_1", car); var parkingLot = new ParkingLot.ParkingLot("parkingLot_1", 3); var parkingBoy = new ParkingBoy("parkingBoy_1", parkingLot); var manager = new ParkingLotServiceManager("manager_1", parkingLot, new List <ParkingBoy>(new[] { parkingBoy })); //when var parkedTicket = manager.ParkCarByParkingBoy(car, parkingBoy, out _); manager.FetchCarByParkingBoy(parkedTicket, parkingBoy, out _); manager.FetchCarByParkingBoy(parkedTicket, parkingBoy, out var errorMessage); var expectedMessage = "Unrecognized parking ticket."; //then Assert.Equal(expectedMessage, errorMessage); }
public void Manger_Should_Appoint_ParkingBoy_To_Park_And_Fetch() { //given var car = new Car("car_1"); var newCustomer = new Customer("customer_1", car); var parkingLot = new ParkingLot.ParkingLot("parkingLot_1", 3); var parkingBoy = new ParkingBoy("parkingBoy_1", parkingLot); var manager = new ParkingLotServiceManager("manager_1", parkingLot, new List <ParkingBoy>(new[] { parkingBoy })); //when var parkingResult = manager.ParkCarByParkingBoy(car, parkingBoy, out var parkErrorMessage); Assert.Equal("parkingLot_1", parkingResult.ParkingLotId); Assert.Equal("car_1", parkingResult.CarId); var carResult = manager.FetchCarByParkingBoy(parkingResult, parkingBoy, out var fetchErrorMessage); Assert.Equal(car, carResult); }
public void Manager_Should_Add_Error_Message_Given_Outof_Capacity() { //given var parkingLot = new ParkingLot.ParkingLot("parkingLot_1", 2); var parkingBoy = new ParkingBoy("parkingBoy_1", parkingLot); var car_1 = new Car("car_1"); var car_2 = new Car("car_2"); var car_3 = new Car("car_3"); var manager = new ParkingLotServiceManager("manager_1", parkingLot, new List <ParkingBoy>(new[] { parkingBoy })); //when manager.ParkCarByParkingBoy(car_1, parkingBoy, out _); manager.ParkCarByParkingBoy(car_2, parkingBoy, out _); manager.ParkCarByParkingBoy(car_3, parkingBoy, out var errorMessage); var expectedMessage = "Not enough position."; //then Assert.Equal(expectedMessage, errorMessage); }
public void Should_parking_lot_service_manager_return_parking_boy_to_do_parking_works() { // given List <ParkingLot> parkingLotListForManager = new List <ParkingLot> { new ParkingLot(0), new ParkingLot(1) }; List <ParkingLot> parkingLotListForParkingBoy = new List <ParkingLot> { new ParkingLot(2), new ParkingLot(3) }; var superSmartParkingBoy = new SuperSmartParkingBoy(parkingLotListForParkingBoy); var managementList = new List <ParkingBoy>(); var parkingLotServiceManager = new ParkingLotServiceManager(parkingLotListForManager, managementList); // when parkingLotServiceManager.AddParkingBoy(superSmartParkingBoy); bool isSuperSmartParkingBoyAdded = managementList.Contains(superSmartParkingBoy); // then Assert.True(isSuperSmartParkingBoyAdded); }
public void Should_parking_lot_service_manager_add_standard_parking_boy_to_managementList() { // given List <ParkingLot> parkingLotListForManager = new List <ParkingLot> { new ParkingLot(0), new ParkingLot(1) }; List <ParkingLot> parkingLotListForParkingBoy = new List <ParkingLot> { new ParkingLot(2), new ParkingLot(3) }; var parkingBoy = new ParkingBoy(parkingLotListForParkingBoy); var managementList = new List <ParkingBoy>(); var parkingLotServiceManager = new ParkingLotServiceManager(parkingLotListForManager, managementList); // when parkingLotServiceManager.AddParkingBoy(parkingBoy); bool isStandardParkingBoyAdded = managementList.Contains(parkingBoy); // then Assert.True(isStandardParkingBoyAdded); }
public void Should_parking_lot_service_manager_act_as_a_standard_parking_boy() { // given List <ParkingLot> parkingLotListForManager = new List <ParkingLot> { new ParkingLot(0, 0), new ParkingLot(1, 0) }; List <ParkingLot> parkingLotListForParkingBoy = new List <ParkingLot> { new ParkingLot(2), new ParkingLot(3) }; var standardParkingBoy = new ParkingBoy(parkingLotListForParkingBoy); var parkingLotServiceManager = new ParkingLotServiceManager(parkingLotListForManager, new List <ParkingBoy>()); parkingLotServiceManager.AddParkingBoy(standardParkingBoy); // when string errorMessage; parkingLotServiceManager.ParkCar(new Car(), out errorMessage); // then Assert.Equal("Not enough position.", errorMessage); }
public void Should_specified_parking_boy_only_manipulate_parking_lots_managed_by_him() { // given List <ParkingLot> parkingLotListForManager = new List <ParkingLot> { new ParkingLot(0), new ParkingLot(1) }; List <ParkingLot> parkingLotListForParkingBoy = new List <ParkingLot> { new ParkingLot(2, 0), new ParkingLot(3, 0) }; var standardParkingBoy = new ParkingBoy(parkingLotListForParkingBoy); var parkingLotServiceManager = new ParkingLotServiceManager(parkingLotListForManager, new List <ParkingBoy>()); parkingLotServiceManager.AddParkingBoy(standardParkingBoy); var specifiedParkingBoy = parkingLotServiceManager.SpecifyParkingBoy(); // when string errorMessage; specifiedParkingBoy.ParkCar(new Car(), out errorMessage); // then Assert.Equal("Not enough position.", errorMessage); }
public void Should_parking_lot_service_manager_has_have_same_error_message_with_prcking_boy_when_parking_boy_fails_operation() { // given List <ParkingLot> parkingLotListForManager = new List <ParkingLot> { new ParkingLot(0), new ParkingLot(1) }; List <ParkingLot> parkingLotListForParkingBoy = new List <ParkingLot> { new ParkingLot(2, 0), new ParkingLot(3, 0) }; var standardParkingBoy = new ParkingBoy(parkingLotListForParkingBoy); var parkingLotServiceManager = new ParkingLotServiceManager(parkingLotListForManager, new List <ParkingBoy>()); parkingLotServiceManager.AddParkingBoy(standardParkingBoy); var specifiedParkingBoy = parkingLotServiceManager.SpecifyParkingBoy(); // when string errorMessage; specifiedParkingBoy.ParkCar(new Car(), out errorMessage); string errorMessageFromManager = parkingLotServiceManager.ErrorMessage; // then Assert.Equal("Not enough position.", errorMessage); Assert.Equal(errorMessage, errorMessageFromManager); }