Example #1
0
        public void DoubleDiscountAfterLunchStrategy_WhenBefore12_ThenSingleDiscount()
        {
            // Arrange
            var timeSourceMock = new Mock <ITimeSource>();

            timeSourceMock.Setup(x => x.Now).Returns(new DateTime(2018, 1, 1, 11, 59, 59));

            var doubleDiscountAfterLunchStrategy = new DoubleDiscountAfterLunchStrategy(timeSourceMock.Object, 10m);

            // Act
            var result = new Sale(100, doubleDiscountAfterLunchStrategy).GetTotal();

            timeSourceMock.Verify(x => x.Now, Times.Once);
            result.Should().Be(90);
        }
Example #2
0
        public void DoubleDiscountAfterLunchStrategy_WhenAfter12_ThenDoubleDiscount()
        {
            // Arrange
            var timeSourceMock = new Mock <ITimeSource>();

            timeSourceMock.Setup(x => x.Now).Returns(new System.DateTime(2018, 1, 1, 12, 01, 00));

            var doubleDiscountAfterLunchStrategy = new DoubleDiscountAfterLunchStrategy(timeSourceMock.Object, 10m);

            // Act
            var result = new Sale(100, doubleDiscountAfterLunchStrategy).GetTotal();

            // Assert
            timeSourceMock.Verify(x => x.Now, Times.Once);
            result.Should().Be(80);
        }