Пример #1
0
        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);
        }
Пример #4
0
        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);
        }
Пример #5
0
        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);
        }
Пример #8
0
        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);
        }
Пример #9
0
        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);
        }
Пример #10
0
        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();
        }