/// <summary>
 /// Initializes a new instance of the <see cref="PaySlip"/> class.
 /// </summary>
 /// <param name="employee">The employee.</param>
 /// <param name="salaryperiod">The salaryperiod.</param>
 /// <param name="grossIncome">The gross income.</param>
 /// <param name="incomeTax">The income tax.</param>
 /// <param name="superRate">The super rate.</param>
 public PaySlip(Employee employee, SalarySlipPeriod salaryperiod, Amount grossIncome, Amount incomeTax, Amount superRate)
 {
     this.Employee     = employee;
     this.SalaryPeriod = salaryperiod;
     this.GrossIncome  = grossIncome;
     this.IncomeTax    = incomeTax;
     this.SuperValue   = GrossIncome * Amount.Percentage(superRate);
 }
 /// <summary>
 /// Gets the pay slip.
 /// </summary>
 /// <param name="employeeSalary">The employee salary.</param>
 /// <param name="incomeTax">The income tax.</param>
 /// <param name="paymentStarPeriod">The payment star period.</param>
 /// <returns></returns>
 public PaySlip GetPaySlip(EmployeeSalary employeeSalary, IncomeTax incomeTax, SalarySlipPeriod paymentStarPeriod)
 {
     return(new PaySlip(
                employeeSalary.Employee,
                paymentStarPeriod,
                employeeSalary.AnualSalary / Month,
                incomeTax.Tax / Month,
                employeeSalary.SuperRate
                ));
 }
        public void SalarySlipPeriod_ToString_Test()
        {
            var result = new SalarySlipPeriod("01 March - 31 March");

            Assert.IsTrue(result.ToString().CompareTo("01 March - 31 March") == 0);
        }
 public void SalarySlipPeriod_InvalidDate_Test2()
 {
     var result = new SalarySlipPeriod("31Test");
 }
 public void SalarySlipPeriod_InvalidOperationException_Test2()
 {
     var result = new SalarySlipPeriod("31 Feb- 31 Feb");
 }
 public void SalarySlipPeriod_ArugumentNullException_Test()
 {
     var result = new SalarySlipPeriod(string.Empty);
 }
        public void SalarySlipPeriod_DateMonthDateMonth_Format_Test()
        {
            var result = new SalarySlipPeriod("01 March - 31 March");

            Assert.IsNotNull(result);
        }