public void GetOrCreateAndGet_CacheItemIsAdded_CacheReturnsItem() { //Arrange var testee = _container.Resolve <IMemoryCache <CacheItem1> >(); _cacheSettings.LifeTimeInSeconds = 10; var cacheItem = new CacheItem1(); //Act var result = testee.GetOrCreateAndGet("key1", s => cacheItem); //Assert result.Should().Be(cacheItem); }
public void Get_CacheItemIsAdded_CacheReturnsItem() { //Arrange var testee = _container.Resolve <IMemoryCache <CacheItem1> >(); _cacheSettings.LifeTimeInSeconds = 10; var cacheItem = new CacheItem1(); testee.Add("key1", cacheItem); //Act var result = testee.Get("key1"); //Assert result.IsSome.Should().BeTrue(); result.Value.Should().Be(cacheItem); }
public void Get_CacheItemIsAddedInDifferentInstancesForTheSameKey_CacheReturnsLatestAddedItem() { //Arrange _cacheSettings.LifeTimeInSeconds = 10; var testee1 = _container.Resolve <IMemoryCache <CacheItem1> >(); var cacheItem1 = new CacheItem1(); testee1.Add("key1", cacheItem1); var cacheItem2 = new CacheItem1(); testee1.Add("key1", cacheItem2); //Act var resultCacheItem1 = testee1.Get("key1"); //Assert resultCacheItem1.IsSome.Should().BeTrue(); resultCacheItem1.Value.Should().NotBe(cacheItem1); resultCacheItem1.Value.Should().Be(cacheItem2); }
public void Get_TheSameCacheItemIsAddedTwiceForDifferentKey_CacheReturnsItem() { //Arrange var testee = _container.Resolve <IMemoryCache <CacheItem1> >(); _cacheSettings.LifeTimeInSeconds = 10; var cacheItem = new CacheItem1(); testee.Add("key1", cacheItem); testee.Add("key2", cacheItem); //Act var result1 = testee.Get("key1"); var result2 = testee.Get("key2"); //Assert result1.IsSome.Should().BeTrue(); result1.Value.Should().Be(cacheItem); result2.IsSome.Should().BeTrue(); result2.Value.Should().Be(cacheItem); result1.Should().Be(result2); }
public void GetOrCreateAndGet_CacheItemIsExpired_CacheReturnsItem() { //Arrange var testee = _container.Resolve <IMemoryCache <CacheItem1> >(); _cacheSettings.LifeTimeInSeconds = 0; var cacheItem = new CacheItem1(); testee.Add("key1", cacheItem); var isCreatedByFactoryMethod = false; //Act var result = testee.GetOrCreateAndGet("key1", s => { isCreatedByFactoryMethod = true; return(new CacheItem1()); }); //Assert result.Should().NotBe(cacheItem); isCreatedByFactoryMethod.Should().BeTrue(); }