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); }
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); }