public void DuplicatePolicyAdded() { var instance = new AnnualIncomeTaxManager<Decimal>(); var algorithm = new MockRepository().Stub<IRangeOverlapAlgorithm<Decimal>>(); var policy1 = new RangeTaxPolicy<Decimal>(algorithm, Decimal.Zero, 5070M, 0.1M); instance.AddPolicy(policy1); Assert.Throws<ArgumentException>(() => instance.AddPolicy(policy1)); }
public void Calculation() { var instance = new AnnualIncomeTaxManager<Decimal>(); var algorithm = new DefaultRangeOverlapAlgorithm<Decimal>(); instance.AddPolicy(new RangeTaxPolicy<Decimal>(algorithm, Decimal.Zero, 5070M, 0.1M)); instance.AddPolicy(new RangeTaxPolicy<Decimal>(algorithm, 5070M, 8660M, 0.14M)); instance.AddPolicy(new RangeTaxPolicy<Decimal>(algorithm, 8660M, 14070M, 0.23M)); instance.AddPolicy(new RangeTaxPolicy<Decimal>(algorithm, 14070M, 21240M, 0.3M)); instance.AddPolicy(new RangeTaxPolicy<Decimal>(algorithm, 21240M, 40230M, 0.33M)); instance.AddPolicy(new RangeTaxPolicy<Decimal>(algorithm, 40230M, Decimal.MaxValue, 0.45M)); Assert.Equal(500M, instance.CalculateDuty(5000M)); Assert.Equal(609.2M, instance.CalculateDuty(5800M)); Assert.Equal(1087.8M, instance.CalculateDuty(9000M)); Assert.Equal(2532.9M, instance.CalculateDuty(15000M)); Assert.Equal(15068.1M, instance.CalculateDuty(50000M)); }
public void NullPolicyAdded() { var instance = new AnnualIncomeTaxManager<Decimal>(); Assert.Throws<ArgumentNullException>(() => instance.AddPolicy(null)); }