Пример #1
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>());
        }
Пример #2
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)));
        }