Exemplo n.º 1
0
        public void TestDifferentValues()
        {
            ITaxSettings settings =
                new DictionaryTaxSettings("{\"10000\":\"0.1\",\"20000\":\"0.2\",\"1000000\":\"0.3\"}");
            ITaxCalculation calc   = new ProgressiveTaxCalculation();
            var             value1 = calc.Calculate(20000, settings);
            var             value2 = calc.Calculate(25000, settings);

            Assert.AreEqual(value1, 3000, "Calculation error");
            Assert.AreEqual(value2, 4500, "Calculation error");
        }
        public (ITaxCalculation calculator, ITaxSettings settings) GetCalculator(string postalCode)
        {
            var map = _context.CalculatorMappings.FirstOrDefault(m => m.PostalCode == postalCode);

            if (map == null)
            {
                throw new CalculationException("Unknown postal code, please first add that postal code");
            }
            var             objectType = Type.GetType(map.ClassName);
            ITaxCalculation obj        = (ITaxCalculation)Activator.CreateInstance(objectType);

            var settings = new DictionaryTaxSettings(map.Settings);

            return(calculator : obj, settings : settings);
        }