Пример #1
0
 public CacherItemPolicy(
     int keepAlive,
     CacherItemPolicyType policyType
     )
 {
     KeepAlive  = keepAlive;
     PolicyType = policyType;
 }
        public void SetWhenCacheEmptyByRegionExpectResult(CacherItemPolicyType policyType)
        {
            //
            //  arrange
            //

            var mockJsonConverter = new Mock <IJsonConverter>(MockBehavior.Strict);

            mockJsonConverter.Setup(m => m.Serialize("bar")).Returns("bar").Verifiable();
            mockJsonConverter.Setup(m => m.Deserialize <string>("bar")).Returns("bar").Verifiable();

            var mockCacheItemPolicy = new CacherItemPolicy(keepAlive: 30, policyType: policyType);

            ICacher cacher = new DotNetMemoryCacher(
                jsonConverter: mockJsonConverter.Object,
                regionName: $"SetWhenCacheEmptyByRegionExpectResult_{policyType.ToString()}"
                );

            //
            // assert pre-conditions
            //

            cacher.GetOrSet(
                cacheItemKey: "foo",
                getCacheItemFunc: () => { return("bar"); },
                cacheItemPolicy: mockCacheItemPolicy
                );

            Assert.IsNotNull(cacher.GetKeys());
            Assert.AreEqual(expected: 1, actual: cacher.GetKeys().Length);

            //
            //  assert
            //

            string actual = cacher.Get <string>(
                cacheItemKey: "foo"
                );

            Assert.IsNotNull(actual);
            Assert.AreEqual(expected: "bar", actual: actual);

            //
            //  verify dependents
            //

            mockJsonConverter.Verify();
        }