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
-~----------~----~----~----~------~----~------~--~---

Reply via email to