Update of /cvsroot/springnet/Spring.Net/test/Spring/Spring.Core.Tests/Objects/Factory
In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv15089
Modified Files:
MethodReplacerTests.cs
Log Message:
additional method replacer test for protected virtual methods
remove c: reference to temp file for building on mono
misc code cleanup
Index: MethodReplacerTests.cs
===================================================================
RCS file: /cvsroot/springnet/Spring.Net/test/Spring/Spring.Core.Tests/Objects/Factory/MethodReplacerTests.cs,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** MethodReplacerTests.cs 9 Apr 2006 07:24:50 -0000 1.3
--- MethodReplacerTests.cs 2 May 2008 20:08:23 -0000 1.4
***************
*** 64,67 ****
--- 64,88 ----
}
+ [Test]
+ public void SunnyDayReplaceMethod_WithProtectedVirtual()
+ {
+ RootObjectDefinition replacerDef = new RootObjectDefinition(typeof(NewsFeedFactory));
+
+ RootObjectDefinition managerDef = new RootObjectDefinition(typeof(ProtectedReturnsNullNewsFeedManagerWithVirtualMethod));
+ managerDef.MethodOverrides.Add(new ReplacedMethodOverride("CreateNewsFeed", "replacer"));
+
+ DefaultListableObjectFactory factory = new DefaultListableObjectFactory();
+ factory.RegisterObjectDefinition("manager", managerDef);
+ factory.RegisterObjectDefinition("replacer", replacerDef);
+ ProtectedReturnsNullNewsFeedManagerWithVirtualMethod manager = (ProtectedReturnsNullNewsFeedManagerWithVirtualMethod)factory["manager"];
+ NewsFeed feed1 = manager.GrabNewsFeed();
+ Assert.IsNotNull(feed1, "The protected CreateNewsFeed() method is not being replaced.");
+ Assert.AreEqual(NewsFeedFactory.DefaultName, feed1.Name);
+ NewsFeed feed2 = manager.GrabNewsFeed();
+ // NewsFeedFactory always yields a new NewsFeed (see class definition below)...
+ Assert.IsFalse(ReferenceEquals(feed1, feed2));
+
+ }
+
[Test]
public void SunnyDayReplaceMethod_WithArgumentAcceptingReplacer()
***************
*** 429,432 ****
--- 450,454 ----
}
+
public interface INewsFeedManager
{
|