Exemplo n.º 1
0
        public async Task Doing_Checkout_Wit_Basket_Should_Publish_UserCheckoutAccepted_Integration_Event()
        {
            var fakeCustomerId     = "1";
            var fakeCustomerBasket = GetCustomerBasketFake(fakeCustomerId);

            _basketRepositoryMock.Setup(x => x.GetBasketAsync(It.IsAny <string>()))
            .Returns(Task.FromResult(fakeCustomerBasket));

            _identityServiceMock.Setup(x => x.GetUserIdentity()).Returns(fakeCustomerId);

            var basketController = new BasketController(
                _basketRepositoryMock.Object, _identityServiceMock.Object, _serviceBusMock.Object);

            basketController.ControllerContext = new ControllerContext()
            {
                HttpContext = new DefaultHttpContext()
                {
                    User = new ClaimsPrincipal(
                        new ClaimsIdentity(new Claim[] { new Claim("unique_name", "testuser") }))
                }
            };

            //Act
            var result = await basketController.CheckoutAsync(new BasketCheckout(), Guid.NewGuid().ToString()) as AcceptedResult;

            _serviceBusMock.Verify(mock => mock.Publish(It.IsAny <UserCheckoutAcceptedIntegrationEvent>()), Times.Once);

            Assert.NotNull(result);
        }
Exemplo n.º 2
0
        public async Task Doing_Checkout_Without_Basket_Should_Return_Bad_Request()
        {
            var fakeCustomerId = "2";

            _basketRepositoryMock.Setup(x => x.GetBasketAsync(It.IsAny <string>()))
            .Returns(Task.FromResult((CustomerBasket)null));
            _identityServiceMock.Setup(x => x.GetUserIdentity()).Returns(fakeCustomerId);

            //Act
            var basketController = new BasketController(
                _basketRepositoryMock.Object, _identityServiceMock.Object, _serviceBusMock.Object);

            var result = await basketController.CheckoutAsync(new BasketCheckout(), Guid.NewGuid().ToString()) as BadRequestResult;

            Assert.NotNull(result);
        }
Exemplo n.º 3
0
            public async Task Checkout_BasketDoesNotExist_ReturnBadRequestResult(
                [Frozen] Mock <IMediator> mockMediator,
                [Greedy] BasketController sut,
                BasketCheckout checkout,
                string requestId
                )
            {
                //Arrange
                mockMediator.Setup(x => x.Send(It.IsAny <CheckoutCommand>(), It.IsAny <CancellationToken>()))
                .ReturnsAsync((CustomerBasket)null);

                //Act
                var actionResult = await sut.CheckoutAsync(checkout, requestId);

                //Assert
                var okObjectResult = actionResult as BadRequestResult;

                okObjectResult.Should().NotBeNull();
            }
Exemplo n.º 4
0
        public async Task Doing_Checkout_Without_Course_Planner_Should_Return_Bad_Request()
        {
            // Arrange
            var fakeCustomerId = "2";

            _coursePlannerRepositoryMock.Setup(x => x.GetCoursePlannerAsync(It.IsAny <string>()))
            .Returns(Task.FromResult((API.Models.CoursePlanner)null));
            _identityServiceMock.Setup(x => x.GetUserIdentity()).Returns(fakeCustomerId);

            //Act
            var basketController = new BasketController(
                _loggerMock.Object,
                _coursePlannerRepositoryMock.Object,
                _identityServiceMock.Object,
                _serviceBusMock.Object);

            // Assert
            var result = await basketController.CheckoutAsync(new BasketCheckout(), Guid.NewGuid().ToString()) as BadRequestResult;

            Assert.NotNull(result);
        }