public void verify_deduction_calculation_calls_are_made()
        {
            // Arrange
            var testEmployee = new Employee()
            {
                Name = "Employee", YearlySalary = 10000, NumberOfPaychecksPerYear = 10
            };

            var deductionCalculator = A.Fake <IDeductionCalculator>();
            var objectUnderTest     = new DeductionCalculationService(deductionCalculator);

            // Act
            var calculationResults = objectUnderTest.CalculateDeductions(testEmployee);

            // Assert
            A.CallTo(() => deductionCalculator.CalculateDeductionPerPaycheck(A <List <Entities.Person> > ._, A <int> ._)).MustHaveHappened();
            A.CallTo(() => deductionCalculator.CalculateDeductionPerAnnum(A <List <Entities.Person> > ._)).MustHaveHappened();
        }
        public void verify_employee_paycheck_after_deduction_calculation()
        {
            // Arrange
            var testEmployee = new Employee()
            {
                Name = "Employee", YearlySalary = 10000, NumberOfPaychecksPerYear = 10
            };

            var deductionCalculator = A.Fake <IDeductionCalculator>();

            A.CallTo(() => deductionCalculator.CalculateDeductionPerPaycheck(A <List <Entities.Person> > ._, A <int> ._)).Returns(100);

            var objectUnderTest = new DeductionCalculationService(deductionCalculator);

            // Act
            var calculationResults = objectUnderTest.CalculateDeductions(testEmployee);

            // Assert
            var expectedPaycheckAfterDeduction = 1000 - 100;

            Assert.IsTrue(expectedPaycheckAfterDeduction == calculationResults.EmployeePaycheckAfterDeductions);
        }