Beispiel #1
0
        public void RegisterManyForOpenGenericAccessibilityOptionCallbackEnum_WithValidArguments_Succeeds()
        {
            // Arrange
            var container = ContainerFactory.New();

            BatchRegistrationCallback callback = (closedServiceType, implementations) => { };

            var assemblies = new[] { Assembly.GetExecutingAssembly() };

            // Act
            container.RegisterManyForOpenGeneric(typeof(IService <,>), AccessibilityOption.AllTypes, callback,
                                                 assemblies);
        }
        public VarianceExtensions_RegisteringMultipleRegistrationsAndResolvingCollections()
        {
            // Container configuration.
            BatchRegistrationCallback callback = (serviceType, implementations) =>
            {
                container.RegisterAll(serviceType, implementations);
            };

            this.container.RegisterManyForOpenGeneric(typeof(IEventHandler <>), callback,
                                                      typeof(IEventHandler <>).Assembly);

            this.container.RegisterSingleOpenGeneric(typeof(IEventHandler <>),
                                                     typeof(MultipleDispatchEventHandler <>));

            // The ILogger is used by the unit tests to test the configuration.
            this.container.RegisterSingle <ILogger>(this.logger);
        }
Beispiel #3
0
        public void RegisterManyForOpenGenericAssemblyParams_WithCallbackThatDoesNothing_DoesNotRegisterAnything()
        {
            // Arrange
            var container = ContainerFactory.New();

            BatchRegistrationCallback callback = (closedServiceType, implementations) =>
            {
                // Do nothing.
            };

            // Act
            container.RegisterManyForOpenGeneric(typeof(IService <,>), callback, Assembly.GetExecutingAssembly());

            // Assert
            var registration = container.GetRegistration(typeof(IService <string, object>));

            Assert.IsNull(registration, "GetRegistration should result in null, because by supplying a delegate, the " +
                          "extension method does not do any registration itself.");
        }
Beispiel #4
0
        public void RegisterManyForOpenGeneric_WithCallback_IsCalledTheExpectedAmountOfTimes()
        {
            // Arrange
            List <Type> expectedClosedServiceTypes = new List <Type>
            {
                typeof(IService <float, double>),
                typeof(IService <Type, Type>)
            };

            List <Type> actualClosedServiceTypes = new List <Type>();

            var container = ContainerFactory.New();

            BatchRegistrationCallback callback = (closedServiceType, implementations) =>
            {
                actualClosedServiceTypes.Add(closedServiceType);
            };

            // Act
            container.RegisterManyForOpenGeneric(typeof(IService <,>), callback, new[] { typeof(Concrete3) });

            // Assert
            Assert_AreEqual(expectedClosedServiceTypes, actualClosedServiceTypes);
        }
        public static void RegisterManyForOpenGeneric(this Container container,
            Type openGenericServiceType, AccessibilityOption accessibility, BatchRegistrationCallback callback,
            IEnumerable<Assembly> assemblies)
        {
            Requires.IsNotNull(callback, nameof(callback));

            var types = GetTypesToRegisterInternal(container, openGenericServiceType, accessibility, assemblies);

            container.RegisterCollection(openGenericServiceType, types);
        }
 public static void RegisterManyForOpenGeneric(this Container container,
     Type openGenericServiceType, BatchRegistrationCallback callback, IEnumerable<Type> typesToRegister)
 {
     Requires.IsNotNull(callback, nameof(callback));
     container.RegisterCollection(openGenericServiceType, typesToRegister);
 }
 public static void RegisterManyForOpenGeneric(this Container container,
     Type openGenericServiceType, BatchRegistrationCallback callback,
     params Assembly[] assemblies)
 {
     Requires.IsNotNull(callback, nameof(callback));
     container.RegisterCollection(openGenericServiceType, assemblies);
 }
 public static void RegisterManyForOpenGeneric(this Container container,
     Type openGenericServiceType, BatchRegistrationCallback callback,
     IEnumerable<Assembly> assemblies)
 {
     Requires.IsNotNull(callback, "callback");
     container.RegisterCollection(openGenericServiceType, assemblies);
 }