Exemple #1
0
        public static IEnumerable <object[]> GetDatas()
        {
            yield return(new object[]
            {
                new TypeServiceDefinition(typeof(IServiceProvider), typeof(ServiceProvider), Lifetime.Transient), typeof(ServiceProvider)
            });

            yield return(new object[]
            {
                new DelegateServiceDefinition(typeof(IServiceProvider), s => new ServiceCollection().BuildServiceProvider(), Lifetime.Transient), typeof(object)
            });

            yield return(new object[]
            {
                new InstanceServiceDefinition(typeof(IServiceProvider), new ServiceCollection().BuildServiceProvider()), typeof(ServiceProvider)
            });

            var proxDefinitionType = typeof(AspectCore.DependencyInjection.PropertyResolver).Assembly.GetType("AspectCore.DependencyInjection.ProxyServiceDefinition");
            var serviceDefinition  = new TypeServiceDefinition(typeof(IServiceProvider), typeof(ServiceProvider), Lifetime.Transient);
            var proxDefinition     = Activator.CreateInstance(proxDefinitionType, serviceDefinition, typeof(AspectCoreInterceptorAdapter <TestInterceptor>)) as ServiceDefinition;

            yield return(new object[]
            {
                proxDefinition, typeof(AspectCoreInterceptorAdapter <TestInterceptor>)
            });
        }
Exemple #2
0
        public void RequiredPropertyInjection_Proxy_Interface()
        {
            var proxDefinitionType = typeof(AspectCore.DependencyInjection.PropertyResolver).Assembly.GetType("AspectCore.DependencyInjection.ProxyServiceDefinition");
            var serviceDefinition  = new TypeServiceDefinition(typeof(IServiceProvider), typeof(ServiceProvider), Lifetime.Transient);
            var proxDefinition     = Activator.CreateInstance(proxDefinitionType, serviceDefinition, typeof(AspectCoreInterceptorAdapter <TestInterceptor>)) as ServiceDefinition;

            proxDefinition.RequiredPropertyInjection().ShouldBeFalse();
        }
Exemple #3
0
        public void Invoke_Null()
        {
            var callback = new PropertyInjectorCallback();

            Should.Throw <ArgumentNullException>(() => callback.Invoke(null, null, null));
            var resolver = Substitute.For <IServiceResolver>();

            Should.Throw <ArgumentNullException>(() => callback.Invoke(resolver, null, null));
            var serviceDefinition = new TypeServiceDefinition(typeof(PropertyInjectionService), typeof(PropertyInjectionService), Lifetime.Transient);

            Should.NotThrow(() => callback.Invoke(resolver, null, serviceDefinition)).ShouldBeNull();
        }
Exemple #4
0
        public void Invoke_Non()
        {
            var callback          = new PropertyInjectorCallback();
            var resolver          = Substitute.For <IServiceResolver>();
            var serviceDefinition = new TypeServiceDefinition(typeof(PropertyInjectionService), typeof(PropertyInjectionService), Lifetime.Transient);
            var moduleContainer   = Substitute.For <IModuleContainer>();

            moduleContainer.Configure().Modules.Returns(Array.Empty <IModuleDescriptor>());
            resolver.Configure().Resolve(typeof(IModuleContainer)).Returns(moduleContainer);
            Should.NotThrow(() => callback.Invoke(resolver, moduleContainer, serviceDefinition)).ShouldBe(moduleContainer);
            var instance = new PropertyInjectionService();

            Should.NotThrow(() => callback.Invoke(resolver, instance, serviceDefinition)).ShouldBe(instance);
            var moduleDescriptor = Substitute.For <IModuleDescriptor>();

            moduleDescriptor.Configure().Assembly.Returns(typeof(Scorpio.Modularity.ScorpioModule).Assembly);
            moduleContainer.Configure().Modules.Returns(new IModuleDescriptor[] { moduleDescriptor });
            Should.NotThrow(() => callback.Invoke(resolver, instance, serviceDefinition)).ShouldBe(instance);
        }
Exemple #5
0
        public void RequiredPropertyInjection()
        {
            var serviceDefinition = new TypeServiceDefinition(typeof(IServiceProvider), typeof(PropertyInjectionService), Lifetime.Transient);

            serviceDefinition.RequiredPropertyInjection().ShouldBeTrue();
        }