public async Task GetSingle_Success()
        {
            var dbContext   = _fixture.Context;
            var mapper      = MapperMock.Get();
            var fileService = FileServiceMock.FilesService();
            var user        = NewDatas.NewUser();
            await dbContext.Users.AddAsync(user);

            await dbContext.SaveChangesAsync();

            var product1 = NewDatas.NewProduct();
            var product2 = NewDatas.NewProduct();
            var product3 = NewDatas.NewProduct();
            await dbContext.Products.AddRangeAsync(product1, product2, product3);

            await dbContext.SaveChangesAsync();

            var order = NewDatas.NewOrder();

            dbContext.Orders.Add(order);
            await dbContext.SaveChangesAsync();

            var orderDetail1 = NewDatas.NewOrderDetail();

            orderDetail1.productId = product1.productId;
            orderDetail1.orderId   = order.orderId;
            var orderDetail2 = NewDatas.NewOrderDetail();

            orderDetail2.productId = product2.productId;
            orderDetail2.orderId   = order.orderId;
            var orderDetail3 = NewDatas.NewOrderDetail();

            orderDetail3.productId = product3.productId;
            orderDetail3.orderId   = order.orderId;
            await dbContext.OrderDetails.AddRangeAsync(orderDetail1, orderDetail2, orderDetail3);

            await dbContext.SaveChangesAsync();

            order.orderDetails = new List <OrderDetail> {
                orderDetail1, orderDetail2, orderDetail3
            };
            order.user = user;
            await dbContext.SaveChangesAsync();

            var ordersService    = new OrderService(dbContext, mapper);
            var ordersController = new OrdersController(ordersService, mapper, fileService);
            // Act
            var result = await ordersController.GetOrder(order.orderId);

            // Assert
            var ordersResult = Assert.IsType <OkObjectResult>(result.Result);

            Assert.NotNull(ordersResult.Value as Order);
        }
        public async void GetAll_Success()
        {
            // Arrange
            var dbContext = _fixture.Context;
            var mapper    = MapperMock.Get();

            var user = NewDatas.NewUser();
            await dbContext.Users.AddAsync(user);

            await dbContext.SaveChangesAsync();

            var product1 = NewDatas.NewProduct();
            var product2 = NewDatas.NewProduct();
            var product3 = NewDatas.NewProduct();
            await dbContext.Products.AddRangeAsync(product1, product2, product3);

            await dbContext.SaveChangesAsync();

            #region create intial order data
            var fileService = FileServiceMock.FilesService();
            var order       = NewDatas.NewOrder();
            dbContext.Orders.Add(order);
            await dbContext.SaveChangesAsync();

            var orderDetail1 = NewDatas.NewOrderDetail();
            orderDetail1.productId = product1.productId;
            orderDetail1.orderId   = order.orderId;
            var orderDetail2 = NewDatas.NewOrderDetail();
            orderDetail2.productId = product2.productId;
            orderDetail2.orderId   = order.orderId;
            var orderDetail3 = NewDatas.NewOrderDetail();
            orderDetail3.productId = product3.productId;
            orderDetail3.orderId   = order.orderId;
            await dbContext.OrderDetails.AddRangeAsync(orderDetail1, orderDetail2, orderDetail3);

            await dbContext.SaveChangesAsync();

            order.orderDetails = new List <OrderDetail> {
                orderDetail1, orderDetail2, orderDetail3
            };
            order.user = user;
            await dbContext.SaveChangesAsync();

            #endregion
            var ordersService    = new OrderService(dbContext, mapper);
            var ordersController = new OrdersController(ordersService, mapper, fileService);
            // Act
            var result = await ordersController.GetOrders();

            // Assert
            var ordersResult = Assert.IsType <OkObjectResult>(result.Result);
            Assert.NotEmpty(ordersResult.Value as IEnumerable <OrderResponse>);
        }
예제 #3
0
        public async Task Put_Success(int quantity)
        {
            // Arrange
            var dbContext = _fixture.Context;
            var mapper    = MapperMock.Get();

            var fileService = FileServiceMock.FilesService();

            var user = NewDatas.NewUser();
            await dbContext.Users.AddAsync(user);

            await dbContext.SaveChangesAsync();

            var product1 = NewDatas.NewProduct();
            await dbContext.Products.AddRangeAsync(product1);

            await dbContext.SaveChangesAsync();

            #region create intial order data
            var order = NewDatas.NewOrder();
            dbContext.Orders.Add(order);
            await dbContext.SaveChangesAsync();

            var orderDetail1 = NewDatas.NewOrderDetail();
            orderDetail1.productId = product1.productId;
            orderDetail1.orderId   = order.orderId;

            int initialQuantity = orderDetail1.quantity;

            await dbContext.OrderDetails.AddRangeAsync(orderDetail1);

            await dbContext.SaveChangesAsync();

            order.orderDetails = new List <OrderDetail> {
                orderDetail1
            };
            order.user = user;
            await dbContext.SaveChangesAsync();

            #endregion

            var orderCreateRequest = NewDatas.NewOrderDetailRequest();
            orderCreateRequest.productId = product1.productId;
            orderCreateRequest.quantity  = quantity;

            int afterPostQuantity = quantity;

            var ordersService    = new OrderService(dbContext, mapper);
            var ordersController = new OrdersController(ordersService, mapper, fileService);

            #region set controller user
            ordersController.ControllerContext = new ControllerContext
            {
                HttpContext = new DefaultHttpContext
                {
                    User = new ClaimsPrincipal(new ClaimsIdentity(new Claim[]
                    {
                        new Claim(ClaimTypes.Name, user.UserName),
                        new Claim(ClaimTypes.NameIdentifier, user.Id.ToString(CultureInfo.InvariantCulture))
                    }, "Bearer")
                                               )
                }
            };
            #endregion

            // Act
            var result = await ordersController.PostOrder(orderCreateRequest);

            // Assert
            var ordersResult         = Assert.IsType <CreatedAtActionResult>(result.Result);
            var productInOrderResult = (ordersResult.Value as Order).orderDetails.First(x => x.productId == product1.productId);
            Assert.Equal(productInOrderResult.quantity, initialQuantity + afterPostQuantity);
        }