public void MemoizationCacheExtensions_ToTrimmable_ArgumentChecking()
 {
     Assert.ThrowsException <ArgumentNullException>(() => MemoizationCacheExtensions.ToTrimmableByMetrics(default(IMemoizationCache)));
     Assert.ThrowsException <ArgumentNullException>(() => MemoizationCacheExtensions.ToTrimmableByArgumentAndResult <int, int>(default(IMemoizationCache)));
     Assert.ThrowsException <ArgumentNullException>(() => MemoizationCacheExtensions.ToTrimmableByArgumentAndResult <int, int>(default(IMemoizationCache <int, int>)));
     Assert.ThrowsException <ArgumentNullException>(() => MemoizationCacheExtensions.ToTrimmableByArgumentAndResultOrError <int, int>(default(IMemoizationCache)));
     Assert.ThrowsException <ArgumentNullException>(() => MemoizationCacheExtensions.ToTrimmableByArgumentAndResultOrError <int, int>(default(IMemoizationCache <int, int>)));
 }
        public void MemoizationCacheExtensions_ToTrimmable_HasNoService()
        {
            var c = new MyCache <int, int>(false);

            Assert.ThrowsException <InvalidOperationException>(() => MemoizationCacheExtensions.ToTrimmableByMetrics(c));
            Assert.ThrowsException <InvalidOperationException>(() => MemoizationCacheExtensions.ToTrimmableByArgumentAndResult <int, int>(c));
            Assert.ThrowsException <InvalidOperationException>(() => MemoizationCacheExtensions.ToTrimmableByArgumentAndResult <int, int>((IMemoizationCache)c));
            Assert.ThrowsException <InvalidOperationException>(() => MemoizationCacheExtensions.ToTrimmableByArgumentAndResultOrError <int, int>(c));
            Assert.ThrowsException <InvalidOperationException>(() => MemoizationCacheExtensions.ToTrimmableByArgumentAndResultOrError <int, int>((IMemoizationCache)c));
        }
        public void MemoizationCacheExtensions_AsTrimmable_HasNoService()
        {
            var c = new MyCache <int, int>(false);

            Assert.IsNull(MemoizationCacheExtensions.AsTrimmableByMetrics(c));
            Assert.IsNull(MemoizationCacheExtensions.AsTrimmableByArgumentAndResult <int, int>(c));
            Assert.IsNull(MemoizationCacheExtensions.AsTrimmableByArgumentAndResult <int, int>((IMemoizationCache)c));
            Assert.IsNull(MemoizationCacheExtensions.AsTrimmableByArgumentAndResultOrError <int, int>(c));
            Assert.IsNull(MemoizationCacheExtensions.AsTrimmableByArgumentAndResultOrError <int, int>((IMemoizationCache)c));
        }
        public void MemoizationCacheExtensions_ToTrimmable_HasService()
        {
            var c = new MyCache <int, int>(hasServices: true);

            Assert.IsNotNull(MemoizationCacheExtensions.ToTrimmableByMetrics(c));
            Assert.IsNotNull(MemoizationCacheExtensions.ToTrimmableByArgumentAndResult <int, int>(c));
            Assert.IsNotNull(MemoizationCacheExtensions.ToTrimmableByArgumentAndResult <int, int>((IMemoizationCache)c));
            Assert.IsNotNull(MemoizationCacheExtensions.ToTrimmableByArgumentAndResultOrError <int, int>(c));
            Assert.IsNotNull(MemoizationCacheExtensions.ToTrimmableByArgumentAndResultOrError <int, int>((IMemoizationCache)c));
        }