public void AcceptOrder_Success(string id)
        {
            var mock        = new MockRepository(MockBehavior.Default);
            var repoProduct = mock.Create <IProductRepository>();
            var repoOrder   = mock.Create <IOrderRepository>();
            var api         = new OrderController(repoProduct.Object, repoOrder.Object);
            var allOrders   = new List <Order>
            {
                new Order {
                    Id = "1", Username = "******", OrderDate = new DateTime(2018, 6, 29), ReferenceCode = "1"
                },
                new Order {
                    Id = "2", Username = "******", OrderDate = new DateTime(2018, 6, 29), ReferenceCode = "2"
                },
                new Order {
                    Id = "3", Username = "******", OrderDate = new DateTime(2018, 6, 29), ReferenceCode = "3"
                },
            };

            repoOrder.Setup(it => it.Get(It.IsAny <Expression <Func <Order, bool> > >()))
            .Returns <Expression <Func <Order, bool> > >((expression) => allOrders.FirstOrDefault(expression.Compile()));

            api.AcceptOrder(id);

            repoProduct.VerifyNoOtherCalls();
            repoOrder.Verify(dac => dac.Get(It.IsAny <Expression <Func <Order, bool> > >()), Times.Once);
            Func <Order, bool> func = o =>
            {
                o.PaidDate.Should().NotBeNull();
                return(true);
            };

            repoOrder.Verify(dac => dac.Update(It.Is <Order>(o => func(o))), Times.Once);
            repoOrder.VerifyNoOtherCalls();
        }
        public void AcceptOrder_NoParameter(string id, string expectedMessage)
        {
            var mock        = new MockRepository(MockBehavior.Default);
            var repoProduct = mock.Create <IProductRepository>();
            var repoOrder   = mock.Create <IOrderRepository>();
            var api         = new OrderController(repoProduct.Object, repoOrder.Object);
            var allOrders   = new List <Order>
            {
                new Order {
                    Id = "1", Username = "******", OrderDate = new DateTime(2018, 6, 29), ReferenceCode = "1"
                },
                new Order {
                    Id = "2", Username = "******", OrderDate = new DateTime(2018, 6, 29), ReferenceCode = "2"
                },
                new Order {
                    Id = "3", Username = "******", OrderDate = new DateTime(2018, 6, 29), ReferenceCode = "3"
                },
            };

            repoOrder.Setup(it => it.Get(It.IsAny <Expression <Func <Order, bool> > >()))
            .Returns <Expression <Func <Order, bool> > >((expression) => allOrders.FirstOrDefault(expression.Compile()));

            try { api.AcceptOrder(id); }
            catch (Exception ex) { ex.Message.Should().Be(expectedMessage); }

            repoProduct.VerifyNoOtherCalls();
            repoOrder.Verify(dac => dac.Get(It.IsAny <Expression <Func <Order, bool> > >()), Times.AtMostOnce);
            repoOrder.VerifyNoOtherCalls();
        }
Exemple #3
0
        public async void confirmOrder(int orderID, bool isAccept, DateTime delivaeryDate)
        {
            ServerResponse <object, OrderErrorMessage> res;

            if (isAccept)
            {
                res = await OrderController.AcceptOrder(
                    orderID,
                    new ConfirmOrderDTO
                {
                    EmployeeId   = Store.user.Id,
                    DeliveryDate = delivaeryDate
                });
            }
            else
            {
                res = await OrderController.RefuseOrder(
                    orderID,
                    new ConfirmOrderDTO
                {
                    EmployeeId = Store.user.Id
                });
            }

            if (res == null)
            {
                return;
            }

            if (!res.IsSuccess)
            {
                Notification.Error(HandleError <OrderErrorMessage> .GetErrorString(res.Messages));
            }
            else
            {
                Notification.Success("Success");
                renderOrders();
            }
        }