public void GetOrAddSimpleTest() { _itemPolicyMock.Setup(x => x.Create<One>()).Returns(new CacheItemPolicy()).Verifiable(); var cacher = new MemoryCacher<One>(_itemPolicyMock.Object, _objectCacheFactory.Object, typeof (One).Name); var exp = new One(); var key = "1sdrsdhsdrhsdr"; Func<string, One> valueFactory = s => { Assert.AreEqual(key, s); return exp; }; _objectCacheFactory.Setup(x => x.Create()).Returns(MemoryCache.Default).Verifiable(); var actual1 = cacher.GetOrAdd(key, valueFactory); var actual2 = cacher.GetOrAdd(key, s => { Assert.Fail("Дважды вызвана фабрика"); return null; }); Assert.AreEqual(exp, actual1); Assert.AreEqual(exp, actual2); Assert.AreEqual(actual1, actual2); }
public void GetOrAddWithDifferentInstanceNullValue() { _itemPolicyMock.Setup(x => x.Create<One>()).Returns(new CacheItemPolicy()).Verifiable(); var cacher1 = new MemoryCacher<One>(_itemPolicyMock.Object, _objectCacheFactory.Object, typeof (One).Name); var cacher2 = new MemoryCacher<One>(_itemPolicyMock.Object, _objectCacheFactory.Object, typeof (One).Name); var key = "1sdrsdsdrgsdrgsrdghdfhfgjkghklhsdrhsdr"; Func<string, One> valueFactory = s => { Assert.AreEqual(key, s); return null; }; _objectCacheFactory.Setup(x => x.Create()).Returns(MemoryCache.Default).Verifiable(); var actual1 = cacher1.GetOrAdd(key, valueFactory); var actual2 = cacher2.GetOrAdd(key, s => { Assert.Fail("Дважды вызвана фабрика"); return null; }); Assert.IsNull(actual1); Assert.IsNull(actual2); }
public void GetOrAddWithNullTest() { _itemPolicyMock.Setup(x => x.Create<One>()).Returns(new CacheItemPolicy()).Verifiable(); var cacher = new MemoryCacher<One>(_itemPolicyMock.Object, _objectCacheFactory.Object, typeof (One).Name); Func<string, One> valueFactory = s => null; const string key = "100sfgsdgrsdg"; _objectCacheFactory.Setup(x => x.Create()).Returns(MemoryCache.Default).Verifiable(); var actual1 = cacher.GetOrAdd(key, valueFactory); var actual2 = cacher.GetOrAdd(key, s => { Assert.Fail("Дважды вызвана фабрика"); return null; }); Assert.IsNull(actual1); Assert.IsNull(actual2); }
public void GetOrAddWithCastExceptionTest() { const string prefix = "123"; const string key = "321"; var cacher = new MemoryCacher<One>(_itemPolicyMock.Object, _objectCacheFactory.Object, prefix); var mCache = MemoryCache.Default; _objectCacheFactory.Setup(x => x.Create()).Returns(mCache).Verifiable(); var fullKey = FullKey(prefix, key); mCache.Add(fullKey, "123", new CacheItemPolicy()); cacher.GetOrAdd(key, s => new One()); }