public void TestPublicNestedClassPublicNamedMethod() { Reset(); const int index = 99; _itemPublic = new PublicNestedTestClass(index); _action = _itemPublic.GetAction(WeakActionTestCase.PublicNamedMethod); _reference = new WeakReference(_itemPublic); Assert.IsTrue(_reference.IsAlive); Assert.IsTrue(_action.IsAlive); _action.Execute(); Assert.AreEqual( PublicNestedTestClass.Expected + PublicNestedTestClass.Public + index, PublicNestedTestClass.Result); _itemPublic = null; GC.Collect(); Assert.IsFalse(_reference.IsAlive); }
public void TestPublicNestedClassInternalNamedMethod() { Reset(); const int index = 99; _itemPublic = new PublicNestedTestClass(index); _reference = new WeakReference(_itemPublic); _action = _itemPublic.GetAction(WeakActionTestCase.InternalNamedMethod); Assert.IsTrue(_reference.IsAlive); Assert.IsTrue(_action.IsAlive); _action.Execute(); Assert.AreEqual( PublicNestedTestClass.Expected + PublicNestedTestClass.Internal + index, PublicNestedTestClass.Result); _itemPublic = null; GC.Collect(); #if SILVERLIGHT Assert.IsTrue(_reference.IsAlive); // Anonymous, private and internal methods cannot be GCed _action = null; GC.Collect(); Assert.IsFalse(_reference.IsAlive); #else Assert.IsFalse(_reference.IsAlive); #endif }
public void TestPublicClassPublicStaticMethod() { Reset(); const string parameter = "My parameter"; _itemPublic = new PublicTestClass<string>(); _reference = new WeakReference(_itemPublic); _action = _itemPublic.GetAction(WeakActionTestCase.PublicStaticMethod); Assert.IsTrue(_reference.IsAlive); Assert.IsTrue(_action.IsAlive); _action.Execute(parameter); Assert.AreEqual( PublicTestClass<string>.Expected + PublicTestClass<string>.PublicStatic + parameter, PublicTestClass<string>.Result); _itemPublic = null; GC.Collect(); Assert.IsFalse(_reference.IsAlive); }
public void TestPublicClassPublicStaticMethod() { Reset(); _itemPublic = new PublicTestClass(); _reference = new WeakReference(_itemPublic); _action = _itemPublic.GetAction(WeakActionTestCase.PublicStaticMethod); Assert.IsTrue(_reference.IsAlive); Assert.IsTrue(_action.IsAlive); _action.Execute(); Assert.AreEqual( PublicTestClass.Expected + PublicTestClass.PublicStatic, PublicTestClass.Result); _itemPublic = null; GC.Collect(); Assert.IsFalse(_reference.IsAlive); }
public void TestPrivateNestedClassAnonymousStaticMethod() { Reset(); _itemPrivate = new PrivateNestedTestClass(); _reference = new WeakReference(_itemPrivate); _action = _itemPrivate.GetAction(WeakActionTestCase.AnonymousStaticMethod); Assert.IsTrue(_reference.IsAlive); Assert.IsTrue(_action.IsAlive); _action.Execute(); Assert.AreEqual( PrivateNestedTestClass.Expected, PrivateNestedTestClass.Result); _itemPrivate = null; GC.Collect(); Assert.IsFalse(_reference.IsAlive); }
public void TestInternalNestedClassPrivateStaticMethod() { Reset(); _itemInternal = new InternalNestedTestClass(); _reference = new WeakReference(_itemInternal); _action = _itemInternal.GetAction(WeakActionTestCase.PrivateStaticMethod); Assert.IsTrue(_reference.IsAlive); Assert.IsTrue(_action.IsAlive); _action.Execute(); Assert.AreEqual( InternalNestedTestClass.Expected + InternalNestedTestClass.PrivateStatic, InternalNestedTestClass.Result); _itemInternal = null; GC.Collect(); Assert.IsFalse(_reference.IsAlive); }
public void TestInternalClassAnonymousStaticMethod() { Reset(); const string parameter = "My parameter"; _itemInternal = new InternalTestClass<string>(); _reference = new WeakReference(_itemInternal); _action = _itemInternal.GetAction(WeakActionTestCase.AnonymousStaticMethod); Assert.IsTrue(_reference.IsAlive); Assert.IsTrue(_action.IsAlive); _action.Execute(parameter); Assert.AreEqual( InternalTestClass<string>.Expected + parameter, InternalTestClass<string>.Result); _itemInternal = null; GC.Collect(); Assert.IsFalse(_reference.IsAlive); }
public void TestInternalClassAnonymousMethod() { Reset(); const int index = 99; const string parameter = "My parameter"; _itemInternal = new InternalTestClass<string>(index); _reference = new WeakReference(_itemInternal); _action = _itemInternal.GetAction(WeakActionTestCase.AnonymousMethod); Assert.IsTrue(_reference.IsAlive); Assert.IsTrue(_action.IsAlive); _action.Execute(parameter); Assert.AreEqual( InternalTestClass<string>.Expected + index + parameter, InternalTestClass<string>.Result); _itemInternal = null; GC.Collect(); #if SILVERLIGHT Assert.IsTrue(_reference.IsAlive); // Anonymous, private and internal methods cannot be GCed _action = null; GC.Collect(); Assert.IsFalse(_reference.IsAlive); #else Assert.IsFalse(_reference.IsAlive); #endif }