public void Recount_SuccessfullyRecounted()
        {
            // Arrange
            var item = new IssuedInvoiceItemRecountPostModel
            {
                DiscountPercentage = 0,
                UnitPrice          = 100,
                Amount             = 2,
                Name        = "Test",
                Id          = 1,
                ItemType    = IssuedInvoiceItemType.ItemTypeReduce,
                PriceType   = PriceType.WithoutVat,
                VatRateType = VatRateType.Basic
            };
            var model = new IssuedInvoiceRecountPostModel
            {
                CurrencyId         = 1,
                DateOfTaxing       = DateTime.Today.SetKindUtc(),
                DiscountPercentage = 0,
                PaymentOptionId    = 1,
                Items = new List <IssuedInvoiceItemRecountPostModel> {
                    item
                }
            };

            // Act
            var data = _issuedInvoiceClient.Recount(model).AssertResult();

            // Assert
            var recountedItem = data.Items.First(x => x.ItemType == IssuedInvoiceItemType.ItemTypeReduce);

            Assert.AreEqual(item.Id, recountedItem.Id);
            Assert.AreEqual(item.Name, recountedItem.Name);
            Assert.AreEqual(item.ItemType, recountedItem.ItemType);
            Assert.AreEqual(242, recountedItem.Prices.TotalWithVat);
            Assert.AreEqual(242, recountedItem.Prices.TotalWithVatHc);
            Assert.AreEqual(42, recountedItem.Prices.TotalVat);
            Assert.AreEqual(42, recountedItem.Prices.TotalVatHc);
            Assert.AreEqual(200, recountedItem.Prices.TotalWithoutVat);
            Assert.AreEqual(200, recountedItem.Prices.TotalWithoutVatHc);
        }
        public void Recount_ForeignCurrency_SuccessfullyRecounted()
        {
            // Arrange
            var item = new IssuedInvoiceItemRecountPostModel
            {
                DiscountPercentage = 0,
                UnitPrice          = 100,
                Amount             = 1,
                Name        = "Test",
                Id          = 1,
                PriceType   = PriceType.WithoutVat,
                VatRateType = VatRateType.Basic
            };
            var model = new IssuedInvoiceRecountPostModel
            {
                CurrencyId         = 2,
                ExchangeRate       = 20,
                ExchangeRateAmount = 1,
                DateOfTaxing       = DateTime.Today.SetKindUtc(),
                DiscountPercentage = 0,
                PaymentOptionId    = 1,
                Items = new List <IssuedInvoiceItemRecountPostModel> {
                    item
                }
            };

            // Act
            var result = _issuedInvoiceClient.Recount(model).AssertResult();

            // Assert
            var recountedItem = result.Items.First(x => x.ItemType == IssuedInvoiceItemType.ItemTypeNormal);

            Assert.AreEqual(1, result.ExchangeRateAmount);
            Assert.AreEqual(20, result.ExchangeRate);
            Assert.AreEqual(2, result.CurrencyId);
            Assert.AreEqual(121, recountedItem.Prices.TotalWithVat);
            Assert.AreEqual(2420, recountedItem.Prices.TotalWithVatHc);
        }