Пример #1
0
    /// <summary>
    /// 创建实例
    /// </summary>
    public static SellItemRequest create(int index, int num, int itemID)
    {
        SellItemRequest re = (SellItemRequest)BytesControl.createRequest(dataID);

        re.index  = index;
        re.num    = num;
        re.itemID = itemID;
        return(re);
    }
Пример #2
0
        public void unknownProduct()
        {
            SellItemsRequest request = new SellItemsRequest();

            request.setRequests(new List <SellItemRequest>());
            SellItemRequest unknownProductRequest = new SellItemRequest();

            unknownProductRequest.setProductName("unknown product");
            request.getRequests().Add(unknownProductRequest);

            Assert.That(() => useCase.run(request),
                        Throws.TypeOf <UnknownProductException>());
        }
        public void UnknownProduct()
        {
            var request = new SellItemsRequest {
                Requests = new List <SellItemRequest>()
            };
            var unknownProductRequest = new SellItemRequest {
                ProductName = "unknown product"
            };

            request.Requests.Add(unknownProductRequest);

            Assert.Throws <UnknownProductException>(() => useCase.Run(request));
        }
Пример #4
0
        public void SellMultipleItems()
        {
            SellItemRequest saladRequest = new SellItemRequest
            {
                ProductName = "salad",
                Quantity    = 2
            };

            SellItemRequest tomatoRequest = new SellItemRequest
            {
                ProductName = "tomato",
                Quantity    = 3
            };

            SellItemsRequest request =
                new SellItemsRequest
            {
                Requests = new List <SellItemRequest>
                {
                    saladRequest,
                    tomatoRequest
                }
            };

            useCase.Run(request);

            Order insertedOrder = orderRepository.SavedOrder;

            Assert.Equal(OrderStatus.Created, insertedOrder.Status);
            Assert.Equal(23.20m, insertedOrder.Total);
            Assert.Equal(2.13m, insertedOrder.Tax);
            Assert.Equal("EUR", insertedOrder.Currency);
            Assert.Equal(2, insertedOrder.Items.Count());

            var saladItem = insertedOrder.Items.ElementAt(0);

            Assert.Equal("salad", saladItem.Name);
            Assert.Equal(3.56m, saladItem.Price);
            Assert.Equal(2, saladItem.Quantity);
            Assert.Equal(7.84m, saladItem.TaxedAmount);
            Assert.Equal(0.72m, saladItem.Tax);

            var tomatoItem = insertedOrder.Items.ElementAt(1);

            Assert.Equal("tomato", tomatoItem.Name);
            Assert.Equal(4.65m, tomatoItem.Price);
            Assert.Equal(3, tomatoItem.Quantity);
            Assert.Equal(15.36m, tomatoItem.TaxedAmount);
            Assert.Equal(1.41m, tomatoItem.Tax);
        }
Пример #5
0
        public void UnknownProduct()
        {
            SellItemsRequest request = new SellItemsRequest();

            request.SetRequests(new List <SellItemRequest>());
            SellItemRequest unknownProductRequest = new SellItemRequest();

            unknownProductRequest.SetProductName("unknown product");
            request.GetRequests().Add(unknownProductRequest);

            Action act = () => useCase.Run(request);

            act.Should().Throw <UnknownProductException>();
        }
        public void UnknownProduct()
        {
            SellItemsRequest request = new SellItemsRequest();

            request.Requests = new List <SellItemRequest>();
            SellItemRequest unknownProductRequest = new SellItemRequest();

            unknownProductRequest.ProductName = "unknown product";
            request.Requests.Add(unknownProductRequest);

            Action action = () => useCase.Run(request);

            action.Should().Throw <UnknownProductException>();
        }
Пример #7
0
        public void maximumNumberOfFoodItemsExceededWithSingleQuantity()
        {
            SellItemsRequest tooManyFoodItemsRequest = new SellItemsRequest();

            tooManyFoodItemsRequest.SetRequests(new List <SellItemRequest>());

            for (int i = 0; i <= 100; i++)
            {
                SellItemRequest foodItemRequest = new SellItemRequest();
                foodItemRequest.SetProductName("salad");
                foodItemRequest.SetQuantity(1);
                tooManyFoodItemsRequest.GetRequests().Add(foodItemRequest);
            }

            Action act = () => useCase.Run(tooManyFoodItemsRequest);

            act.Should().Throw <MaximumNumberOfFoodItemsExceeded>();
        }
        public void SellMultipleItems()
        {
            var saladRequest = new SellItemRequest
            {
                ProductName = "salad",
                Quantity    = 2
            };

            var tomatoRequest = new SellItemRequest
            {
                ProductName = "tomato",
                Quantity    = 3
            };

            var request = new SellItemsRequest
            {
                Requests = new List <SellItemRequest> {
                    saladRequest, tomatoRequest
                }
            };

            _useCase.Run(request);

            Order insertedOrder = _orderRepository.GetSavedOrder();

            Assert.Equal(OrderStatus.Created, insertedOrder.Status);
            Assert.Equal(23.20m, insertedOrder.Total);
            Assert.Equal(2.13m, insertedOrder.Tax);
            Assert.Equal("EUR", insertedOrder.Currency);
            Assert.Equal(2, insertedOrder.Items.Count);
            Assert.Equal("salad", insertedOrder.Items[0].Product.Name);
            Assert.Equal(3.56m, insertedOrder.Items[0].Product.Price);
            Assert.Equal(2, insertedOrder.Items[0].Quantity);
            Assert.Equal(7.84m, insertedOrder.Items[0].TaxedAmount);
            Assert.Equal(0.72m, insertedOrder.Items[0].Tax);
            Assert.Equal("tomato", insertedOrder.Items[1].Product.Name);
            Assert.Equal(4.65m, insertedOrder.Items[1].Product.Price);
            Assert.Equal(3, insertedOrder.Items[1].Quantity);
            Assert.Equal(15.36m, insertedOrder.Items[1].TaxedAmount);
            Assert.Equal(1.41m, insertedOrder.Items[1].Tax);
        }
Пример #9
0
        public void MaximumNumberOfFoodItemsExceededWithMultipleQuantity()
        {
            SellItemsRequest tooManyFoodItemsRequest = new SellItemsRequest();

            tooManyFoodItemsRequest.SetRequests(new List <SellItemRequest>());

            SellItemRequest foodItemRequest = new SellItemRequest();

            foodItemRequest.SetProductName("salad");
            foodItemRequest.SetQuantity(30);
            tooManyFoodItemsRequest.GetRequests().Add(foodItemRequest);

            foodItemRequest = new SellItemRequest();
            foodItemRequest.SetProductName("tomato");
            foodItemRequest.SetQuantity(71);
            tooManyFoodItemsRequest.GetRequests().Add(foodItemRequest);

            Action act = () => useCase.Run(tooManyFoodItemsRequest);

            act.Should().Throw <MaximumNumberOfFoodItemsExceeded>();
        }
Пример #10
0
        public void SellMultipleItems()
        {
            SellItemRequest saladRequest = new SellItemRequest();

            saladRequest.SetProductName("salad");
            saladRequest.SetQuantity(2);

            SellItemRequest tomatoRequest = new SellItemRequest();

            tomatoRequest.SetProductName("tomato");
            tomatoRequest.SetQuantity(3);

            SellItemsRequest request = new SellItemsRequest();

            request.SetRequests(new List <SellItemRequest>()
            {
                saladRequest, tomatoRequest
            });

            useCase.Run(request);

            Order insertedOrder = orderRepository.GetSavedOrder();

            insertedOrder.GetStatus().Should().Be(OrderStatus.Created);
            insertedOrder.GetTotal().Should().Be((decimal)23.20);
            insertedOrder.GetTax().Should().Be((decimal)2.13);
            insertedOrder.GetCurrency().Should().Be("EUR");
            insertedOrder.GetItems().Should().HaveCount(2);
            insertedOrder.GetItems()[0].GetProduct().GetName().Should().Be("salad");
            insertedOrder.GetItems()[0].GetProduct().GetPrice().Should().Be((decimal)3.56);
            insertedOrder.GetItems()[0].getQuantity().Should().Be(2);
            insertedOrder.GetItems()[0].GetTaxedAmount().Should().Be((decimal)7.84);
            insertedOrder.GetItems()[0].GetTax().Should().Be((decimal)0.72);
            insertedOrder.GetItems()[1].GetProduct().GetName().Should().Be("tomato");
            insertedOrder.GetItems()[1].GetProduct().GetPrice().Should().Be((decimal)4.65);
            insertedOrder.GetItems()[1].getQuantity().Should().Be(3);
            insertedOrder.GetItems()[1].GetTaxedAmount().Should().Be((decimal)15.36);
            insertedOrder.GetItems()[1].GetTax().Should().Be((decimal)1.41);
        }
Пример #11
0
        public void sellMultipleItems()
        {
            SellItemRequest saladRequest = new SellItemRequest();

            saladRequest.setProductName("salad");
            saladRequest.setQuantity(2);

            SellItemRequest tomatoRequest = new SellItemRequest();

            tomatoRequest.setProductName("tomato");
            tomatoRequest.setQuantity(3);

            SellItemsRequest request = new SellItemsRequest();

            request.setRequests(new List <SellItemRequest>());
            request.getRequests().Add(saladRequest);
            request.getRequests().Add(tomatoRequest);

            useCase.run(request);

            Order insertedOrder = orderRepository.getSavedOrder();

            Assert.That(insertedOrder.getStatus(), Is.EqualTo(OrderStatus.CREATED));
            Assert.That(insertedOrder.getTotal(), Is.EqualTo(new BigDecimal(23.20).SetScale(2, RoundingMode.HalfUp)));
            Assert.That(insertedOrder.getTax(), Is.EqualTo(new BigDecimal(2.13).SetScale(2, RoundingMode.HalfUp)));
            Assert.That(insertedOrder.getCurrency(), Is.EqualTo("EUR"));
            Assert.That(insertedOrder.getItems().Count(), Is.EqualTo(2));
            Assert.That(insertedOrder.getItems()[0].getProduct().getName(), Is.EqualTo("salad"));
            Assert.That(insertedOrder.getItems()[0].getProduct().getPrice(), Is.EqualTo(new BigDecimal(3.56)));
            Assert.That(insertedOrder.getItems()[0].getQuantity(), Is.EqualTo(2));
            Assert.That(insertedOrder.getItems()[0].getTaxedAmount(), Is.EqualTo(new BigDecimal(7.84).SetScale(2, RoundingMode.HalfUp)));
            Assert.That(insertedOrder.getItems()[0].getTax(), Is.EqualTo(new BigDecimal(0.72).SetScale(2, RoundingMode.HalfUp)));
            Assert.That(insertedOrder.getItems()[1].getProduct().getName(), Is.EqualTo("tomato"));
            Assert.That(insertedOrder.getItems()[1].getProduct().getPrice(), Is.EqualTo(new BigDecimal(4.65)));
            Assert.That(insertedOrder.getItems()[1].getQuantity(), Is.EqualTo(3));
            Assert.That(insertedOrder.getItems()[1].getTaxedAmount(), Is.EqualTo(new BigDecimal(15.36).SetScale(2, RoundingMode.HalfUp)));
            Assert.That(insertedOrder.getItems()[1].getTax(), Is.EqualTo(new BigDecimal(1.41).SetScale(2, RoundingMode.HalfUp)));
        }
        public void SellMultipleItems()
        {
            SellItemRequest saladRequest = new SellItemRequest();

            saladRequest.ProductName = "salad";
            saladRequest.Quantity    = 2;

            SellItemRequest tomatoRequest = new SellItemRequest();

            tomatoRequest.ProductName = "tomato";
            tomatoRequest.Quantity    = 3;

            SellItemsRequest request = new SellItemsRequest();

            request.Requests = new List <SellItemRequest>();
            request.Requests.Add(saladRequest);
            request.Requests.Add(tomatoRequest);

            useCase.Run(request);

            Order insertedOrder = orderRepository.GetSavedOrder();

            insertedOrder.Status.Should().Be(OrderStatus.Created);
            insertedOrder.Total.Should().Be(23.20M);
            insertedOrder.Tax.Should().Be(2.13M);
            insertedOrder.Currency.Should().Be("EUR");
            insertedOrder.Items.Should().HaveCount(2);
            insertedOrder.Items[0].Product.Name.Should().Be("salad");
            insertedOrder.Items[0].Product.Price.Should().Be(3.56M);
            insertedOrder.Items[0].Quantity.Should().Be(2);
            insertedOrder.Items[0].TaxedAmount.Should().Be(7.84M);
            insertedOrder.Items[0].Tax.Should().Be(0.72M);
            insertedOrder.Items[1].Product.Name.Should().Be("tomato");
            insertedOrder.Items[1].Product.Price.Should().Be(4.65M);
            insertedOrder.Items[1].Quantity.Should().Be(3);
            insertedOrder.Items[1].TaxedAmount.Should().Be(15.36M);
            insertedOrder.Items[1].Tax.Should().Be(1.41M);
        }