public void BelowCutoffAndAfterClose() { var bonusCalculator = new StandardBonusCalculator(); var bonus = bonusCalculator.CalculateBonusUsingStandardAlgorithm(9999, 100); Assert.Equal(0M, bonus); }
public void DepositsUnderLimitGetNoBonus() { ICalculateBankAccountBonuses bonusCalculator = new StandardBonusCalculator(); var bonus = bonusCalculator.GetDepositBonusFor(4999.99M, 100); Assert.Equal(0, bonus); }
public void DepositsAtOrOverLimitReceiveBonus() { ICalculateBankAccountBonuses bonusCalculator = new StandardBonusCalculator(); var bonus = bonusCalculator.GetDepositBonusFor(5000, 100); Assert.Equal(10, bonus); }
public void BonusAfterCutoff() { var cutoffClockStub = new Mock <IProvideTheCutoffClock>(); cutoffClockStub.Setup(c => c.BeforeCutoff()).Returns(false); var calculator = new StandardBonusCalculator(cutoffClockStub.Object); var bonus = calculator.GetDepositFor(1000, 100); Assert.Equal(8, bonus); }
public void AboveCutoffAndAfterClose() { var stubbedSystemTime = new Mock <ISystemTime>(); var bonusCalculator = new StandardBonusCalculator(stubbedSystemTime.Object); stubbedSystemTime.Setup(t => t.GetCurrent()).Returns(new DateTime(2020, 4, 20, 17, 00, 00)); var bonus = bonusCalculator.CalculateBonusUsingStandardAlgorithm(10001, 100); Assert.Equal(5M, bonus); }
public void BelowCutoffAfterClose() { var fakeSystemTime = new Mock <ISystemTime>(); var bonusCalculator = new StandardBonusCalculator(fakeSystemTime.Object); fakeSystemTime.Setup(f => f.GetCurrent()).Returns(new DateTime(2020, 4, 20, 13, 01, 00)); var bonus = bonusCalculator.CalculateBonusUsingStandardAlgorithm(999, 100); Assert.Equal(0, bonus); }
public void AboveCutoffAndBeforeClose() { var fakeSystemTime = new Mock <ISystemTime>(); var bonusCalculator = new StandardBonusCalculator(fakeSystemTime.Object); fakeSystemTime.Setup(f => f.GetCurrent()).Returns(new DateTime(2020, 4, 20, 13, 59, 59)); var bonus = bonusCalculator.CalculateBonusUsingStandardAlgorithm(10001, 100); Assert.Equal(10M, bonus); }
public void DepositsMadeBeforeEOBGetFivePercent() { var clock = new Mock <ISystemTime>(); clock.Setup(c => c.GetCurrent()).Returns(new DateTime(1969, 4, 20, 17, 00, 00)); ICalculateBonuses calculator = new StandardBonusCalculator(clock.Object); decimal bonus = calculator.CalculateTheBonusFor(100, 7000); Assert.Equal(5M, bonus); }
public void AboveCutoffAndBeforeClose() { // This test will pass before 5:pm and fail after // var bonusCalculator = new TestingBonusCalculator(isBeforeCutoff: true); var fakeSystemTime = new Mock <ISystemTime>(); var bonusCalculator = new StandardBonusCalculator(fakeSystemTime.Object); fakeSystemTime.Setup(f => f.GetCurrent()).Returns(new DateTime(2020, 4, 20, 13, 59, 59)); var bonus = bonusCalculator.CalculateBonusUsingStandardAlgorithm(10001, 100); Assert.Equal(10M, bonus); }
public void BelowCutoffAfterClose() { // var bonusCalculator = new TestingBonusCalculator(false); var fakeSystemTime = new Mock <ISystemTime>(); var bonusCalculator = new StandardBonusCalculator(fakeSystemTime.Object); fakeSystemTime.Setup(f => f.GetCurrent()).Returns(new DateTime(2020, 4, 20, 13, 01, 00)); var bonus = bonusCalculator.CalculateBonusUsingStandardAlgorithm(999, 100); Assert.Equal(0, bonus); // simulating really creating the account // ICalculateAccountBonuses c2 = new StandardBonusCalculator(); }