public async void Update_ValidObjectPassedReturnedResponseNoContent() { // Arrange var existingId = 1; var newName = "Hello world"; var booking = new Booking { Id = existingId, Name = newName }; // Act var actionResult = await _controller.PutBooking(existingId, booking); // Assert Assert.IsType <NoContentResult>(actionResult); }
public async Task Request_Returns_ErrorCode_400_If_Model_Validation_Fails() { //Arrange Mock <IBookingRepository> repositoryMock = new Mock <IBookingRepository>(); repositoryMock .Setup(m => m.Update(It.IsAny <Booking>())) .ReturnsAsync(204); //Emulates no concurrency error. var validationResult = new ValidationResult(); validationResult.Errors.Add(new ValidationFailure("test", "testerror")); Mock <IValidator> validatorMock = new Mock <IValidator>(); validatorMock .Setup(m => m.ValidateBooking(It.IsAny <Booking>())) .Returns(validationResult); //Emulates test validation error. BookingsController bookingsController = new BookingsController(repositoryMock.Object, validatorMock.Object); var testID = 11; var testBooking = new Booking { BookingID = 11, BookingStatus = 0, CustomerID = 1, FromDate = null, //should fail validation ToDate = "2021-05-30", Location = "Esbjerg", BookingRessources = new List <BookingRessource> { new BookingRessource { BookingRessourceID = 1, Ressource = new Ressource { RessourceID = 2, ModelNR = 4444, ItemName = "Traktor", NumberOfItems = 2 } } }, RowVersion = Encoding.ASCII.GetBytes("AAAAAAAAB9Y=") }; //Act var result = await bookingsController.PutBooking(testID, testBooking); var status = result as StatusCodeResult; //Assert Assert.Equal(400, status.StatusCode); }
public void ShouldNot_PutBooking_IdMismatch() { Booking testBooking = new Booking { Id = 1 }; Mock <IUnitOfWork> mock = new Mock <IUnitOfWork>(); mock.Setup(f => f.Bookings.Update(testBooking)).Returns(true); BookingsController controller = new BookingsController(mock.Object, null, null); var bookings = controller.PutBooking(2, testBooking); Assert.IsType <BadRequestResult>(bookings); }
public void ShouldNot_PutBooking_ModelStateError() { Booking testBooking = new Booking { Id = 1 }; Mock <IUnitOfWork> mock = new Mock <IUnitOfWork>(); mock.Setup(f => f.Bookings.Update(testBooking)).Returns(true); BookingsController controller = new BookingsController(mock.Object, null, null); controller.ModelState.AddModelError("TestError", "Error"); var bookings = controller.PutBooking(1, testBooking); Assert.IsType <BadRequestObjectResult>(bookings); }
public async Task Request_Returns_BadRequest_If_Id_MisMatch() { //Arrange Mock <IBookingRepository> repositoryMock = new Mock <IBookingRepository>(); Mock <IValidator> validatorMock = new Mock <IValidator>(); BookingsController bookingsController = new BookingsController(repositoryMock.Object, validatorMock.Object); var testID = 11; var testBooking = new Booking { BookingID = 12, BookingStatus = 0, CustomerID = 1, FromDate = "2021-05-27", ToDate = "2021-05-30", Location = "Esbjerg", BookingRessources = new List <BookingRessource> { new BookingRessource { BookingRessourceID = 1, Ressource = new Ressource { RessourceID = 2, ModelNR = 4444, ItemName = "Traktor", NumberOfItems = 2 } } }, RowVersion = Encoding.ASCII.GetBytes("AAAAAAAAB9Y=") }; //Act var result = await bookingsController.PutBooking(testID, testBooking); var status = result as StatusCodeResult; //Assert Assert.Equal(400, status.StatusCode); }