public async Task TripController_Add_WhenVehiceDoesNotExist_ShouldReturnNotFound() { // Arrange var tripReference = StringHelper.RandomString(8); var vinReference = StringHelper.RandomString(6); _mockVehicleRepository .Setup(m => m.GetByVinAsync(It.IsAny <string>())) .ReturnsAsync(default(Vehicle)) .Verifiable(); _mockTripRepository .Setup(m => m.AddAsync(It.IsAny <Trip>())) .ReturnsAsync(tripReference) .Verifiable(); // Act var tripController = new TripController(_mockTripRepository.Object, _mockVehicleRepository.Object, _mockBookingRepository.Object, _mockLogger.Object); var result = await tripController.Add(new TripRequestModel { FromCity = "CityA", ToCity = "CityB", DepartureTime = DateTime.Now.AddHours(2), ArrivalTime = DateTime.Now.AddHours(10), VehicleNumber = vinReference }); // Assert Assert.IsNotNull(result as NotFoundObjectResult); _mockVehicleRepository.Verify(m => m.GetByVinAsync(It.IsAny <string>()), Times.Once); _mockTripRepository.Verify(m => m.AddAsync(It.IsAny <Trip>()), Times.Never); }
public async Task TripController_Add_WhenVehicleExists_ShouldReturnTripReference() { // Arrange var tripReference = StringHelper.RandomString(8); var vinReference = StringHelper.RandomString(6); _mockVehicleRepository .Setup(m => m.GetByVinAsync(It.IsAny <string>())) .ReturnsAsync(TestDataHelper.GetVehicle(vinReference)) .Verifiable(); _mockTripRepository .Setup(m => m.AddAsync(It.IsAny <Trip>())) .ReturnsAsync(tripReference) .Verifiable(); // Act var tripController = new TripController(_mockTripRepository.Object, _mockVehicleRepository.Object, _mockBookingRepository.Object, _mockLogger.Object); var result = await tripController.Add(new TripRequestModel { FromCity = "CityA", ToCity = "CityB", DepartureTime = DateTime.Now.AddHours(2), ArrivalTime = DateTime.Now.AddHours(10), VehicleNumber = vinReference }); var objResult = result as OkObjectResult; // Assert Assert.IsNotNull(objResult); var actualTripReference = objResult.Value as string; Assert.IsNotNull(actualTripReference); Assert.AreEqual(tripReference, actualTripReference); _mockVehicleRepository.Verify(m => m.GetByVinAsync(It.IsAny <string>()), Times.Once); _mockTripRepository.Verify(m => m.AddAsync(It.IsAny <Trip>()), Times.Once); }