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()); }
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; }
public MyService(IDependencyA a, DependencyB <string> b, RuntimeDependencyC c) { }
public Container(DependencyA depA, DependencyB depB) { this.depA = depA; this.depB = depB; }
public Container ProvidesContainer(DependencyA depA, DependencyB depB) { return Container = new Container(depA, depB); }
public DepedencyAImpl(DependencyB depB) { this.depB = depB; }
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); }
public Container ProvidesContainer(DependencyA depA, DependencyB depB) { return(Container = new Container(depA, depB)); }