Пример #1
0
        public void GracefulRecursionHandling(IFrameworkAdapter framework)
        {
            this.AssertIsNotCrashingOnRecursion(framework);

            framework.Register <ServiceWithRecursiveDependency1>();
            framework.Register <ServiceWithRecursiveDependency2>();

            this.AssertGivesCorrectExceptionWhenResolvingRecursive <ServiceWithRecursiveDependency1>(framework);
        }
Пример #2
0
        public void GracefulRecursionHandlingForListDependency(IFrameworkAdapter framework)
        {
            this.AssertIsNotCrashingOnListRecursion(framework);

            framework.Register <ServiceWithListConstructorDependency <IService[]> >();
            framework.Register <IService, ServiceThatCreatesRecursiveArrayDependency>();

            this.AssertGivesCorrectExceptionWhenResolvingRecursive <ServiceWithListConstructorDependency <IService[]> >(framework);
        }
Пример #3
0
        public void ConstructorDependency(IFrameworkAdapter framework)
        {
            framework.Register <IService, IndependentService>();
            framework.Register <ServiceWithSimpleConstructorDependency>();

            var component = framework.Resolve <ServiceWithSimpleConstructorDependency>();

            Assert.NotNull(component.Service);
            Assert.IsAssignableFrom <IndependentService>(component.Service);
        }
Пример #4
0
        public void RegistrationAtAnyStage(IFrameworkAdapter framework)
        {
            framework.Register <IService, IndependentService>();
            framework.Resolve <IService>();
            framework.Register <IService2, IndependentService2>();

            var resolved = framework.Resolve <IService2>();

            Assert.NotNull(resolved);
        }
Пример #5
0
        public void ConstructorDependencyUsingInstance(IFrameworkAdapter framework)
        {
            var instance = new IndependentService();

            framework.Register <IService>(instance);
            framework.Register <ServiceWithSimpleConstructorDependency>();

            var dependent = framework.Resolve <ServiceWithSimpleConstructorDependency>();

            Assert.Same(instance, dependent.Service);
        }
Пример #6
0
        public void FactoryWithNoParameters(IFrameworkAdapter framework)
        {
            framework.Register <IService, IndependentService>();
            framework.Register <ServiceWithSimpleConstructorDependency>();

            var func = framework.Resolve <Func <ServiceWithSimpleConstructorDependency> >();

            Assert.NotNull(func);
            var result = func();

            Assert.NotNull(result);
        }
Пример #7
0
        public void ReasonableConstructorSelection(IFrameworkAdapter framework)
        {
            framework.Register <IService, IndependentService>();
            framework.Register <ServiceWithMultipleConstructors>();

            var resolved = framework.Resolve <ServiceWithMultipleConstructors>();

            Assert.NotNull(resolved);
            Assert.Equal(
                ServiceWithMultipleConstructors.ConstructorNames.MostResolvable,
                resolved.UsedConstructorName
                );
        }
Пример #8
0
        public void AssertResolvesListDependencyFor <TTestComponent>(IFrameworkAdapter framework)
            where TTestComponent : IServiceWithListDependency <IEnumerable <IService> >
        {
            framework.Register <IService, IndependentService>();
            framework.Register <TTestComponent>();

            var resolved = framework.Resolve <TTestComponent>();

            Assert.NotNull(resolved);
            Assert.NotNull(resolved.Services);
            Assert.Equal(1, resolved.Services.Count());
            Assert.IsAssignableFrom <IndependentService>(resolved.Services.First());
        }
Пример #9
0
        public void FactoryWithParameter(IFrameworkAdapter framework)
        {
            framework.Register <IService, IndependentService>();
            framework.Register <ServiceWithTwoConstructorDependencies>();
            var service2 = new IndependentService2();

            var func = framework.Resolve <Func <IService2, ServiceWithTwoConstructorDependencies> >();

            Assert.NotNull(func);
            var result = func(service2);

            Assert.NotNull(result);
            Assert.Same(service2, result.Service2);
        }
Пример #10
0
        public void IndependentServiceRegisteredAsSelf(IFrameworkAdapter framework)
        {
            framework.Register <IndependentService>();
            var component = framework.Resolve <IndependentService>();

            Assert.NotNull(component);
        }
Пример #11
0
        public void PropertyDependencyIsOptional(IFrameworkAdapter framework)
        {
            framework.Register <ServiceWithSimplePropertyDependency>();
            var component = framework.Resolve <ServiceWithSimplePropertyDependency>();

            Assert.Null(component.Service);
        }
Пример #12
0
        public void PrebuiltInstance(IFrameworkAdapter framework)
        {
            var instance = new IndependentService();

            framework.Register <IService>(instance);

            var resolved = framework.Resolve <IService>();

            Assert.Same(instance, resolved);
        }
 public static void Register <TService>(this IFrameworkAdapter container)
 {
     container.Register <TService, TService>();
 }