예제 #1
0
        public void GivenEmployeeInformationCalculateCalculationInformationAndCompileStrings()
        {
            var listEmployees = new List <Employee>();

            var employee = new Employee
            {
                FirstName = "David",
                LastName  = "Rudd",
                Salary    = 60050M,
                PayRate   = 9M,
                PayPeriod = "01 March – 31 March"
            };

            listEmployees.Add(employee);

            var payslipBuilder = new PayslipBuilder();

            var employeePayslip = payslipBuilder.BuildPayslip(listEmployees);

            Assert.Equal("David Rudd", employeePayslip[0].FullName);
            Assert.Equal("01 March – 31 March", employeePayslip[0].PayPeriod);
            Assert.Equal(5004M, employeePayslip[0].GrossIncome);
            Assert.Equal(922M, employeePayslip[0].IncomeTax);
            Assert.Equal(4082M, employeePayslip[0].NetIncome);
            Assert.Equal(450M, employeePayslip[0].SuperAmount);
        }
예제 #2
0
파일: Program.cs 프로젝트: bennnym/Myob.Fma
        static void Main(string[] args)
        {
            var firstNameInput = StandardMessage.CaptureData("first name");
            var surnameInput   = StandardMessage.CaptureData("surname");

            var annualSalaryInput = StandardMessage.CaptureData("annual salary");

            var superRateInput = StandardMessage.CaptureData("super rate");

            var startDate = StandardMessage.CaptureData("payment start date");
            var endDate   = StandardMessage.CaptureData("payment end date");

            var bracket1 = TaxBracket.Generate(0M, 18200M, 0M, 0M);
            var bracket2 = TaxBracket.Generate(18201M, 37000M, 0M, 0.325M);
            var bracket3 = TaxBracket.Generate(37001M, 87000M, 3572M, 0.325M);
            var bracket4 = TaxBracket.Generate(87001M, 180000M, 19822M, 0.37M);
            var bracket5 = TaxBracket.Generate(180000M, Int32.MaxValue, 54232M, 0.45M);

            var taxTable = TaxTable.Build(bracket1, bracket2, bracket3, bracket4, bracket5);

            EmployeeDetails employeeDetails = EmployeeDetails.ConstructFullName(firstNameInput, surnameInput);

            PayPeriod payPeriod = PayPeriod.Generate(startDate, endDate);

            GrossIncome grossIncome = GrossIncome.Generate(annualSalaryInput, payPeriod);
            IncomeTax   incomeTax   = IncomeTax.Generate(taxTable, grossIncome, payPeriod);
            NetIncome   netIncome   = NetIncome.Generate(grossIncome, incomeTax);

            Super super = Super.Generate(superRateInput, grossIncome);

            var paySlip = PaySlip.Create(
                employeeDetails,
                payPeriod,
                grossIncome,
                incomeTax,
                netIncome,
                super
                );

            var payslipOutput = PayslipBuilder.Print(paySlip);

            Console.WriteLine(payslipOutput);
//
        }