public void Calculate_DescendingSortByPolicyNumbersIsSpecifiedInSettings_PoliciesAreSortedByDecendingOrderOfPolicyNumbers() { // Arrange var input = CreateCalculationInputWith3Policies(); input.Settings.PolicySorter = new DescendingOrderOfPoliciesNumber(); var facebookBonusCalculator = new FacebookBonusCalculator(); // Act var facebookBonus = facebookBonusCalculator.Calculate(input); // Assert Assert.That(facebookBonus.PolicyBonuses, Is.Ordered.Descending.By(nameof(PolicyBonus.PolicyNumber))); }
public void Calculate_BonusLimitIsSpecifiedInFacebookBonusSettings_TotalPointsShouldNotExceedTheLimit() { // Arrange var input = CreateCalculationInputWith3Policies(); var facebookBonusCalculator = new FacebookBonusCalculator(); const int maxiumBonus = 10; // Act var facebookBonus = facebookBonusCalculator.Calculate(input); // Assert int totalPoint = facebookBonus.Total; Assert.That(totalPoint, Is.LessThanOrEqualTo(maxiumBonus)); }
public void Calculate_GivenIncentivePoints_IncentivePointsAreRoundedDownToTheNearestInteger() { // Arrange var input = CreateCalculationInputWithSinglePolicy(premium: 133, percentage: 3); var facebookBonusCalculator = new FacebookBonusCalculator(); const int expectedBonusPoint = 3; // Act var facebookBonus = facebookBonusCalculator.Calculate(input); // Assert var actualBonusPoint = facebookBonus.PolicyBonuses[0].BonusInPoints; Assert.That(actualBonusPoint, Is.EqualTo(expectedBonusPoint)); }
public void Calculate_GivenPremiumAndPercentage_IncentivePointsArePercentageOfPolicyPremium() { // Arrange var input = CreateCalculationInputWithSinglePolicy(premium: 200, percentage: 3); var facebookBonusCalculator = new FacebookBonusCalculator(); const int expectedIncentivePoint = 6; // Act var facebookBonus = facebookBonusCalculator.Calculate(input); // Assert int actualBonusPoint = facebookBonus.PolicyBonuses[0].BonusInPoints; Assert.That(actualBonusPoint, Is.EqualTo(expectedIncentivePoint)); }
public void Calculate_GivenCustomerPolicies_InctivePointsAreCalculatedForEachPolicy() { // Arrange var input = CreateCalculationInputWith3Policies(); var facebookBonusCalculator = new FacebookBonusCalculator(); const int expectedFirstPolicyBonus = 6; const int expectedSecondPolicyBonus = 3; // Act var facebookBonus = facebookBonusCalculator.Calculate(input); // Assert int actualFirstPolicyPoint = facebookBonus.PolicyBonuses[0].BonusInPoints; int actualSecondPolicyPoint = facebookBonus.PolicyBonuses[1].BonusInPoints; Assert.That(actualFirstPolicyPoint, Is.EqualTo(expectedFirstPolicyBonus)); Assert.That(actualSecondPolicyPoint, Is.EqualTo(expectedSecondPolicyBonus)); }
public void FacebookBonus_BonusInPointLargerThanMaximumBonus_Total() { FacebookBonusCalculator facebookBonusCalculator = new FacebookBonusCalculator(); var output = facebookBonusCalculator.Calculate(Initialize.GetListSortingByDate()); PolicyBonus policyBonus1 = new PolicyBonus { PolicyNumber = "P001", BonusInPoints = 6 }; PolicyBonus policyBonus2 = new PolicyBonus { PolicyNumber = "P002", BonusInPoints = 4 }; PolicyBonus[] policyBonuses = new PolicyBonus[] { policyBonus1, policyBonus2 }; FacebookBonus expected = new FacebookBonus { PolicyBonuses = policyBonuses }; NUnit.Framework.Assert.AreEqual(expected.Total, output.Total); }
public void FacebookBonus_BonusInPointSmallerThanMaximumBonus_ListPolicyBonus() { FacebookBonusCalculator facebookBonusCalculator = new FacebookBonusCalculator(); var output = facebookBonusCalculator.Calculate(Initialize.GetListSortingByDateWithSmallBonusOfPoint()); PolicyBonus policyBonus1 = new PolicyBonus { PolicyNumber = "P001", BonusInPoints = 6 }; PolicyBonus policyBonus2 = new PolicyBonus { PolicyNumber = "P002", BonusInPoints = 3 }; PolicyBonus[] policyBonuses = new PolicyBonus[] { policyBonus1, policyBonus2 }; FacebookBonus expected = new FacebookBonus { PolicyBonuses = policyBonuses }; NUnit.Framework.Assert.AreEqual(expected.ToString(), output.ToString()); }
public void Calculate_BonusLimitIsSpecifiedInFacebookBonusSettings_BonusPointsAreDistributedCorrectly() { // Arrange var input = CreateCalculationInputWith3Policies(); var facebookBonusCalculator = new FacebookBonusCalculator(); const int expecctedFirstBonusPoints = 6; const int expecctedSecondBonusPoints = 3; const int expecctedThirdBonusPoints = 1; // Act var facebookBonus = facebookBonusCalculator.Calculate(input); // Assert var actualFirstBonusPoints = facebookBonus.PolicyBonuses[0].BonusInPoints; var actualSecondBonusPoints = facebookBonus.PolicyBonuses[1].BonusInPoints; var actualThirdBonusPoints = facebookBonus.PolicyBonuses[2].BonusInPoints; Assert.That(actualFirstBonusPoints, Is.EqualTo(expecctedFirstBonusPoints)); Assert.That(actualSecondBonusPoints, Is.EqualTo(expecctedSecondBonusPoints)); Assert.That(actualThirdBonusPoints, Is.EqualTo(expecctedThirdBonusPoints)); }