public void HandleRequest_ShouldDecreasePremiumByTenPercentIfAnyAccountants() { // Setup dependencies var policy = new InsurancePolicy { Drivers = new List <InsurancePolicyDriver> { new InsurancePolicyDriver { Occupation = new RefOccupation { Code = Occupation.Accountant.Description() } }, new InsurancePolicyDriver { Occupation = new RefOccupation { Code = Occupation.Accountant.Description() } } } }; // Call HandleRequest var returnedPremium = new InsurancePremiumCalculationOccupationHandler() .HandleRequest(policy, 100); // Verify result Assert.AreEqual((double)90, Math.Round(returnedPremium, 2)); }
public void HandleRequest_ShouldCallSuccessor() { // Setup dependencies var policy = new InsurancePolicy(); var testHandler = new TestHandler() .WithReturnValue(456); var handler = new InsurancePremiumCalculationOccupationHandler(); handler.SetSuccessor(testHandler); // Call HandleRequest var returnedPremium = handler.HandleRequest(policy, 100); // Verify result Assert.AreEqual(456, returnedPremium); }
public void HandleRequest_ShouldReturnPremiumIfNoDriversWithSearchedForApplications() { // Setup dependencies var policy = new InsurancePolicy { Drivers = new List <InsurancePolicyDriver> { new InsurancePolicyDriver { Occupation = new RefOccupation { Code = "ANOTHER_JOB" } } } }; // Call HandleRequest var returnedPremium = new InsurancePremiumCalculationOccupationHandler() .HandleRequest(policy, 789); // Verify result Assert.AreEqual((double)789, returnedPremium); }