public void TestGetMultipleOrders() { using (var connection = new TestSqliteSetup(TestDatabaseService.connection_string)) { using (var context = new OrderContext(connection.Options)) { var controller = new OrderController(context); var responses = new List <IActionResult> { controller.AddOrder(new Order()), controller.AddOrder(new Order()), controller.AddOrder(new Order()), controller.AddOrder(new Order()), controller.AddOrder(new Order()), }; Assert.All(responses, r => Assert.IsType <OkResult>(r)); } using (var context = new OrderContext(connection.Options)) { var controller = new OrderController(context); var response = controller.GetAllOrders(); Assert.Equal((int)HttpStatusCode.OK, response.StatusCode); var orders = (List <Order>)response.Value; Assert.Equal(5, orders.Count); } } }
public void TestRemoveItem() { using (var connection = new TestSqliteSetup(TestDatabaseService.connection_string)) { using (var context = new OrderContext(connection.Options)) { var controller = new OrderController(context); var response = controller.AddOrder(new Order { OrderItems = new List <Item> { new Item { Quantity = 1, Price = 4, Description = "Pineapple" } } }); Assert.IsType <OkResult>(response); } using (var context = new OrderContext(connection.Options)) { var controller = new OrderController(context); var response = controller.RemoveItem(1, 1); Assert.Equal((int)HttpStatusCode.OK, response.StatusCode); } using (var context = new OrderContext(connection.Options)) { var controller = new OrderController(context); var response = controller.GetItems(1); var items = (List <Item>)response.Value; Assert.Equal((int)HttpStatusCode.OK, response.StatusCode); Assert.Empty(items); } } }
public void TestCreateOrderAndRemoveIt() { using (var connection = new TestSqliteSetup(TestDatabaseService.connection_string)) { using (var context = new OrderContext(connection.Options)) { var controller = new OrderController(context); var response = controller.AddOrder(new Order()); Assert.IsType <OkResult>(response); } using (var context = new OrderContext(connection.Options)) { var controller = new OrderController(context); var response = controller.GetOrder(1); Assert.Equal((int)HttpStatusCode.OK, response.StatusCode); var remove_response = controller.RemoveOrder(1); Assert.Equal((int)HttpStatusCode.OK, remove_response.StatusCode); } using (var context = new OrderContext(connection.Options)) { var controller = new OrderController(context); var response = controller.GetOrder(1); Assert.Equal((int)HttpStatusCode.NotFound, response.StatusCode); } } }
public void TestModifyItem() { using (var connection = new TestSqliteSetup(connection_string)) { using (var context = new OrderContext(connection.Options)) { new DatabaseService(context).AddOrder(four_item_order); } using (var context = new OrderContext(connection.Options)) { var orderService = new DatabaseService(context); var order = orderService.FindOrder(1); var item = order.OrderItems[0]; item.Quantity = 10; // Get a copy of the item. var stored_item = orderService.FindItem(order, item.Id); orderService.UpdateItem(item, stored_item); } using (var context = new OrderContext(connection.Options)) { var orderService = new DatabaseService(context); var order = orderService.FindOrder(1); var item = order.OrderItems[0]; Assert.Equal(10, item.Quantity); } } }
public void TestGetSingleItem() { using (var connection = new TestSqliteSetup(connection_string)) { using (var context = new OrderContext(connection.Options)) { new DatabaseService(context).AddOrder(four_item_order); } // Test Happy Path using (var context = new OrderContext(connection.Options)) { var orderService = new DatabaseService(context); var order = orderService.FindOrder(1); var item = order.OrderItems[0]; Assert.NotNull(orderService.FindItem(order, item.Id)); } // Verify that invalid IDs for both order and item would return null. using (var context = new OrderContext(connection.Options)) { var orderService = new DatabaseService(context); var order = orderService.FindOrder(1); var item = order.OrderItems[0]; var oldId = order.Id; order.Id = -1; // Invalid order, Valid item Assert.Null(orderService.FindItem(order, item.Id)); order.Id = oldId; // Valid order, Invalid item Assert.Null(orderService.FindItem(order, 123)); } } }
public void TestAddItem() { using (var connection = new TestSqliteSetup(TestDatabaseService.connection_string)) { using (var context = new OrderContext(connection.Options)) { var controller = new OrderController(context); var response = controller.AddOrder(new Order()); Assert.IsType <OkResult>(response); } using (var context = new OrderContext(connection.Options)) { var controller = new OrderController(context); var response = controller.AddItem(1, new Item { Quantity = 1, Price = 4, Description = "Pineapple" }); Assert.IsType <OkResult>(response); } using (var context = new OrderContext(connection.Options)) { var controller = new OrderController(context); var response = controller.GetItems(1); var items = (List <Item>)response.Value; Assert.Equal((int)HttpStatusCode.OK, response.StatusCode); Assert.Equal(1, items.Count); var item = items[0]; Assert.Equal(1, item.Quantity); Assert.Equal(4, item.Price); Assert.Equal("Pineapple", item.Description); } } }
public void TestModifyingOrder() { using (var connection = new TestSqliteSetup(connection_string)) { using (var context = new OrderContext(connection.Options)) { new DatabaseService(context).AddOrder(one_item_order); } using (var context = new OrderContext(connection.Options)) { var orderService = new DatabaseService(context); var old_order = orderService.FindOrder(1); var order = orderService.FindOrder(1); Assert.Equal(0, order.TotalPrice); order.OrderItems[0].Quantity = 1; orderService.UpdateOrder(old_order, order); } using (var context = new OrderContext(connection.Options)) { var orderService = new DatabaseService(context); var order = orderService.FindOrder(1); Assert.Equal(order.TotalPrice, 2); } } }
public void TestGettingNotExistingOrder(int dataId) { using (var connection = new TestSqliteSetup(connection_string)) { using (var context = new OrderContext(connection.Options)) { Assert.Null(new DatabaseService(context).FindOrder(dataId)); } } }
public void TestEditItemWithValidationError() { using (var connection = new TestSqliteSetup(TestDatabaseService.connection_string)){ using (var context = new OrderContext(connection.Options)) { var controller = new OrderController(context); controller.ModelState.AddModelError("FakeError", "FakeError"); var response = controller.EditItem(1, 1, new Item()); Assert.IsType <BadRequestObjectResult>(response); } } }
public void TestGetNotExistingOrder() { using (var connection = new TestSqliteSetup(TestDatabaseService.connection_string)) { using (var context = new OrderContext(connection.Options)) { var controller = new OrderController(context); var response = controller.GetOrder(1); Assert.Equal((int)HttpStatusCode.NotFound, response.StatusCode); } } }
public void TestGetNoOrders() { using (var connection = new TestSqliteSetup(TestDatabaseService.connection_string)) { using (var context = new OrderContext(connection.Options)) { var controller = new OrderController(context); var response = controller.GetAllOrders(); Assert.Equal((int)HttpStatusCode.OK, response.StatusCode); var orders = (List <Order>)response.Value; Assert.Empty(orders); } } }
public void TestEditItemNotExistingOrder() { using (var connection = new TestSqliteSetup(TestDatabaseService.connection_string)) { using (var context = new OrderContext(connection.Options)) { var controller = new OrderController(context); var response = controller.EditItem(1, 1, new Item { Quantity = 3, Price = 2, Description = "Apple" }); Assert.IsType <NotFoundResult>(response); } } }
public void TestGetItems() { using (var connection = new TestSqliteSetup(connection_string)) { using (var context = new OrderContext(connection.Options)) { new DatabaseService(context).AddOrder(four_item_order); } using (var context = new OrderContext(connection.Options)) { var orderService = new DatabaseService(context); var order = orderService.FindOrder(1); Assert.Equal(4, orderService.GetAllItemsForOrder(order).Count); } } }
public void TestCalculatingTotalPrice() { using (var connection = new TestSqliteSetup(connection_string)) { using (var context = new OrderContext(connection.Options)) { new DatabaseService(context).AddOrder(four_item_order); } using (var context = new OrderContext(connection.Options)) { var orderService = new DatabaseService(context); var orders = orderService.GetAllOrders(); Assert.NotEmpty(orders); var order = orderService.FindOrder(1); Assert.Equal(605, order.TotalPrice); } } }
public void TestGetItemNotExistingItem() { using (var connection = new TestSqliteSetup(TestDatabaseService.connection_string)) { using (var context = new OrderContext(connection.Options)) { var controller = new OrderController(context); var response = controller.AddOrder(new Order()); Assert.IsType <OkResult>(response); } using (var context = new OrderContext(connection.Options)) { var controller = new OrderController(context); var response = controller.GetItem(1, 1); Assert.Equal((int)HttpStatusCode.NotFound, response.StatusCode); } } }
public void TestGettingOneOrder() { using (var connection = new TestSqliteSetup(connection_string)) { using (var context = new OrderContext(connection.Options)) { new DatabaseService(context).AddOrder(one_item_order); } using (var context = new OrderContext(connection.Options)) { var orderService = new DatabaseService(context); var order = orderService.FindOrder(1); Assert.NotNull(order); Assert.Equal(0, order.TotalPrice); Assert.Equal(order.OrderItems.Count, 1); Assert.Equal(order.OrderItems[0].Order, order); } } }
public void TestCreateOrderAndModifyIt() { using (var connection = new TestSqliteSetup(TestDatabaseService.connection_string)) { // Add the order using (var context = new OrderContext(connection.Options)) { var controller = new OrderController(context); var response = controller.AddOrder(new Order()); Assert.IsType <OkResult>(response); } // Modify the order using (var context = new OrderContext(connection.Options)) { var controller = new OrderController(context); var response = controller.GetOrder(1); Assert.Equal((int)HttpStatusCode.OK, response.StatusCode); var order = (Order)response.Value; Assert.Empty(order.OrderItems); order.OrderItems.Add(new Item { Quantity = 1, Price = 2, Description = "Apple" }); var modify_response = controller.EditOrder(1, order); Assert.Equal((int)HttpStatusCode.OK, response.StatusCode); } // Verify the order using (var context = new OrderContext(connection.Options)) { var controller = new OrderController(context); var response = controller.GetOrder(1); Assert.Equal((int)HttpStatusCode.OK, response.StatusCode); var order = (Order)response.Value; Assert.Equal(1, order.OrderItems.Count); Assert.Equal(1, order.OrderItems[0].Quantity); Assert.Equal("Apple", order.OrderItems[0].Description); Assert.Equal(2, order.OrderItems[0].Price); Assert.Equal(order.TotalPrice, 2); } } }