コード例 #1
0
        public virtual void GetWrapper_UsesCache()
        {
            var unwrappedObject = new object();

            var expectedWrapper = CachedWrapperBaseImpl.GetWrapper(unwrappedObject);
            var actualWrapper   = CachedWrapperBaseImpl.GetWrapper(unwrappedObject);

            actualWrapper.ShouldBe(expectedWrapper);
        }
コード例 #2
0
        // [Test]
        public virtual void GetWrapper_ReferencedObjectSurvivesGarbageCollection()
        {
            var unwrappedObject = new object();

            var wrapper = CachedWrapperBaseImpl.GetWrapper(unwrappedObject);

            wrapper.IsNull.ShouldBeFalse();

            GC.Collect();

            wrapper.IsNull.ShouldBeFalse();
        }
コード例 #3
0
        public virtual void GetWrapper_CachedObjectsAreWeaklyReferenced()
        {
            var unwrappedObject = new object();
            var wrapperWithDereferencedObject = CachedWrapperBaseImpl.GetWrapper(unwrappedObject);

            wrapperWithDereferencedObject.IsNull.ShouldBeFalse();

            unwrappedObject = null;
            GC.Collect();

            wrapperWithDereferencedObject.IsNull.ShouldBeTrue();
        }