public void Put_ExistingRestaurantIsSavedInRepository() { var aRestaurant = new RestaurantBuilder().Build(); _repo.Setup(r => r.GetById(aRestaurant.Id)).Returns(() => aRestaurant); var okResult = _controller.Put(aRestaurant.Id, aRestaurant) as OkResult; Assert.That(okResult, Is.Not.Null); _repo.Verify(r => r.GetById(aRestaurant.Id), Times.Once); _repo.Verify(r => r.Update(aRestaurant), Times.Once); }
public void Put_ExistingRestaurantIsSavedInRepository() { //Arrange var aRestaurant = new RestaurantBuilder().WithId().Build(); _restaurantRepositoryMock.Setup(r => r.GetById(It.IsAny <int>())).Returns(() => aRestaurant); //Act var okResult = _controller.Put(aRestaurant.Id, aRestaurant) as OkResult; //Assert Assert.That(okResult, Is.Not.Null); _restaurantRepositoryMock.Verify(r => r.GetById(aRestaurant.Id), Times.Once); _restaurantRepositoryMock.Verify(r => r.Update(aRestaurant), Times.Once); }
public void PutRestaurant_ServerException_InternalError() { //arrange var updatedCuisineName = "Mexican"; var updatedCuisineId = 10; var updatedRestaurantName = "World Cafe"; var restaruantIdToUpdate = 155; var requestModel = new API.ViewModels.Restaurant { Id = restaruantIdToUpdate, CuisineName = updatedCuisineName, CuisineId = updatedCuisineId, Name = updatedRestaurantName, }; MockRepository.Setup(m => m.GetRestaurantById(restaruantIdToUpdate)); MockIdentity.Setup(m => m.GetRequestingUserId()).Throws(new Exception()); var ctrl = new RestaurantsController(MockRepository.Object, MockLogger.Object, MockIdentity.Object); //act var actionResult = ctrl.Put(restaruantIdToUpdate, requestModel); // assert Assert.IsInstanceOfType(actionResult, typeof(InternalServerErrorResult)); }
public void PutRestaurant_DatabaseException_BadData() { //arrange var updatedCuisineName = "Mexican"; var updatedCuisineId = 10; var updatedRestaurantName = "World Cafe"; var restaruantIdToUpdate = 155; var callingUserId = 10; var requestModel = new API.ViewModels.Restaurant { Id = restaruantIdToUpdate, CuisineName = updatedCuisineName, CuisineId = updatedCuisineId, Name = updatedRestaurantName, }; var transactionRequest = new UpdateRestaurantRequestModel { RestaurantId = restaruantIdToUpdate, CuisineId = updatedCuisineId, Name = updatedRestaurantName, UserId = callingUserId }; MockRepository.Setup(m => m.UpdateRestaurant(transactionRequest)) .Throws(new Exception()); MockRepository.Setup(m => m.GetRestaurantById(restaruantIdToUpdate)) .Throws(new Exception()); MockIdentity.Setup(m => m.GetRequestingUserId()).Returns(callingUserId); var ctrl = new RestaurantsController(MockRepository.Object, MockLogger.Object, MockIdentity.Object); //act var actionResult = ctrl.Put(restaruantIdToUpdate, requestModel); // assert Assert.IsInstanceOfType(actionResult, typeof(BadRequestResult)); }
public void PutRestaurant_ValidData_OK() { //arrange var cuisineName = "Indian"; var originalCuisineId = 1; var originalRestaurantName = "No1 Indian Restaurant"; var updatedCuisineName = "Mexican"; var updateCuisineId = 10; var updatedRestaurantName = "World Cafe"; var restaruantIdToUpdate = 155; var createdUser = 10; var callingUserId = 10; var originalCuisine = new Cuisine { Name = cuisineName, Id = originalCuisineId, CreatedBy = createdUser, UpdatedBy = createdUser }; var restaurantBeforeUpdate = new Restaurant { Id = restaruantIdToUpdate, CreatedBy = createdUser, UpdatedBy = createdUser, Cuisine = originalCuisine, Name = originalRestaurantName }; var requestModel = new API.ViewModels.Restaurant { Id = restaruantIdToUpdate, CuisineId = updateCuisineId, CuisineName = updatedCuisineName, Name = updatedRestaurantName, }; var transactionRequest = new UpdateRestaurantRequestModel { RestaurantId = restaruantIdToUpdate, CuisineId = updateCuisineId, Name = updatedRestaurantName, UserId = callingUserId }; MockRepository.Setup(m => m.UpdateRestaurant(transactionRequest)); MockRepository.Setup(m => m.DoseCuisineIdExist(It.IsAny <int>())).Returns(true); MockRepository.Setup(m => m.GetRestaurantById(restaruantIdToUpdate)) .Returns(restaurantBeforeUpdate); MockIdentity.Setup(m => m.GetRequestingUserId()).Returns(callingUserId); var ctrl = new RestaurantsController(MockRepository.Object, MockLogger.Object, MockIdentity.Object); //act var actionResult = ctrl.Put(restaruantIdToUpdate, requestModel); var contentResult = actionResult as OkNegotiatedContentResult <API.ViewModels.Restaurant>; //assert Assert.IsNotNull(contentResult, "ok -200 status was not returned"); //Assert.AreEqual(HttpStatusCode..Accepted, responseRestaurants.StatusCode); //TODO: must check if se should return 201-accepted, 200-ok(with body) or 204 (ok with no content) Assert.IsNotNull(contentResult.Content); Assert.AreEqual(restaruantIdToUpdate, contentResult.Content.Id); }