public void Get_Item_Returns_Expected_Item() { //Arrange DbContextOptions <ShoppingListContext> options = new TestHelper().GetShoppingListContextOptions(); var mockData = MockData.LargeShoppingList(); var expectedObject = mockData.FirstOrDefault(); var expectedResult = new OkObjectResult(expectedObject); using (var context = new ShoppingListContext(options)) { context.AddRange(mockData); context.SaveChanges(); }; using (var context = new ShoppingListContext(options)) { IShoppingListRepository mockRepo = new ShoppingListRepository(context); var controller = new ShoppingListController(mockRepo); //Act var result = controller.Get(expectedObject.Name) as OkObjectResult; //Assert Assert.IsNotNull(result); Assert.AreEqual(200, result.StatusCode); Assert.IsTrue(expectedResult.Value.Equals(result.Value)); } }
public void Delete_Removes_Existing_Drink_From_Shopping_List() { //Arrange DbContextOptions <ShoppingListContext> options = new TestHelper().GetShoppingListContextOptions(); var mockData = MockData.LargeShoppingList(); var expectedResult = mockData.FirstOrDefault(); using (var context = new ShoppingListContext(options)) { context.AddRange(mockData); context.SaveChanges(); }; using (var context = new ShoppingListContext(options)) { IShoppingListRepository mockRepo = new ShoppingListRepository(context); var controller = new ShoppingListController(mockRepo); //Act var result = controller.Get(expectedResult.Name); //Assert Assert.IsNotNull(result); Assert.AreEqual(200, result.StatusCode); Assert.AreEqual(result.Value, expectedResult); } }
public void Get_All_Return_Expected_List() { //Arrange DbContextOptions <ShoppingListContext> options = new TestHelper().GetShoppingListContextOptions(); var mockData = MockData.LargeShoppingList(); var expectedResult = new OkObjectResult(mockData); using (var context = new ShoppingListContext(options)) { context.AddRange(mockData); context.SaveChanges(); }; using (var context = new ShoppingListContext(options)) { IShoppingListRepository mockRepo = new ShoppingListRepository(context); var controller = new ShoppingListController(mockRepo); //Act var result = controller.Get(); //Assert Assert.IsNotNull(result); Assert.AreEqual(200, result.StatusCode); CollectionAssert.Equals(expectedResult.Value, result.Value); } }
public void Get_Non_Existant_Item_Returns_Not_Found() { //Arrange DbContextOptions <ShoppingListContext> options = new TestHelper().GetShoppingListContextOptions(); var mockData = MockData.LargeShoppingList(); using (var context = new ShoppingListContext(options)) { context.AddRange(mockData); context.SaveChanges(); }; using (var context = new ShoppingListContext(options)) { IShoppingListRepository mockRepo = new ShoppingListRepository(context); var controller = new ShoppingListController(mockRepo); //Act var result = controller.Get("Does Not Exist"); //Assert Assert.IsNotNull(result); Assert.AreEqual(404, result.StatusCode); Assert.AreEqual(result.Value, "Drink: Does Not Exist not found on the shopping list."); } }
public void Post_Existing_Item_Returns_Conflict() { //Arrange DbContextOptions <ShoppingListContext> options = new TestHelper().GetShoppingListContextOptions(); var mockData = MockData.LargeShoppingList(); var testObject = mockData.FirstOrDefault(); using (var context = new ShoppingListContext(options)) { context.AddRange(mockData); context.SaveChanges(); }; using (var context = new ShoppingListContext(options)) { IShoppingListRepository mockRepo = new ShoppingListRepository(context); var controller = new ShoppingListController(mockRepo); controller.ControllerContext = new ControllerContext(); controller.ControllerContext.HttpContext = new DefaultHttpContext(); //Act var result = controller.Post(testObject); //Assert Assert.IsNotNull(result); Assert.AreEqual(409, result.StatusCode); Assert.AreEqual(result.Value, $"Drink {testObject.Name} already exists in the shopping list."); } }
public void Put_To_Existing_Item_Updates_Quantity() { //Arrange DbContextOptions <ShoppingListContext> options = new TestHelper().GetShoppingListContextOptions(); var mockData = MockData.LargeShoppingList(); using (var context = new ShoppingListContext(options)) { context.AddRange(mockData); context.SaveChanges(); context.Dispose(); }; var expectedObject = new DrinkOrder { Name = "Pepsi", Quantity = 4 }; var expectedResult = new OkObjectResult(expectedObject); using (var context = new ShoppingListContext(options)) { IShoppingListRepository mockRepo = new ShoppingListRepository(context); var controller = new ShoppingListController(mockRepo); //Act var result = controller.Put(expectedObject) as OkObjectResult; //Assert Assert.IsNotNull(result); Assert.AreEqual(200, result.StatusCode); Assert.AreEqual(result.Value, expectedResult.Value); //Check context is updated Assert.AreEqual(expectedObject.Quantity, context.shoppingList.FirstOrDefault(x => x.Name == expectedObject.Name).Quantity); } }
public void Put_To_Non_Existing_Item_Returns_Not_Found() { DbContextOptions <ShoppingListContext> options = new TestHelper().GetShoppingListContextOptions(); var mockData = MockData.LargeShoppingList(); using (var context = new ShoppingListContext(options)) { context.AddRange(mockData); context.SaveChanges(); context.Dispose(); }; var expectedObject = new DrinkOrder { Name = "Does Not Exist", Quantity = 4 }; var expectedResult = new OkObjectResult(expectedObject); using (var context = new ShoppingListContext(options)) { IShoppingListRepository mockRepo = new ShoppingListRepository(context); var controller = new ShoppingListController(mockRepo); //Act var result = controller.Put(expectedObject) as NotFoundObjectResult; //Assert Assert.IsNotNull(result); Assert.AreEqual(404, result.StatusCode); Assert.AreEqual(result.Value, "Drink: Does Not Exist not found on the shopping list."); } }