public void TestInternalNestedClassAnonymousStaticMethod() { Reset(); _itemInternal = new InternalNestedTestClass(); _reference = new WeakReference(_itemInternal); _action = _itemInternal.GetFunc(WeakActionTestCase.AnonymousStaticMethod); Assert.IsTrue(_reference.IsAlive); Assert.IsTrue(_action.IsAlive); string result = _action.Execute(); Assert.AreEqual( InternalNestedTestClass.Expected, InternalNestedTestClass.Result); Assert.AreEqual( InternalNestedTestClass.Expected, result); _itemInternal = null; GC.Collect(); Assert.IsFalse(_reference.IsAlive); }
public void TestInternalNestedClassAnonymousStaticMethod() { Reset(); _itemInternal = new InternalNestedTestClass(); _reference = new WeakReference(_itemInternal); _action = _itemInternal.GetFunc(WeakActionTestCase.AnonymousStaticMethod); Assert.IsTrue(_reference.IsAlive); Assert.IsTrue(_action.IsAlive); var result = _action.Execute(); Assert.AreEqual( InternalNestedTestClass.Expected, InternalNestedTestClass.Result); Assert.AreEqual( InternalNestedTestClass.Expected, result); _itemInternal = null; GC.Collect(); Assert.IsFalse(_reference.IsAlive); }
public void TestInternalNestedClassAnonymousMethod() { Reset(); const int index = 99; _itemInternal = new InternalNestedTestClass(index); _reference = new WeakReference(_itemInternal); _action = _itemInternal.GetFunc(WeakActionTestCase.AnonymousMethod); Assert.IsTrue(_reference.IsAlive); Assert.IsTrue(_action.IsAlive); var result = _action.Execute(); Assert.AreEqual( InternalNestedTestClass.Expected + index, InternalNestedTestClass.Result); Assert.AreEqual( InternalNestedTestClass.Expected + index, 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 }
public void TestInternalClassAnonymousStaticMethod() { Reset(); const string parameter = "My parameter"; _itemInternal = new InternalNestedTestClass <string>(); _reference = new WeakReference(_itemInternal); _action = _itemInternal.GetFunc(WeakActionTestCase.AnonymousStaticMethod); Assert.IsTrue(_reference.IsAlive); Assert.IsTrue(_action.IsAlive); var result = _action.Execute(parameter); Assert.AreEqual( InternalNestedTestClass <string> .Expected + parameter, InternalNestedTestClass <string> .Result); Assert.AreEqual( InternalNestedTestClass <string> .Expected + parameter, result); _itemInternal = null; GC.Collect(); Assert.IsFalse(_reference.IsAlive); }
public void TestInternalClassPrivateNamedMethod() { Reset(); const string parameter = "My parameter"; const int index = 99; _itemInternal = new InternalNestedTestClass <string>(index); _reference = new WeakReference(_itemInternal); _action = _itemInternal.GetFunc(WeakActionTestCase.PrivateNamedMethod); Assert.IsTrue(_reference.IsAlive); Assert.IsTrue(_action.IsAlive); var result = _action.Execute(parameter); Assert.AreEqual( InternalNestedTestClass <string> .Expected + InternalNestedTestClass <string> .Private + index + parameter, InternalNestedTestClass <string> .Result); Assert.AreEqual( InternalNestedTestClass <string> .Expected + InternalNestedTestClass <string> .Private + index + parameter, 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 }
public void TestInternalNestedClassInternalNamedMethod() { Reset(); const int index = 99; _itemInternal = new InternalNestedTestClass(index); _reference = new WeakReference(_itemInternal); _action = _itemInternal.GetFunc(WeakActionTestCase.InternalNamedMethod); Assert.IsTrue(_reference.IsAlive); Assert.IsTrue(_action.IsAlive); string result = _action.Execute(); Assert.AreEqual( InternalNestedTestClass.Expected + InternalNestedTestClass.Internal + index, InternalNestedTestClass.Result); Assert.AreEqual( InternalNestedTestClass.Expected + InternalNestedTestClass.Internal + index, result); _itemInternal = null; GC.Collect(); Assert.IsFalse(_reference.IsAlive); }