public void GetShippingStatus_ResultExistsInCache_ReturnsTheResult() { // arrange Mock <ObjectCache> mockCache = new Mock <ObjectCache>(); mockCache.Setup(c => c["statusForOrder#12"]).Returns(ShippingStatus.OutForDelivery); ShippingService sut = new ShippingService(null, null, null, mockCache.Object); // act ShippingStatus actual = sut.GetShippingStatus(12); // assert Assert.AreEqual(ShippingStatus.OutForDelivery, actual); mockCache.Verify(c => c["statusForOrder#12"], Times.Once()); }
public void GetShippingStatus_ResultNotExistsInCache_FetchesTheResultFromDatabase() { // arrange Mock <ObjectCache> mockCache = new Mock <ObjectCache>(); Mock <IShippingInfoRepository> mockShippingRepo = new Mock <IShippingInfoRepository>(); mockShippingRepo.Setup(r => r.GetShippingStatus(It.Is <int>(i => i == 210))).Returns(ShippingStatus.InTransit); ShippingService sut = new ShippingService(null, mockShippingRepo.Object, null, mockCache.Object); // act ShippingStatus actual = sut.GetShippingStatus(210); // assert Assert.AreEqual(ShippingStatus.InTransit, actual); mockCache.Verify(c => c["statusForOrder#210"], Times.Once()); }