Exemplo n.º 1
0
            public async Task WhenOrder_IsCompletedOverOneDay_ShouldFail()
            {
                // Arrange
                var        orderService = TestableOrderService.Create();
                const long TestOrderId  = 10;
                var        orderRequest = new OrderFormVm()
                {
                    OrderId = TestOrderId
                };
                var mockOrderRepo = new Mock <IRepository <Order> >();
                var order         = new Order(TestOrderId)
                {
                    CompletedOn = DateTimeOffset.Now.AddDays(-2),
                    OrderStatus = OrderStatus.Complete
                };
                var mockOrders = new Order[] { order }.AsQueryable().BuildMock();

                orderService.MockOrderRepo.Setup(repo => repo.Query()).Returns(mockOrders.Object);

                // Action
                var feedback = await orderService.UpdateOrderAsync(orderRequest);

                // Assert
                Assert.False(feedback.Success);
                Assert.True(feedback.ErrorMessage.HasValue());
            }
Exemplo n.º 2
0
            public async Task WithEmptyTrackingNumber_ShouldSucceed()
            {
                // Arrange
                var          orderService       = TestableOrderService.Create();
                const long   TestOrderId        = 11;
                const string TestTrackingNumber = "";
                var          order = new Order(TestOrderId)
                {
                    OrderStatus = OrderStatus.Pending
                };
                var order2 = new Order(TestOrderId + 1)
                {
                    TrackingNumber = TestTrackingNumber
                };
                var mockOrders = new Order[] { order, order2 }.AsQueryable().BuildMock();

                orderService.MockOrderRepo.Setup(repo => repo.Query()).Returns(mockOrders.Object);
                orderService.MockOrderRepo.Setup(repo => repo.QueryAsNoTracking()).Returns(mockOrders.Object);
                SetupMockHttpContextAccessorWithUserInRole(orderService.MockHttpContextAccessor, RoleName.Seller);

                // Action
                var feedback = await orderService.UpdateTrackingNumberAsync(TestOrderId, TestTrackingNumber);

                // Assert
                Assert.True(feedback.Success);
            }
Exemplo n.º 3
0
            public async Task WhenShoppingCart_IsNull_ShouldFail()
            {
                // Arrange
                var orderRequest = new OrderFormVm()
                {
                    OrderItems = null
                };

                // Action
                var orderService = TestableOrderService.Create();
                var feedback     = await orderService.UpdateOrderAsync(orderRequest);

                // Assert
                Assert.False(feedback.Success);
                Assert.True(feedback.ErrorMessage.HasValue());
            }
Exemplo n.º 4
0
            public async Task ShouldFail_WhenShoppingCart_IsNull()
            {
                // Arrange
                var orderRequest = new OrderFormVm()
                {
                    OrderItems = null
                };

                // Action
                var orderService = TestableOrderService.Create();
                var feedback     = await orderService.CreateOrderAsync(orderRequest);

                // Assert
                Assert.Equal(0, feedback.Result);
                Assert.False(feedback.Success);
                Assert.NotNull(feedback.ErrorMessage);
            }
Exemplo n.º 5
0
            public async Task WithBeingCompletedOverOneDay_ShouldReturnError()
            {
                // Arrange
                var          orderService       = TestableOrderService.Create();
                const long   TestOrderId        = 10;
                const string TestTrackingNumber = "aTrackingNumber123";
                var          order = new Order(TestOrderId)
                {
                    CompletedOn = DateTimeOffset.Now.AddDays(-2),
                    OrderStatus = OrderStatus.Complete
                };
                var mockOrders = new Order[] { order }.AsQueryable().BuildMock();

                orderService.MockOrderRepo.Setup(repo => repo.Query()).Returns(mockOrders.Object);
                SetupMockHttpContextAccessorWithUserInRole(orderService.MockHttpContextAccessor, RoleName.Seller);

                // Action
                var feedback = await orderService.UpdateTrackingNumberAsync(TestOrderId, TestTrackingNumber);

                // Assert
                Assert.False(feedback.Success);
                Assert.True(feedback.ErrorMessage.HasValue());
            }
Exemplo n.º 6
0
            public async Task WithBeingCompletedOverOneDay_ShouldReturnError(OrderStatus status)
            {
                // Arrange
                var        orderService = TestableOrderService.Create();
                const long TestOrderId  = 10;
                var        order        = new Order(TestOrderId)
                {
                    CompletedOn = DateTimeOffset.Now.AddDays(-2),
                    OrderStatus = OrderStatus.Complete
                };
                var mockOrders = new Order[] { order }.AsQueryable().BuildMock();

                orderService.MockOrderRepo.Setup(repo => repo.Query()).Returns(mockOrders.Object);
                SetupMockHttpContextAccessorWithUserInRole(orderService.MockHttpContextAccessor, RoleName.Seller);

                // Action
                (GetOrderVm orderResult, string error) = await orderService.UpdateStatusAsync(TestOrderId, status);

                // Assert
                Assert.Null(orderResult);
                Assert.NotNull(error);
                Assert.NotEmpty(error);
            }