public void ShouldAssignSameSizedSpotWhenAvailable(Size size) { var testParkingLot = GetFakeParkingLot(); //Fake lot with 5 slots in each type. var testVehicle = GetFakeVehicle(size); var expectedSpot = new ParkingSpot { OccupiedVehicle = testVehicle, SpotSize = testVehicle.VehicleSize }; _svc = new ParkingLotManager.ParkingLot(testParkingLot, _searchService.Object); switch (size) { case Size.Hatchback: _searchService.Setup(x => x.Search(testParkingLot, Size.Hatchback)).Returns(expectedSpot); break; case Size.Sedan: _searchService.Setup(x => x.Search(testParkingLot, Size.Sedan)).Returns(expectedSpot); break; case Size.Truck: _searchService.Setup(x => x.Search(testParkingLot, Size.Truck)).Returns(expectedSpot); break; } ParkingSpot result = _svc.AssignParkingSpot(testVehicle); Assert.AreEqual(result.SpotSize, expectedSpot.SpotSize); Assert.AreEqual(result.OccupiedVehicle, expectedSpot.OccupiedVehicle); }
public void ShouldSayParkingFullWhenHatchbackisAvailablButSedanAndTruckAreUnavailable(Size size) { var testParkingLot = GetFakeParkingLot(); //Fake lot with 5 slots in each type. var testVehicle = GetFakeVehicle(size); _svc = new ParkingLotManager.ParkingLot(testParkingLot, _searchService.Object); switch (size) { case Size.Sedan: _searchService.Setup(x => x.Search(testParkingLot, Size.Sedan)).Returns((ParkingSpot)null); _searchService.Setup(x => x.Search(testParkingLot, Size.Truck)).Returns((ParkingSpot)null); break; case Size.Truck: _searchService.Setup(x => x.Search(testParkingLot, Size.Truck)).Returns((ParkingSpot)null); break; } ParkingSpot result = _svc.AssignParkingSpot(testVehicle); Assert.AreEqual(result, null); }
public void ShouldAssignTruckSpotWhenHatchBackAndSedanIsUnavailable() { var testParkingLot = GetFakeParkingLot(); //Fake lot with 5 slots in each type. var testVehicle = GetFakeVehicle(Size.Hatchback); var expectedSpot = new ParkingSpot { OccupiedVehicle = testVehicle, SpotSize = Size.Truck }; _svc = new ParkingLotManager.ParkingLot(testParkingLot, _searchService.Object); _searchService.Setup(x => x.Search(testParkingLot, Size.Hatchback)).Returns((ParkingSpot)null); _searchService.Setup(x => x.Search(testParkingLot, Size.Sedan)).Returns((ParkingSpot)null); _searchService.Setup(x => x.Search(testParkingLot, Size.Truck)).Returns(expectedSpot); ParkingSpot result = _svc.AssignParkingSpot(testVehicle); Assert.AreEqual(result.SpotSize, expectedSpot.SpotSize); Assert.AreEqual(result.OccupiedVehicle, expectedSpot.OccupiedVehicle); }