public void More_test_cases_SuperSmartParkingBoy_Should_park_cars_to_more_positionRate_parkingLot(int parkingCapacity1, int parkingCapacity2, int parkingCapacity3) { //given var parkingLots = new List <ParkingLot>() { { new ParkingLot(parkingCapacity1) }, { new ParkingLot(parkingCapacity2) }, { new ParkingLot(parkingCapacity3) } }; var superSmartParkingBoy = new SuperSmartParkingBoy(); var parkingBoy = new ParkingBoy(); //when for (int i = 0; i < 2; i++) { parkingBoy.Park(i.ToString(), parkingLots[1]); parkingBoy.Park(i.ToString(), parkingLots[2]); } var numberPlate = "XX2345"; var parkingTicket = superSmartParkingBoy.Park(numberPlate, parkingLots); var expectParkingLot = parkingLots[0]; //then Assert.NotEmpty(parkingTicket); Assert.Contains <string>("XX2345", expectParkingLot.ParkingCarsList); }
public void Should_superSmartBoy_park_per_availabe_ratio() { var mySuperBoy = new SuperSmartParkingBoy(DataLoader.GetParkingLots()); mySuperBoy.TryPark(new Car("test plate1"), out Ticket ticket1); mySuperBoy.TryPark(new Car("test plate2"), out Ticket ticket2); mySuperBoy.TryPark(new Car("test plate3"), out Ticket ticket3); mySuperBoy.TryPark(new Car("test plate4"), out Ticket ticket4); Assert.Equal("MyLot2", ticket1.LotName); Assert.Equal("MyLot1", ticket2.LotName); Assert.Equal("MyLot2", ticket3.LotName); Assert.Equal("MyLot2", ticket4.LotName); }
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 SuperSmartParkingBoy("Jack", parkingLot1, parkingLot2); // when var parkingTicket = parkingBoy.Park(car); // then Assert.IsType <ParkingTicket>(parkingTicket); }
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 SuperSmartParkingBoy("Jack", parkingLot1, parkingLot2); // when var parkingTicket = parkingBoy.Park(car); // then Assert.Null(parkingTicket); }
public void Should_Return_False_Given_Parking_Lot_Not_Exist_When_Remove_ParkingLot() { //given var parkingLot = new ParkingLot(); var parkingBoy = new SuperSmartParkingBoy(new List <ParkingLot>() { }); //when var result = parkingBoy.RemoveParkingLot(parkingLot); //then Assert.False(result); }
public void Should_Remove_Parking_Lot_Given_Parking_Lot_Exist_When_Remove_ParkingLot() { //given var parkingLot = new ParkingLot(); var parkingBoy = new SuperSmartParkingBoy(new List <ParkingLot>() { parkingLot }); //when var result = parkingBoy.RemoveParkingLot(parkingLot); //then Assert.Equal(0, parkingBoy.ParkingLotsCount); }
public void Should_Super_Smart_Parking_Boy_Park_A_Car_And_Get_Ticket() { //given var expectedTicket = new Ticket("N98245"); //when var parkingBoy = new SuperSmartParkingBoy(new List <ParkingLot>() { new ParkingLot() }); var ticket = parkingBoy.Park(new Car("N98245"), out _); //then Assert.Equal(expectedTicket.GetType(), ticket.GetType()); }
public void Should_Super_Smart_Parking_Boy_Fetch_No_Cars_Given_The_No_Ticket() { //given var expectedCar = new Car("N98245"); //when var parkingBoy = new SuperSmartParkingBoy(new List <ParkingLot>() { new ParkingLot() }); var car = parkingBoy.Fetch(null, out _); //then Assert.Null(car); }
public void Should_Get_Error_Message_Given_The_Parking_Lot_Is_Full_When_Park_Car() { //given var parkingBoy = new SuperSmartParkingBoy(new List <ParkingLot>() { new ParkingLot(0) }); //when var errorMessage = string.Empty; parkingBoy.Park(null, out errorMessage); //then Assert.Equal("Not enough position.", errorMessage); }
public void Should_Super_Smart_Parking_Boy_Fetch_A_Car_Using_Ticket() { //given var expectedCar = new Car("N98245"); //when var parkingBoy = new SuperSmartParkingBoy(new List <ParkingLot>() { new ParkingLot() }); var ticket = parkingBoy.Park(expectedCar, out _); var car = parkingBoy.Fetch(ticket, out _); //then Assert.Equal(expectedCar.GetType(), car.GetType()); }
public void Should_Get_Error_Message_Given_A_Null_Ticket_When_Fetch_Car() { //given var parkingBoy = new SuperSmartParkingBoy(new List <ParkingLot>() { new ParkingLot() }); //when var errorMessage = string.Empty; parkingBoy.Fetch(null, out errorMessage); //then Assert.Equal("Please provide your parking ticket.", errorMessage); }
public void Manager_Should_able_to_Add_all_kinds_of_parkingboys_to_his_list() { //given var superSmartParkingBoy = new SuperSmartParkingBoy(); var smartParkingBoy = new SmartParkingBoy(); var parkingBoy = new ParkingBoy(); var manager = new Manager(); //when manager.AddParkingBoy(parkingBoy); manager.AddParkingBoy(smartParkingBoy); manager.AddParkingBoy(superSmartParkingBoy); //then Assert.Contains <ParkingBoy>(parkingBoy, manager.ParkingBoyList); Assert.Contains <ParkingBoy>(smartParkingBoy, manager.ParkingBoyList); Assert.Contains <ParkingBoy>(superSmartParkingBoy, manager.ParkingBoyList); }
public void Should_Get_Error_Message_Unrecognized_parking_ticket_Given_A_Wrong_Ticket_When_Fetch_Car() { //given var parkingBoy = new SuperSmartParkingBoy(new List <ParkingLot>() { new ParkingLot(10) }); var wrongTicket = new Ticket("wrongNumber"); //when var errorMessage = string.Empty; parkingBoy.Fetch(wrongTicket, out errorMessage); //then Assert.Equal("Unrecognized parking ticket.", errorMessage); }
public void Should__Super_Smart_Parking_Boy_Park_The_Car_To_Mutiple_Parking_Lots_And_Park_To_The_Parking_Lot_Has_Largest_AvaliablePositionRate() { //given var parkingLot1 = new ParkingLot(2); var parkingBoy = new SuperSmartParkingBoy(new List <ParkingLot>() { parkingLot1, new ParkingLot(1) }); parkingBoy.Park(new Car("car1"), out _); //when var ticket = parkingBoy.Park(new Car("car2"), out _); //then Assert.Contains(ticket.TicketNumber, parkingLot1.Tickets); }
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 SuperSmartParkingBoy("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 Should_Super_Smart_Parking_Boy_Fetch_No_Car_Given_The_Ticket_Has_Been_Used() { //given var parkedCar = new Car("N98245"); var parkingBoy = new SuperSmartParkingBoy(new List <ParkingLot>() { new ParkingLot() }); var ticket = parkingBoy.Park(parkedCar, out _); parkingBoy.Fetch(ticket, out _); //when var car = parkingBoy.Fetch(ticket, out _); //then Assert.Null(car); }
public void Should_Super_Smart_Park_No_Car_Given_Parking_Lot_Has_No_Position() { //given var parkedCar = new Car("N98245"); var parkingBoy = new SuperSmartParkingBoy(new List <ParkingLot>() { new ParkingLot(1) }); parkingBoy.Park(parkedCar, out _); //when var newCar = new Car("A982453"); var newTicket = parkingBoy.Park(newCar, out _); //then Assert.Null(newTicket); }
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 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_Return_ticket_Super_Smart_Parking_Boy() { //given var parkingLot1 = new ParkingLot.ParkingLot(1, 3); var parkingLot2 = new ParkingLot.ParkingLot(2, 4); var parkingLotList = new List <ParkingLot.ParkingLot> { parkingLot1, parkingLot2, }; //when var parkingBoy = new SuperSmartParkingBoy(parkingLotList); var ticket0 = parkingBoy.ParkACarAndGetTicket("abc123"); var ticket1 = parkingBoy.ParkACarAndGetTicket("abc123"); var ticket2 = parkingBoy.ParkACarAndGetTicket("abc124"); var expectedTicket = new Ticket("abc124", 2); //then Assert.Equal(expectedTicket.GetParkingLotNumber(), ticket2.GetParkingLotNumber()); }
public void Should_Get_Error_Message_Unrecognized_parking_ticket_Given_A_Used_Ticket_When_Fetch_Car() { //given var parkedCar = new Car("N98245"); var parkingBoy = new SuperSmartParkingBoy(new List <ParkingLot>() { new ParkingLot() }); var ticket = parkingBoy.Park(parkedCar, out _); parkingBoy.Fetch(ticket, out _); //when var errorMessage = string.Empty; parkingBoy.Fetch(ticket, out errorMessage); //then Assert.Equal("Unrecognized parking ticket.", errorMessage); }
public void Should_always_park_cars_to_the_parking_lot_which_has_larger_available_position_rate() { // given List <ParkingLot> parkingLotList = new List <ParkingLot> { new ParkingLot(0, 5), new ParkingLot(1, 2) }; var superSmartParkingBoy = new SuperSmartParkingBoy(parkingLotList); for (int i = 0; i < 3; i++) { parkingLotList[0].AddCar(new Car()); } parkingLotList[1].AddCar(new Car()); var expectedCar = new Car(); // when var parkingTicket = superSmartParkingBoy.ParkCar(expectedCar, out string errorMessagePark1); // then Assert.True(parkingTicket.ParkingLotId == 1); }
public void Should_Super_Smart_Parking_Boy_Park_Mutiple_Cars_And_Fetch_The_Right_Car_Using_Ticket() { //given var expectedCar = new Car("N98245"); //when var parkingBoy = new SuperSmartParkingBoy(new List <ParkingLot>() { new ParkingLot() }); var carList = new List <Car>() { new Car("car1"), new Car("car2"), new Car("car3") }; carList.ForEach(car => parkingBoy.Park(car, out _)); var ticket = parkingBoy.Park(expectedCar, out _); var car = parkingBoy.Fetch(ticket, out _); //then Assert.Equal(expectedCar, car); }
public void Should_SuperSmartParkingBoy_Park_The_Car_To_The_Parkinglot_With_Higher_EmptyRate(int currentLotLoad1, int currentLotLoad2, int loadCapacity1, int loadCapacity2) { //Given var boy = new SuperSmartParkingBoy("Jack"); var car = new Car("RJ_45675415"); string message = string.Empty; var parkingLots = new List <CarLot <string, Car> >() { LotInitialize.FillLotWithCars(currentLotLoad1, loadCapacity1), LotInitialize.FillLotWithCars(currentLotLoad2, loadCapacity2), }; var testCount = parkingLots[0].Count; var testCapacity = parkingLots[0].Capacity; string expectedTicket = "SuperPark: RJ_45675415"; double minimumLoadRate = Math.Min(parkingLots[0].LoadRate, parkingLots[1].LoadRate); int targetIndex = 0; for (int index = 0; index < parkingLots.Count; index++) { if (parkingLots[index].LoadRate == Math.Min(parkingLots[0].LoadRate, parkingLots[1].LoadRate)) { targetIndex = index; break; } } int expectedLoad = parkingLots[targetIndex].Count + 1; //When string actualTicket = boy.Park(car, parkingLots, out message); var actualLoad = parkingLots[targetIndex].Count; //Then Assert.Equal(expectedTicket, actualTicket); Assert.Equal(expectedLoad, actualLoad); }