Пример #1
0
        public void Shuold_Return_False_When_Not_Eu_Country()
        {
            var euCountry = "America";

            var result = _eUCountryChecker.IsEUCoutry(euCountry);

            Assert.IsFalse(result);
        }
Пример #2
0
        public void Sould_Return_Countiry_VAT_If_Supplier_Is_VAT_Payer_And_Customer_Not_VAT_Payer_And_Customer_Not_In_EU_Region_And_Supplier_In_Different_Country()
        {
            var expectedResult = 21;

            _customer.IsVatPayer.Returns(false);
            _eUCountryChecker.IsEUCoutry(_customer.Country).Returns(true);
            _eUCountryChecker.GetEUCoutryAlpha2Code(_customer.Country).Returns("lt");
            _vATReuester.GetEUCountryVAT(_eUCountryChecker.GetEUCoutryAlpha2Code(_customer.Country)).Returns(21);
            _invoiceGenerator = new InvoiceGenerator(_vATReuester, _eUCountryChecker);

            var result = _invoiceGenerator.GenerateInvoiceVAT(_supplier, _customer);

            Assert.AreEqual(result, expectedResult);
        }
Пример #3
0
        public int GenerateInvoiceVAT(IPerson supplier, IPerson customer)
        {
            var isCustomerInSuppliersCountry = supplier.Country.ToLower() == customer.Country.ToLower();
            var isCustomerEuCitizen          = _eUCountryChecker.IsEUCoutry(customer.Country);
            var isEUSupplierIsVATPayer       = supplier.IsVatPayer && isCustomerEuCitizen;
            var alpha2Code         = _eUCountryChecker.GetEUCoutryAlpha2Code(customer.Country);
            var customerCountryVAT = _vATRequester.GetEUCountryVAT(alpha2Code);

            if (!supplier.IsVatPayer)
            {
                return(0);
            }
            else if (supplier.IsVatPayer && !isCustomerEuCitizen)
            {
                return(0);
            }
            else if (isEUSupplierIsVATPayer && !customer.IsVatPayer && !isCustomerInSuppliersCountry)
            {
                return(customerCountryVAT);
            }
            else if (isEUSupplierIsVATPayer && customer.IsVatPayer && !isCustomerInSuppliersCountry)
            {
                return(0);
            }
            else if (isEUSupplierIsVATPayer && isCustomerInSuppliersCountry)
            {
                return(customerCountryVAT);
            }
            return(0);
        }