public void GivenThatAnnualSalaryIsSixtyThousand_WhenIncomeTaxIsCalculated_ThenIncomeTaxIsNineHundredAndTwentyOne()
        {
            var taxBrackets = new List <TaxBracket> {
                new TaxBracket(37001, 87000, 37000, 0.325, 3572)
            };
            var       nzTaxRateSchedule = new NzTaxRateSchedule(taxBrackets);
            const int annualSalary      = 60000;

            const int expectedIncomeTax = 921;
            var       actualIncomeTax   = nzTaxRateSchedule.GetIncomeTax(annualSalary);

            Assert.Equal(expectedIncomeTax, actualIncomeTax);
        }
        public void GivenThatAnnualSalaryIsNinetyThousand_WhenIncomeTaxIsCalculated_ThenIncomeTaxIsOneThousandFortyFour()
        {
            var taxRateSchedules = new List <TaxBracket> {
                new TaxBracket(87001, 180000, 87000, 0.37, 19822)
            };
            var       nzTaxRateSchedule = new NzTaxRateSchedule(taxRateSchedules);
            const int annualSalary      = 90000;

            const int expectedIncomeTax = 1744;
            var       actualIncomeTax   = nzTaxRateSchedule.GetIncomeTax(annualSalary);

            Assert.Equal(expectedIncomeTax, actualIncomeTax);
        }
Beispiel #3
0
        public void CreateAPaySlipForAnEmployee()
        {
            var employee    = new Employee("John", "Doe", new SalaryDetails(60050, 9));
            var taxBrackets = new List <TaxBracket> {
                new TaxBracket(37001, 87000, 37000, 0.325, 3572)
            };

            var nzTaxRateSchedule = new NzTaxRateSchedule(taxBrackets);
            var empPaySlip        = employee.GetMonthlyPaySlip("1 March", "31 March", nzTaxRateSchedule);

            Assert.Equal("John Doe", empPaySlip.FullName);
            Assert.Equal("01 March - 31 March", empPaySlip.PaymentPeriod);
            Assert.Equal(5004, empPaySlip.GrossIncome);
            Assert.Equal(922, empPaySlip.IncomeTax);
            Assert.Equal(4082, empPaySlip.NetIncome);
            Assert.Equal(450, empPaySlip.Super);
        }
Beispiel #4
0
        public void CreateAPaySlipForAnotherEmployee()
        {
            var employee    = new Employee("Joe", "Smith", new SalaryDetails(18000, 3));
            var taxBrackets = new List <TaxBracket> {
                new TaxBracket(0, 18200, 0, 0, 0)
            };

            var nzTaxRateSchedule = new NzTaxRateSchedule(taxBrackets);
            var empPaySlip        = employee.GetMonthlyPaySlip("1 August", "31 August", nzTaxRateSchedule);

            Assert.Equal("Joe Smith", empPaySlip.FullName);
            Assert.Equal("01 August - 31 August", empPaySlip.PaymentPeriod);
            Assert.Equal(1500, empPaySlip.GrossIncome);
            Assert.Equal(0, empPaySlip.IncomeTax);
            Assert.Equal(1500, empPaySlip.NetIncome);
            Assert.Equal(45, empPaySlip.Super);
        }