Esempio n. 1
0
        public async Task Get_Invalid_CustomerId(string customerId)
        {
            //arrange
            var controller = new OrderingController(orderRepositoryMock.Object, mapper);

            SetControllerUser(customerId, controller);

            //act
            //assert
            await Assert.ThrowsAsync <ArgumentNullException>(async() => await controller.Get(customerId));
        }
Esempio n. 2
0
        public async Task Post_Invalid_Order_Items_Null()
        {
            //arrange
            Order order      = new Order(null, "customerId", "customerName", "*****@*****.**", "phone", "address", "additionalAddress", "district", "city", "state", "12345-678");
            var   controller = new OrderingController(orderRepositoryMock.Object, mapper);

            controller.ModelState.AddModelError("cliente", "Required");
            //act
            IActionResult actionResult = await controller.Post(order);

            //assert
            Assert.IsType <BadRequestObjectResult>(actionResult);
        }
        public void Get_Promo_Winter()
        {
            var expectedPromoWinter = "WINTER-PROMO";
            Mock <IFeatureService> featureService = new Mock <IFeatureService>();

            featureService.Setup(x => x.IsEnabledAsync("IsEnabledAsync", It.IsAny <CancellationToken>())).Returns(Task.FromResult(true));

            var orderingContext = new OrderingContext(dbContextOptions);

            //Act
            var orderingController = new OrderingController(orderingContext, logger, featureService.Object);
            var actionResult       = orderingController.GetPromoWinter();

            Assert.Equal(expectedPromoWinter, actionResult);
        }
Esempio n. 4
0
        public async Task Post_Invalid_Order(string customerId, string customerName, string customerEmail, string customerPhone, string customerAddress, string customerAdditionalAddress, string customerDistrict, string customerCity, string customerState, string customerZipCode)
        {
            //arrange
            List <OrderItem> items = new List <OrderItem> {
                new OrderItem("001", "product 001", 1, 12.34m)
            };
            Order order      = new Order(items, customerId, customerName, customerEmail, customerPhone, customerAddress, customerAdditionalAddress, customerDistrict, customerCity, customerState, customerZipCode);
            var   controller = new OrderingController(orderRepositoryMock.Object, mapper);

            controller.ModelState.AddModelError("cliente", "Required");
            //act
            IActionResult actionResult = await controller.Post(order);

            //assert
            Assert.IsType <BadRequestObjectResult>(actionResult);
        }
Esempio n. 5
0
        public async Task Get_Not_Found()
        {
            //arrange
            orderRepositoryMock
            .Setup(r => r.GetOrders(It.IsAny <string>()))
            .ReturnsAsync((List <Order>)null)
            .Verifiable();

            var controller = new OrderingController(orderRepositoryMock.Object, mapper);

            SetControllerUser("xpto", controller);

            //act
            ActionResult result = await controller.Get("xpto");

            //assert
            Assert.IsType <NotFoundObjectResult>(result);

            orderRepositoryMock.Verify();
        }
Esempio n. 6
0
        public async Task Post_Invalid_Order_Success()
        {
            //arrange
            List <OrderItem> items = new List <OrderItem> {
                new OrderItem("001", "product 001", 1, 12.34m)
            };
            Order order = new Order(items, "customerId", "customerName", "*****@*****.**", "phone", "address", "additionalAddress", "district", "city", "state", "12345-678");

            order.Id = 123;
            orderRepositoryMock
            .Setup(r => r.CreateOrUpdate(It.IsAny <Order>()))
            .ReturnsAsync(order);
            var controller = new OrderingController(orderRepositoryMock.Object, mapper);
            //act
            IActionResult actionResult = await controller.Post(order);

            //assert
            OkObjectResult okObjectResult = Assert.IsType <OkObjectResult>(actionResult);
            Order          orderCriado    = Assert.IsType <Order>(okObjectResult.Value);

            Assert.Equal(123, orderCriado.Id);
        }
Esempio n. 7
0
        public async Task Get_Ok()
        {
            //arrange
            List <OrderItem> items = new List <OrderItem> {
                new OrderItem("001", "product 001", 1, 12.34m)
            };
            Order order = new Order(items, "customerId", "customerName", "*****@*****.**", "phone", "address", "additionalAddress", "district", "city", "state", "12345-678");

            order.Id = 123;

            orderRepositoryMock
            .Setup(r => r.GetOrders(It.IsAny <string>()))
            .ReturnsAsync(new List <Order> {
                order
            })
            .Verifiable();

            var controller = new OrderingController(orderRepositoryMock.Object, mapper);

            SetControllerUser("xpto", controller);

            //act
            ActionResult result = await controller.Get("xpto");

            //assert
            var objectResult = Assert.IsAssignableFrom <OkObjectResult>(result);
            var orders       = Assert.IsType <List <OrderDTO> >(objectResult.Value);

            Assert.Collection(orders,
                              (p) => Assert.Equal("123", p.Id));

            Assert.Collection(orders[0].Items,
                              (i) => Assert.Equal("001", i.ProductCode));

            orderRepositoryMock.Verify();
        }
        public async Task Get_orders_success()
        {
            //Arrange
            var pageSize  = 4;
            var pageIndex = 1;

            var expectedItemsInPage = 0;
            var expectedTotalItems  = 1;

            var orderingContext = new OrderingContext(dbContextOptions);

            //Act
            var orderingController = new OrderingController(orderingContext, logger, null);
            var actionResult       = await orderingController.GetOrdersAsync(pageSize, pageIndex);

            //Assert
            Assert.IsType <ActionResult <PaginatedItemsViewModel <API.Models.Order> > >(actionResult);
            var page = Assert.IsAssignableFrom <PaginatedItemsViewModel <API.Models.Order> >(actionResult.Value);

            Assert.Equal(expectedTotalItems, page.Count);
            Assert.Equal(pageIndex, page.PageIndex);
            Assert.Equal(pageSize, page.PageSize);
            Assert.Equal(expectedItemsInPage, page.Data.Count());
        }