public void GetNextEmptyLot_Returns_Zero_If_No_Parking_Available() { var parkingLotManager = new ParkingLotManager(); parkingLotManager.SetEmptyLots(1); parkingLotManager.GetNextEmptyLot(); Assert.Equal(0, parkingLotManager.GetNextEmptyLot()); }
public void ParkCar_Uses_Empty_Parking_Lot() { var parkingLotManager = new ParkingLotManager(); parkingLotManager.SetEmptyLots(3); parkingLotManager.ParkCar(new Car { RegistrationNumber = "Test-Registration-Number1", Color = "Test-Color1" }, parkingLotManager.GetNextEmptyLot()); Assert.Equal(2, parkingLotManager.GetNextEmptyLot()); }
public void LeaveParking_Adjusts_Parking_Lot() { var parkingLotManager = new ParkingLotManager(); parkingLotManager.SetEmptyLots(1); parkingLotManager.GetNextEmptyLot(); Assert.Equal(0, parkingLotManager.GetNextEmptyLot()); parkingLotManager.LeaveParking(1); Assert.Equal(1, parkingLotManager.GetNextEmptyLot()); }
public void GetNextEmptyLot_Returns_Closest_Empty_Lot() { var parkingLotManager = new ParkingLotManager(); parkingLotManager.SetEmptyLots(2); Assert.Equal(1, parkingLotManager.GetNextEmptyLot()); }
public void ParkCar_Not_Possible_When_Parking_Lots_Are_Full() { var parkingLotManager = new ParkingLotManager(); parkingLotManager.SetEmptyLots(3); parkingLotManager.ParkCar(new Car { RegistrationNumber = "Test-Registration-Number1", Color = "Test-Color1" }, parkingLotManager.GetNextEmptyLot()); parkingLotManager.ParkCar(new Car { RegistrationNumber = "Test-Registration-Number2", Color = "Test-Color2" }, parkingLotManager.GetNextEmptyLot()); parkingLotManager.ParkCar(new Car { RegistrationNumber = "Test-Registration-Number3", Color = "Test-Color3" }, parkingLotManager.GetNextEmptyLot()); Assert.Equal(0, parkingLotManager.GetNextEmptyLot()); }
public void SetEmptyLots_Creates_Five_Empty_ParkingLot() { var parkingLotManager = new ParkingLotManager(); parkingLotManager.SetEmptyLots(5); for (var i = 1; i <= 5; i++) { Assert.Equal(i, parkingLotManager.GetNextEmptyLot()); } }
public void GetNextEmptyLot_Returns_Closest_Empty_Lot_After_Adjusting_Car_Leaving() { var parkingLotManager = new ParkingLotManager(); parkingLotManager.SetEmptyLots(3); parkingLotManager.ParkCar(new Car { RegistrationNumber = "Test-Registration-Number1", Color = "Test-Color1" }, parkingLotManager.GetNextEmptyLot()); parkingLotManager.ParkCar(new Car { RegistrationNumber = "Test-Registration-Number2", Color = "Test-Color2" }, parkingLotManager.GetNextEmptyLot()); parkingLotManager.ParkCar(new Car { RegistrationNumber = "Test-Registration-Number3", Color = "Test-Color3" }, parkingLotManager.GetNextEmptyLot()); parkingLotManager.LeaveParking(2); parkingLotManager.LeaveParking(3); Assert.Equal(2, parkingLotManager.GetNextEmptyLot()); }
public void Handle(string input, ParkingLotManager parkingLotManager) { var firstEmptySlot = parkingLotManager.GetNextEmptyLot(); if (firstEmptySlot == 0) { Console.WriteLine("Sorry, parking lot is full"); return; } var tokens = input.Split(' '); if (tokens.Length == 3) { var car = new Car { RegistrationNumber = tokens[1], Color = tokens[2] }; parkingLotManager.ParkCar(car, firstEmptySlot); Console.WriteLine($"Allocated slot number: {firstEmptySlot}"); } }