public void post_should_return_bad_request_if_item_null() { ShoppingListItemCreate request = null; var result = _controller.Post(request); Assert.AreEqual(result.GetType(), typeof(BadRequestResult)); }
public void post_should_not_save_to_repository_if_item_null() { ShoppingListItemCreate request = null; var result = _controller.Post(request); _repositoryMock.Verify(x => x.Insert(request), Times.Never); }
public ShoppingListItem Insert(ShoppingListItemCreate request) { var item = new ShoppingListItem { ItemName = request.ItemName, Quantity = request.Quantity }; _dataStore.Add(item); return(item); }
public void post_should_return_bad_request_if_item_name_is_empty() { var request = new ShoppingListItemCreate { ItemName = "" }; var result = _controller.Post(request); Assert.AreEqual(result.GetType(), typeof(BadRequestResult)); }
public void should_insert_and_return_shopping_list_item() { var repository = new ShoppingListRepository(); var item = new ShoppingListItemCreate { ItemName = "Item1", Quantity = 1 }; ShoppingListItem createdItem = repository.Insert(item); Assert.AreEqual(createdItem.ItemName, "Item1"); Assert.AreEqual(createdItem.Quantity, 1); }
public void should_insert_shopping_list_item_to_data_store() { var repository = new ShoppingListRepository(); var item = new ShoppingListItemCreate { ItemName = "Item1", Quantity = 1 }; repository.Insert(item); Assert.AreEqual(_dataStore.Count, 1); Assert.AreEqual(_dataStore[0].ItemName, "Item1"); Assert.AreEqual(_dataStore[0].Quantity, 1); }
public void post_should_return_bad_request_if_item_already_exists() { var request = new ShoppingListItemCreate { ItemName = "Item1", Quantity = 1 }; var repositoryItem = new ShoppingListItem { ItemName = "Item1", Quantity = 1 }; _repositoryMock.Setup(x => x.GetItem(request.ItemName)).Returns(repositoryItem); var result = _controller.Post(request); Assert.AreEqual(result.GetType(), typeof(BadRequestResult)); }
public void post_should_save_to_repository_if_valid_item() { var request = new ShoppingListItemCreate { ItemName = "Item1", Quantity = 1 }; var repositoryItem = new ShoppingListItem { ItemName = "Item1", Quantity = 1 }; _repositoryMock.Setup(x => x.Insert(request)).Returns(repositoryItem); var result = _controller.Post(request); _repositoryMock.Verify(x => x.Insert(request)); }
public IHttpActionResult Post(ShoppingListItemCreate request) { if (request == null || string.IsNullOrWhiteSpace(request.ItemName)) { return(BadRequest()); } var doesAlreadyExist = (_repository.GetItem(request.ItemName) != null); if (doesAlreadyExist) { return(BadRequest()); } var createdItem = _repository.Insert(request); return(Created($"api/shoppinglist/?itemname={createdItem.ItemName}", createdItem)); }
public void should_post_shopping_list_item_and_return_created_with_correct_content() { var request = new ShoppingListItemCreate { ItemName = "Item1", Quantity = 1 }; var repositoryItem = new ShoppingListItem { ItemName = "Item1", Quantity = 1 }; _repositoryMock.Setup(x => x.Insert(request)).Returns(repositoryItem); var result = _controller.Post(request); Assert.AreEqual(result.GetType(), typeof(CreatedNegotiatedContentResult <ShoppingListItem>)); var createdResult = (CreatedNegotiatedContentResult <ShoppingListItem>)result; Assert.AreEqual(createdResult.Location, $"api/shoppinglist/?itemname={request.ItemName}"); Assert.AreEqual(createdResult.Content.ItemName, request.ItemName); Assert.AreEqual(createdResult.Content.Quantity, request.Quantity); }