Example #1
0
        public static async Task DeleteOrderItemAsync_OrderDoesNotExist_ReturnsNotFoundResult(
            [Frozen] Mock <IOrderItemService> service,
            [Frozen] CallOffId callOffId,
            OrderItemsController controller)
        {
            service.Setup(o => o.GetOrderWithCatalogueItems(callOffId))
            .ReturnsAsync((Order)null);

            var response = await controller.DeleteOrderItemAsync(callOffId, new CatalogueItemId(42, "111"));

            response.Should().BeOfType <NotFoundResult>();
        }
Example #2
0
        public static async Task DeleteOrderItemAsync_OrderDeleted_ReturnsNotFoundResult(
            [Frozen] Mock <IOrderItemService> service,
            [Frozen] CallOffId callOffId,
            Order order,
            OrderItem orderItem,
            OrderItemsController controller)
        {
            order.AddOrUpdateOrderItem(orderItem);
            order.IsDeleted = false;

            service.Setup(o => o.GetOrderWithCatalogueItems(callOffId))
            .ReturnsAsync(order);

            var response = await controller.DeleteOrderItemAsync(callOffId, orderItem.CatalogueItem.Id);

            response.Should().BeOfType <NotFoundResult>();
        }
Example #3
0
        public static async Task DeleteOrderItemAsync_OrderItemExistsInOrder_ReturnsNoContentResult(
            [Frozen] Mock <IOrderItemService> service,
            Order order,
            List <OrderItem> orderItems,
            OrderItemsController controller)
        {
            orderItems.ForEach(o => order.AddOrUpdateOrderItem(o));
            service.Setup(o => o.GetOrderWithCatalogueItems(order.CallOffId)).ReturnsAsync(order);
            service.Setup(o => o.DeleteOrderItem(order, It.IsAny <CatalogueItemId>())).Callback(() =>
            {
                order.DeleteOrderItemAndUpdateProgress(order.OrderItems[1].CatalogueItem.Id);
            }).ReturnsAsync(1);

            var response = await controller.DeleteOrderItemAsync(order.CallOffId, orderItems[1].CatalogueItem.Id);

            response.Should().BeOfType <NoContentResult>();
        }
Example #4
0
        public static async Task DeleteOrderItemAsync_OrderItemExistsInOrder_DeletesOrderItem(
            [Frozen] Mock <IOrderItemService> service,
            Order order,
            List <OrderItem> orderItems,
            OrderItemsController controller)
        {
            orderItems[2].CatalogueItem.ParentCatalogueItemId = orderItems[1].CatalogueItem.Id;
            orderItems.ForEach(o => order.AddOrUpdateOrderItem(o));

            service.Setup(o => o.GetOrderWithCatalogueItems(order.CallOffId))
            .ReturnsAsync(order);
            service.Setup(o => o.DeleteOrderItem(order, orderItems[1].CatalogueItem.Id)).Callback(() =>
            {
                order.DeleteOrderItemAndUpdateProgress(orderItems[1].CatalogueItem.Id);
            });

            await controller.DeleteOrderItemAsync(order.CallOffId, orderItems[1].CatalogueItem.Id);

            order.OrderItems.Contains(orderItems[1]).Should().BeFalse();
            order.OrderItems.Contains(orderItems[2]).Should().BeFalse();
        }
Example #5
0
        public static async Task DeleteOrderItemAsync_OrderItemExistsInOrder_UpdatesProgress(
            [Frozen] Mock <IOrderItemService> service,
            [Frozen] CallOffId callOffId,
            Order order,
            List <OrderItem> orderItems,
            OrderItemsController controller)
        {
            var itemsToAdd = orderItems.Take(2).ToList();

            itemsToAdd[1].CatalogueItem.ParentCatalogueItemId = itemsToAdd[0].CatalogueItem.Id;
            itemsToAdd.ForEach(o => order.AddOrUpdateOrderItem(o));
            order.Progress.AdditionalServicesViewed = true;

            service.Setup(o => o.GetOrderWithCatalogueItems(callOffId)).ReturnsAsync(order);
            service.Setup(o => o.DeleteOrderItem(order, itemsToAdd[0].CatalogueItem.Id)).Callback(() =>
            {
                order.DeleteOrderItemAndUpdateProgress(itemsToAdd[0].CatalogueItem.Id);
            });
            await controller.DeleteOrderItemAsync(callOffId, itemsToAdd[0].CatalogueItem.Id);

            order.Progress.AdditionalServicesViewed.Should().BeFalse();
        }