public void Purchase_Post_Success() { //Arrange _claim = new Claim("UserId", _correctUserId); _identity = Mock.Of <ClaimsIdentity>(ci => ci.FindFirst(It.IsAny <string>()) == _claim); _purchaseController.User = Mock.Of <IPrincipal>(ip => ip.Identity == _identity); _purchaseLogic.Setup(x => x.Purchase(lstPurchaseModel, Convert.ToInt32(_correctUserId))); //Acts var response = _purchaseController.Post(lstPurchaseModel); //Assert Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); }
public void PostPurchase_InvalidItemNameReturnsError() { var repo = new MockItemRepository(); var controller = new PurchaseController(repo); var itemName = "NotAnItem"; var result = controller.Post(itemName); Assert.IsInstanceOfType(result, typeof(BadRequestErrorMessageResult)); }
public void PostPurchase_DecrementsInventory() { var repo = new MockItemRepository(); var startingCount = repo.GetInventory().Count; var controller = new PurchaseController(repo); var itemName = "TunaMelt"; var item = controller.Post(itemName) as CreatedAtRouteNegotiatedContentResult <IItem>; var newCount = repo.GetInventory().Count; Assert.IsTrue(startingCount == (newCount + 1)); }
public void PostPurchase_ReturnsSame() { var repo = new MockItemRepository(); var controller = new PurchaseController(repo); var itemName = "TunaMelt"; var item = controller.Post(itemName) as CreatedAtRouteNegotiatedContentResult <IItem>; Assert.IsNotNull(item); Assert.AreEqual(item.RouteName, "GetItemByName"); Assert.AreEqual(item.RouteValues["itemName"], item.Content.Name); Assert.AreEqual(item.Content.Name, itemName); }
public void PostPurchase_ReturnsPopulatedItem() { var repo = new MockItemRepository(); var controller = new PurchaseController(repo); var itemName = "TunaMelt"; var response = controller.Post(itemName) as CreatedAtRouteNegotiatedContentResult <IItem>; Assert.IsNotNull(response); var newItem = response.Content; Assert.AreEqual(newItem.Name, itemName); Assert.AreEqual(newItem.Description, "Tuna melt on rye"); Assert.AreEqual(newItem.Price, 5); }
public void IntegrationNonexistentItemIdReturnsItemNotFound() { // Arrange InventoryController inventoryController = new InventoryController(); PurchaseController purchaseController = new PurchaseController(); IEnumerable <Item> inventory = inventoryController.Get(); int nonexistentItemId = 0; foreach (Item i in inventory) { if (i.ItemId >= nonexistentItemId) { nonexistentItemId = i.ItemId + 1; } } // Act PurchaseResults result = purchaseController.Post(nonexistentItemId); // Assert Assert.AreEqual(PurchaseResults.ItemNotFound, result, "API should have reported item not found."); }
public void IntegrationPurchasingOutOfStockItemReturnsOutOfStock() { // Arrange InventoryController inventoryController = new InventoryController(); PurchaseController purchaseController = new PurchaseController(); IEnumerable <Item> inventory = inventoryController.Get(); Item outOfStockItem = null; foreach (Item i in inventory) { if (i.Quantity == 0) { outOfStockItem = i; break; } } // Act Assert.IsNotNull(outOfStockItem, "There should be an out of stock item in the test database."); PurchaseResults result = purchaseController.Post(outOfStockItem.ItemId); // Assert Assert.AreEqual(PurchaseResults.OutOfStock, result, "API should have reported out of stock item."); }
public void IntegrationPurchasingInStockItemReturnsInStock() { // Arrange InventoryController inventoryController = new InventoryController(); PurchaseController purchaseController = new PurchaseController(); IEnumerable <Item> inventory = inventoryController.Get(); Item inStockItem = null; foreach (Item i in inventory) { if (i.Quantity > 0) { inStockItem = i; break; } } // Act Assert.IsNotNull(inStockItem, "There should be an in stock item in the test database."); PurchaseResults result = purchaseController.Post(inStockItem.ItemId); // Assert Assert.AreEqual(PurchaseResults.ItemPurchased, result, "Item should have been successfully purchased."); }