public void GetLayoutValue_WhenCacheReturnsVaue_ReturnsThatValueAndeDoesNotCallInnerProvider() { // Arrange var layoutValue = "this is my layout value"; var innerProvider = Substitute.For <IBaseLayoutValueProvider>(); var cache = Substitute.For <IBaseLayoutValueCache>(); cache.GetLayoutValue(Arg.Any <Item>()).Returns(layoutValue); var provider = new CachedBaseLayoutValueProvider(innerProvider, cache); var item = MasterFakesFactory.CreateFakeItem(); // Act var result = provider.GetBaseLayoutValue(item); // Assert Assert.Equal(layoutValue, result); innerProvider.DidNotReceive().GetBaseLayoutValue(Arg.Any <Item>()); }
public void GetLayoutValue_WhenCacheReturnsNullAndInnerProviderReturnsNull_DoesNotAddToCacheAndReturnsNull() { // Arrange var innerProvider = Substitute.For <IBaseLayoutValueProvider>(); innerProvider.GetBaseLayoutValue(Arg.Any <Item>()).Returns((string)null); var cache = Substitute.For <IBaseLayoutValueCache>(); cache.GetLayoutValue(Arg.Any <Item>()).Returns((string)null); var provider = new CachedBaseLayoutValueProvider(innerProvider, cache); var item = MasterFakesFactory.CreateFakeItem(); // Act var result = provider.GetBaseLayoutValue(item); // Assert Assert.Null(result); cache.DidNotReceive().AddLayoutValue(Arg.Any <Item>(), Arg.Any <string>()); }
public void GetLayoutValue_WhenCacheReturnsNullAndInnerProviderReturnsValue_AddsResultToCacheAndReturnsIt() { // Arrange var layoutValue = "this is my layout value"; var innerProvider = Substitute.For <IBaseLayoutValueProvider>(); innerProvider.GetBaseLayoutValue(Arg.Any <Item>()).Returns(layoutValue); var cache = Substitute.For <IBaseLayoutValueCache>(); cache.GetLayoutValue(Arg.Any <Item>()).Returns((string)null); var provider = new CachedBaseLayoutValueProvider(innerProvider, cache); var item = MasterFakesFactory.CreateFakeItem(); // Act var result = provider.GetBaseLayoutValue(item); // Assert Assert.Equal(layoutValue, result); cache.Received().AddLayoutValue(item, layoutValue); }