public void CollectsAllBindingsAndLoadsThemDistinctOnKernel()
        {
            var loadedModules = new List<INinjectModule>();

            A.CallTo(() => this.kernel.Load(A<IEnumerable<INinjectModule>>._))
                .Invokes((IEnumerable<INinjectModule> modules) => loadedModules.AddRange(modules));

            var dependencyA = new DependencyA();
            var dependencyB = new DependencyB();

            var dependencyDefinitionA = new Dependency<IDependencyA>(bind => bind.ToConstant(dependencyA).InTransientScope());
            var dependencyDefinitionB = new Dependency<IDependencyB>(bind => bind.ToConstant(dependencyB).InSingletonScope());

            this.testee.Load(
                new FeatureA(
                    dependencyDefinitionA,
                    dependencyDefinitionB),
                new FeatureB(
                    dependencyDefinitionA,
                    dependencyDefinitionB),
                new FeatureC());

            loadedModules.Select(_ => _.GetType().Name)
                .Should().Contain(
                    new[] 
                    {
                        typeof(ModuleA),
                        typeof(ModuleB),
                        typeof(ModuleC),
                        typeof(ModuleD)
                    }.Select(_ => _.Name))
                    .And.BeEquivalentTo(loadedModules.Select(_ => _.GetType().Name).Distinct());
        }
Example #2
0
        public void IoCRegInstanceDepBeforeBuildGraph()
        {
            var instanceB = new DependencyB();

            IoCManager.RegisterInstance <DependencyB>(instanceB, deferInject: true);

            IoCManager.Register <DependencyA, DependencyA>();

            IoCManager.BuildGraph();

            var resolveA = IoCManager.Resolve <DependencyA>();
            var resolveB = IoCManager.Resolve <DependencyB>();

            Assert.That(instanceB, Is.EqualTo(resolveB));
            Assert.That(resolveA._depB, Is.EqualTo(resolveB));
            Assert.That(resolveB._depA, Is.EqualTo(resolveA));
        }
 public TypeToBeActivated(DependencyA a, DependencyB b, DependencyC c)
 {
 }
 public WithDependenciesCommand(DependencyA dependencyA, DependencyB dependencyB, DependencyC dependencyC)
 {
     _dependencyA = dependencyA;
     _dependencyB = dependencyB;
     _dependencyC = dependencyC;
 }
 public WithDependenciesCommand(DependencyA dependencyA, DependencyB dependencyB)
 {
     _dependencyA = dependencyA;
     _dependencyB = dependencyB;
 }
Example #6
0
 public MyService(IDependencyA a, DependencyB <string> b, RuntimeDependencyC c)
 {
 }
Example #7
0
 public Container(DependencyA depA, DependencyB depB)
 {
     this.depA = depA;
     this.depB = depB;
 }
Example #8
0
 public Container ProvidesContainer(DependencyA depA, DependencyB depB)
 {
     return Container = new Container(depA, depB);
 }
Example #9
0
 public DepedencyAImpl(DependencyB depB)
 {
     this.depB = depB;
 }
Example #10
0
 public DependencyA(DependencyB dependency)
 {
     Dependency = dependency;
 }
 public DependencyA(DependencyB b, DependencyC c)
 {
 }
        public void ExecutesAllDistinctDependencies()
        {
            var dependencyA = new DependencyA();
            var dependencyB = new DependencyB();

            var dependencyDefinitionA = new Dependency<IDependencyA>(bind => bind.ToConstant(dependencyA).InTransientScope());

            this.testee.Load(
                new FeatureA(
                    dependencyDefinitionA,
                    new Dependency<IDependencyB>(bind => bind.ToConstant(dependencyB).InSingletonScope())),
                new FeatureB(
                    dependencyDefinitionA,
                    new Dependency<IDependencyB>(bind => bind.ToConstant(dependencyB).InSingletonScope())),
                new FeatureC());

            A.CallTo(() => this.kernel.Bind<IDependencyA>()).MustHaveHappened();
            A.CallTo(() => this.kernel.Bind<IDependencyB>()).MustHaveHappened();
        }
        public void CollectsAllExtensionsAndLoadsThemDistinctBeforeLoadingModules()
        {
            var loadedModules = new List<INinjectModule>();

            A.CallTo(() => this.kernel.Load(A<IEnumerable<INinjectModule>>._))
                .Invokes((IEnumerable<INinjectModule> modules) => loadedModules.AddRange(modules));

            var dependencyA = new DependencyA();
            var dependencyB = new DependencyB();

            var dependencyDefinitionA = new Dependency<IDependencyA>(bind => bind.ToConstant(dependencyA).InTransientScope());
            var dependencyDefinitionB = new Dependency<IDependencyB>(bind => bind.ToConstant(dependencyB).InSingletonScope());

            this.testee.Load(
                new FeatureA(
                    dependencyDefinitionA,
                    dependencyDefinitionB),
                new FeatureB(
                    dependencyDefinitionA,
                    dependencyDefinitionB));

            loadedModules.Select(m => m.GetType().Name)
                .Should().ContainInOrder(
                    new[] 
                    {
                        typeof(ExtensionModuleA),
                        typeof(ExtensionModuleB),
                        typeof(ExtensionModuleC),

                        typeof(ModuleA),
                        typeof(ModuleB),
                        typeof(ModuleC),
                    }.Select(_ => _.Name))
                .And.HaveCount(6);
        }
Example #14
0
 public DepedencyAImpl(DependencyB depB)
 {
     this.depB = depB;
 }
Example #15
0
 public Container(DependencyA depA, DependencyB depB)
 {
     this.depA = depA;
     this.depB = depB;
 }
Example #16
0
 public Container ProvidesContainer(DependencyA depA, DependencyB depB)
 {
     return(Container = new Container(depA, depB));
 }