public OrderDetailOutput get(int id)
        {
            var orderDetail   = _orderContext.Orders.Where(m => m.id == id).FirstOrDefault();
            var orderProducts = _orderContext.OrderProducts.Where(m => m.orderId == id).ToList();
            OrderDetailOutput orderDetailOutput = new OrderDetailOutput {
                order    = orderDetail,
                products = new ProductsListOutput {
                    total = orderProducts.Count(),
                    data  = orderProducts
                }
            };

            return(orderDetailOutput);
        }
예제 #2
0
        public void When_Create_Order_With_Cart_Should_Be_Return_Order()
        {
            var _productContext = new DatabaseProductDummy().productContext;

            OrdersContext _orderContext = generateOrderContext("create_order_orders_2");

            CartsContext _cartContext = generateCartContext("create_order_carts_detail_2");

            OrdersModel ordersModel = new OrdersModel {
                cartId         = 1,
                userId         = 1,
                subtotal       = (Decimal)12.95,
                total          = (Decimal)62.95,
                shippingMethod = "Cash on Delivery",
                shippingFee    = 50,
                fullname       = "Chonnikan Tobunrueang",
                address1       = "3 อาคารพร้อมพันธ์ 3 ห้อง 1001",
                address2       = "จอมพล",
                city           = "จตุจักร",
                province       = "กรุงเทพ",
                postcode       = "10900",
                createDatetime = DateTime.Now,
            };

            OrderProductsModel orderProductsModel = new OrderProductsModel {
                orderId           = 1,
                productId         = 2,
                quantity          = 1,
                name              = "43 Piece dinner Set",
                price             = (Decimal)12.95,
                availability      = "InStock",
                stockAvailability = 10,
                age    = "3_to_5",
                gender = "FEMALE",
                brand  = "CoolKidz"
            };

            OrderDetailOutput expectedResult = new OrderDetailOutput {
                order    = ordersModel,
                products = new ProductsListOutput {
                    total = 1,
                    data  = new List <OrderProductsModel>()
                    {
                        orderProductsModel
                    },
                }
            };

            OrdersService          ordersService = new OrdersService(_cartContext, _productContext, _orderContext);
            CreateOrderOutputModel order         = ordersService.create(1, 1);

            var actual = ordersService.get(order.id);

            Assert.Equal(order.id, actual.order.id);
            Assert.Equal(expectedResult.order.subtotal, actual.order.subtotal);
            Assert.Equal(expectedResult.order.total, actual.order.total);
            Assert.Equal(expectedResult.order.shippingMethod, actual.order.shippingMethod);
            Assert.Equal(expectedResult.order.shippingFee, actual.order.shippingFee);
            Assert.Equal(expectedResult.order.fullname, actual.order.fullname);
            Assert.Equal(expectedResult.order.address1, actual.order.address1);
            Assert.Equal(expectedResult.products.data, actual.products.data);


            _productContext.Database.EnsureDeleted();
            _cartContext.Database.EnsureDeleted();
            _orderContext.Database.EnsureDeleted();
        }
        public void When_Get_Order_Id_1_Should_Be_Return_Only_This_Order()
        {
            var _orderOptions = new DbContextOptionsBuilder <OrdersContext>().UseInMemoryDatabase("create_order_orders_detail_2").Options;
            var _orderContext = new OrdersContext(_orderOptions);

            var _cartOptions = new DbContextOptionsBuilder <CartsContext>().UseInMemoryDatabase("create_order_carts_detail_2").Options;
            var _cartContext = new CartsContext(_cartOptions);

            var _productOptions = new DbContextOptionsBuilder <ProductsContext>().UseInMemoryDatabase("create_order_carts_products_detail_2").Options;
            var _productContext = new ProductsContext(_productOptions);

            OrdersModel ordersModel = new OrdersModel {
                cartId         = 1,
                userId         = 1,
                subtotal       = (Decimal)25.90,
                total          = (Decimal)75.90,
                shippingMethod = "Cash on Delivery",
                shippingFee    = 50,
                fullname       = "Chonnikan Tobunrueang",
                address1       = "3 อาคารพร้อมพันธ์ 3 ห้อง 1001",
                address2       = "จอมพล",
                city           = "จตุจักร",
                province       = "กรุงเทพ",
                postcode       = "10900",
                createDatetime = DateTime.Now,
            };

            _orderContext.Orders.Add(ordersModel);

            OrderProductsModel orderProductsModel = new OrderProductsModel {
                orderId           = 1,
                productId         = 2,
                quantity          = 2,
                name              = "43 Piece dinner Set",
                price             = (Decimal)12.95,
                availability      = "InStock",
                stockAvailability = 10,
                age    = "3_to_5",
                gender = "FEMALE",
                brand  = "CoolKidz"
            };

            _orderContext.OrderProducts.Add(orderProductsModel);

            _orderContext.SaveChanges();

            OrderDetailOutput expectedResult = new OrderDetailOutput {
                order    = ordersModel,
                products = new ProductsListOutput {
                    total = 1,
                    data  = new List <OrderProductsModel>()
                    {
                        orderProductsModel
                    },
                }
            };

            OrdersService ordersService = new OrdersService(_cartContext, _productContext, _orderContext);
            var           actual        = ordersService.get(1);

            Assert.Equal(expectedResult.order.id, actual.order.id);

            using (var context = new ProductsContext(_productOptions))
            {
                _productContext.Database.EnsureDeleted();
            }
            using (var context = new CartsContext(_cartOptions))
            {
                _cartContext.Database.EnsureDeleted();
            }
            using (var context = new OrdersContext(_orderOptions))
            {
                _orderContext.Database.EnsureDeleted();
            }
        }