Beispiel #1
0
        public void Setup()
        {
            //add currency
            var britishCurrency = new Entities.Currencies.Currency
            {
                Name = "British Pound",
                Code = "GBP",
                Format = "£0.00"
            };
            _currencyService.Add(britishCurrency);

            var taxRate = new TaxRate
            {
                Name = "VAT",
                Code = "S",
                Percentage = 20m
            };
            _taxRateManager.Add(taxRate);

            var uk = new Country
            {
                Name = "United Kingdom",
                ISOTwoLetterCode = "GB"
            };
            _countryService.AddCountry(uk);
        }
        public void TaxRateController_AddPOST_CallsITaxRateManagerAddWithPassedTaxRate()
        {
            var taxRate = new TaxRate();

            var add = _taxRateController.Add_POST(taxRate);

            A.CallTo(() => _taxRateManager.Add(taxRate)).MustHaveHappened();
        }
        public void TaxRateController_AddPOST_RedirectsToEditForTheIdOfTheSavedTaxRate()
        {
            var taxRate = new TaxRate { Id = 1 };

            var add = _taxRateController.Add_POST(taxRate);

            add.RouteValues["action"].Should().Be("Edit");
            add.RouteValues["id"].Should().Be(1);
        }
        public void TaxRateManager_Delete_RemovesTheTaxRateFromTheSession()
        {
            var taxRate = new TaxRate();
            Session.Transact(session => session.Save(taxRate));

            _taxRateManager.Delete(taxRate);

            Session.QueryOver<TaxRate>().RowCount().Should().Be(0);
        }
        public void Get_ShouldReturnTaxRate()
        {
            var taxRate = new TaxRate {Percentage = 10, IsDefault = true, Name = "GLOBAL", Code = "GL"};

            Session.Transact(session => session.Save(taxRate));

            TaxRate result = _getDefaultTaxRate.Get();

            result.Should().NotBeNull();
            result.Should().Be(taxRate);
        }
        public void TaxRateManager_Update_UpdatesTheExistingTaxRate()
        {
            var taxRate = new TaxRate();
            Session.Transact(session => session.Save(taxRate));
            taxRate.Name = "Updated";

            _taxRateManager.Update(taxRate);

            Session.Evict(taxRate);
            Session.Get<TaxRate>(1).Name.Should().Be("Updated");
        }
            TaxRateManager_GetDefaultRateForOrderLine_ShouldReturnDefaultTaxRateIfProductVariantTaxRateNotSpecified()
        {
            var taxRate = new TaxRate {Percentage = 10, IsDefault = true, Name = "GLOBAL", Code = "GL"};
            A.CallTo(() => _getDefaultTaxRate.Get()).Returns(taxRate);

            var orderLine = new OrderLine {ProductVariant = new ProductVariant(), SKU = "123"};

            A.CallTo(() => _productVariantService.GetProductVariantBySKU(orderLine.SKU)).Returns(null);

            TaxRate result = _taxRateManager.GetRateForOrderLine(orderLine);

            result.Should().NotBeNull();
            result.Should().Be(taxRate);
        }
Beispiel #8
0
        public string ProcessTaxRates(NopCommerceDataReader dataReader, NopImportContext nopImportContext)
        {
            HashSet<TaxData> taxDatas = dataReader.GetTaxData();

            _session.Transact(session =>
            {
                foreach (TaxData taxData in taxDatas)
                {
                    var taxRate = new TaxRate
                    {
                        Name = taxData.Name,
                        Percentage = taxData.Rate,
                    };
                    session.Save(taxRate);
                    nopImportContext.AddEntry(taxData.Id, taxRate);
                }
            });

            return string.Format("{0} tax rates processed", taxDatas.Count);

        }
        public void ImportProductVariantsService_ImportVariants_ShouldSetProductVariantTaxRate()
        {
            var productVariantDTO = new ProductVariantImportDataTransferObject
                                        {
                                            SKU = "123",
                                            TaxRate = 1
                                        };
            var productDTO = new ProductImportDataTransferObject
                                 {
                                     UrlSegment = "test-url",
                                     ProductVariants = new List<ProductVariantImportDataTransferObject>() { productVariantDTO }
                                 };

            var product = new Product { Name = "Test Product" };

            var taxRate = new TaxRate() { Id = 1, Name = "GLOBAL" };
            A.CallTo(() => _taxRateManager.Get(productVariantDTO.TaxRate.Value)).Returns(taxRate);

            var result = _importProductVariantsService.ImportVariants(productDTO, product);

            result.First().TaxRate.Name.ShouldBeEquivalentTo("GLOBAL");
        }
Beispiel #10
0
        public void SetTaxDetails_SetOrderLinesTaxes_TakesIntoAccountRounding()
        {
            Kernel.SetTaxSettings(true, true);
            var orderLine = new OrderLine() { UnitPrice = 6.51m, Price = 13.02m, Quantity = 2 };
            var order = new Order() { Total = 13.02m,  OrderLines = new List<OrderLine>() { orderLine } };

            var taxRate = new TaxRate() { Percentage = 20 };

            A.CallTo(() => _taxRateManager.GetRateForOrderLine(orderLine)).Returns(taxRate);

            _setTaxes.SetOrderLinesTaxes(ref order);

            order.Tax.Should().Be(2.18m);//decimal.Parse("0,22"));
            order.Total.Should().Be(13.02m);//.Be(decimal.Parse("2,22"));

            order.OrderLines.First().UnitPrice.Should().Be(6.51m); //.Be(decimal.Parse("1,1"));
            order.OrderLines.First().UnitPricePreTax.Should().Be(5.42m);
            order.OrderLines.First().Price.Should().Be(13.02m); //.Be(decimal.Parse("2,2"));
            order.OrderLines.First().PricePreTax.Should().Be(10.84m);
            order.OrderLines.First().Tax.Should().Be(2.18m);//.Be(decimal.Parse("0,22"));
            order.OrderLines.First().TaxRate.Should().Be(20);
        }
Beispiel #11
0
        public void SetTaxDetails_SetOrderLinesTaxes_ShouldSetProperties()
        {
            Kernel.Rebind<TaxSettings>()
                .ToConstant(new TaxSettings {TaxesEnabled = true, LoadedPricesIncludeTax = true});
            var orderLine = new OrderLine() { UnitPrice = 6, Price = 12, Quantity = 2 };
            var order = new Order() { Total = 12, ShippingTotal = 0m, OrderLines = new List<OrderLine>() { orderLine } };

            var taxRate = new TaxRate() {Percentage = 20};

            A.CallTo(() => _taxRateManager.GetRateForOrderLine(orderLine)).Returns(taxRate);

            _setTaxes.SetOrderLinesTaxes(ref order);

            order.Tax.Should().Be(2);//decimal.Parse("0,22"));
            order.Total.Should().Be(12);//.Be(decimal.Parse("2,22"));

            order.OrderLines.First().UnitPrice.Should().Be(6); //.Be(decimal.Parse("1,1"));
            order.OrderLines.First().UnitPricePreTax.Should().Be(5);
            order.OrderLines.First().Price.Should().Be(12); //.Be(decimal.Parse("2,2"));
            order.OrderLines.First().PricePreTax.Should().Be(10);
            order.OrderLines.First().Tax.Should().Be(2);//.Be(decimal.Parse("0,22"));
            order.OrderLines.First().TaxRate.Should().Be(20);
        }
Beispiel #12
0
        public void ProductVariant_TaxRatePercentage_TaxesEnabledIsTakenFromTheTaxRatesPercentage(TaxRate rate,
            decimal expected)
        {
            Kernel.SetTaxSettings(true);
            var productVariant = new ProductVariant {TaxRate = rate};

            productVariant.TaxRatePercentage.Should().Be(expected);
        }
Beispiel #13
0
 public void Delete(TaxRate taxRate)
 {
     _session.Transact(session => session.Delete(taxRate));
 }
Beispiel #14
0
 public void Update(TaxRate taxRate)
 {
     _session.Transact(session => session.Update(taxRate));
 }
Beispiel #15
0
 public void Add(TaxRate taxRate)
 {
     if (!GetAll().Any())
         taxRate.IsDefault = true;
     _session.Transact(session => session.Save(taxRate));
 }
Beispiel #16
0
 public List<SelectListItem> GetOptions(TaxRate taxRate)
 {
     return GetOptions(taxRate == null ? (int?) null : taxRate.Id);
 }
Beispiel #17
0
        public void TaxRateManager_GetDefaultRateForOrderLine_ShouldReturnTaxRate()
        {
            var taxRate = new TaxRate {Percentage = 10, IsDefault = true, Name = "GLOBAL", Code = "GL"};
            var taxRate2 = new TaxRate {Percentage = 50, IsDefault = false, Name = "UK", Code = "UK"};

            _taxRateManager.Add(taxRate);
            _taxRateManager.Add(taxRate2);

            var pv = new ProductVariant {TaxRate = taxRate2};
            var orderLine = new OrderLine {ProductVariant = pv, SKU = "123"};

            A.CallTo(() => _productVariantService.GetProductVariantBySKU(orderLine.SKU)).Returns(pv);

            TaxRate result = _taxRateManager.GetRateForOrderLine(orderLine);

            result.Should().NotBeNull();
            result.Should().Be(taxRate2);
        }
        public void TaxRateController_Edit_ShouldReturnPassedTaxRate()
        {
            var taxRate = new TaxRate();

            var edit = _taxRateController.Edit(taxRate);

            edit.Model.Should().Be(taxRate);
        }
        public void TaxRateController_EditPOST_ShouldCallITaxManagerUpdate()
        {
            var taxRate = new TaxRate();

            var editPost = _taxRateController.Edit_POST(taxRate);

            A.CallTo(() => _taxRateManager.Update(taxRate)).MustHaveHappened();
        }
        public void TaxRateController_EditPOST_RedirectsToIndex()
        {
            var taxRate = new TaxRate { Id = 1 };

            var add = _taxRateController.Edit_POST(taxRate);

            add.RouteValues["action"].Should().Be("Index");
        }
Beispiel #21
0
        public void SetTaxDetails_SetShippingTaxes_ShouldSetProperties()
        {
            Kernel.SetTaxSettings(true, shippingTaxesEnabled: true, shippingPricesIncludeTax: true);
            var order = new Order() { ShippingTotal = 3};

            var taxRate = new TaxRate() { Percentage = 50 };

            A.CallTo(() => _taxRateManager.GetDefaultRate()).Returns(taxRate);

            _setTaxes.SetShippingTaxes(ref order);

            order.ShippingTax.Should().Be(1);
            order.ShippingTaxPercentage.Should().Be(50);
            order.ShippingTotal.Should().Be(3);
        }
Beispiel #22
0
        public void ProductVariant_TaxRatePercentage_TaxesDisabledIsZero(TaxRate rate, decimal expected)
        {
            Kernel.SetTaxSettings(false);
            var productVariant = new ProductVariant {TaxRate = rate};

            productVariant.TaxRatePercentage.Should().Be(0);
        }
        public void TaxRateController_Delete_ShouldReturnPassedTaxRateAsModel()
        {
            var taxRate = new TaxRate();

            var delete = _taxRateController.Delete(taxRate);

            delete.Model.Should().Be(taxRate);
        }
        public void TaxRateController_DeletePOST_ShouldCallDeleteForThePassedTaxRate()
        {
            var taxRate = new TaxRate();

            var delete = _taxRateController.Delete_POST(taxRate);

            A.CallTo(() => _taxRateManager.Delete(taxRate)).MustHaveHappened();
        }
        public void TaxRateController_DeletePOST_ShouldRedirectToIndex()
        {
            var taxRate = new TaxRate();

            var delete = _taxRateController.Delete_POST(taxRate);

            delete.RouteValues["action"].Should().Be("Index");
        }