User: cneuwirt
Date: 2008/09/09 06:09 AM
Modified:
/trunk/InversionOfControl/Castle.MicroKernel.Tests/Registration/
AllTypesTestCase.cs
/trunk/InversionOfControl/Castle.MicroKernel/Registration/
Component.cs
/trunk/InversionOfControl/Castle.MicroKernel/Registration/Strategies/
ServiceDescriptor.cs
Log:
Added some fluent syntactic sugar so you can do something like
Where(Component.IsInNamespaceAs("My.Services")) OR
Where(Component.IsInSameNamespaceAs<DefaultPaymentService>())
File Changes:
Directory: /trunk/InversionOfControl/Castle.MicroKernel/Registration/
=====================================================================
File [modified]: Component.cs
Delta lines: +2 -1
===================================================================
---
trunk/InversionOfControl/Castle.MicroKernel/Registration/Strategies/ServiceDescriptor.cs
2008-09-08 20:18:56 UTC (rev 5310)
+++
trunk/InversionOfControl/Castle.MicroKernel/Registration/Strategies/ServiceDescriptor.cs
2008-09-09 13:09:34 UTC (rev 5311)
@@ -66,7 +66,8 @@
first =
first.GetGenericTypeDefinition();
}
}
- return new Type[] { first };
+
+ return (first != null) ? new Type[] { first } :
null;
});
}
Directory: /trunk/InversionOfControl/Castle.MicroKernel.Tests/Registration/
===========================================================================
File [modified]: AllTypesTestCase.cs
Delta lines: +0 -0
===================================================================
Directory: /trunk/InversionOfControl/Castle.MicroKernel/Registration/Strategies/
================================================================================
File [modified]: ServiceDescriptor.cs
Delta lines: +38 -1
===================================================================
---
trunk/InversionOfControl/Castle.MicroKernel.Tests/Registration/AllTypesTestCase.cs
2008-09-08 20:18:56 UTC (rev 5310)
+++
trunk/InversionOfControl/Castle.MicroKernel.Tests/Registration/AllTypesTestCase.cs
2008-09-09 13:09:34 UTC (rev 5311)
@@ -253,7 +253,6 @@
Assert.AreEqual(1, handlers.Length);
}
-
[Test]
public void
RegisterAssemblyTypes_WhereConditionSatisifed_RegisteredInContainer()
{
@@ -292,5 +291,43 @@
IHandler[] handlers =
kernel.GetHandlers(typeof(NonPublicComponent));
Assert.AreEqual(1, handlers.Length);
}
+
+ [Test]
+ public void
RegisterAssemblyTypes_WhenTypeInNamespace_RegisteredInContainer()
+ {
+ kernel.Register(
+
AllTypes.FromAssembly(Assembly.GetExecutingAssembly())
+
.Where(Component.IsInNamespace("Castle.MicroKernel.Tests.ClassComponents"))
+ .WithService.FirstInterface()
+ );
+
+ IHandler[] handlers =
kernel.GetHandlers(typeof(ICustomer));
+ Assert.IsTrue(handlers.Length > 0);
+ }
+
+ [Test]
+ public void
RegisterAssemblyTypes_WhenTypeInMissingNamespace_NotRegisteredInContainer()
+ {
+ kernel.Register(
+
AllTypes.FromAssembly(Assembly.GetExecutingAssembly())
+
.Where(Component.IsInNamespace("Castle.MicroKernel.Tests.FooBar"))
+ .WithService.FirstInterface()
+ );
+
+ Assert.AreEqual(0,
kernel.GetAssignableHandlers(typeof(object)).Length);
+ }
+
+ [Test]
+ public void
RegisterAssemblyTypes_WhenTypeInSameNamespaceAsComponent_RegisteredInContainer()
+ {
+ kernel.Register(
+
AllTypes.FromAssembly(Assembly.GetExecutingAssembly())
+
.Where(Component.IsInSameNamespaceAs<CustomerImpl2>())
+ .WithService.FirstInterface()
+ );
+
+ IHandler[] handlers =
kernel.GetHandlers(typeof(ICustomer));
+ Assert.IsTrue(handlers.Length > 0);
+ }
}
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Castle Project Commits" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/castle-project-commits?hl=en
-~----------~----~----~----~------~----~------~--~---