public void CreateInstance_WhenComponentHasMultipleConstructors_UsesPublicConstructorWithMostParameters() { var dependencyResolver = MockRepository.GenerateMock <IObjectDependencyResolver>(); var objectFactory = new ObjectFactory(dependencyResolver, typeof(ComponentWithMultipleConstructors), new PropertySet() { { "prOpERtY", "value" } }); var service = MockRepository.GenerateStub <IService>(); dependencyResolver.Expect(x => x.ResolveDependency("service", typeof(IService), null)).Return(DependencyResolution.Satisfied(service)); dependencyResolver.Expect(x => x.ResolveDependency("property", typeof(string), "value")).Return(DependencyResolution.Satisfied("value")); var component = (ComponentWithMultipleConstructors)objectFactory.CreateInstance(); Assert.AreSame(service, component.Service); Assert.AreEqual("value", component.Property); dependencyResolver.VerifyAllExpectations(); }
public void CreateInstance_WhenComponentHasRequiredDependencyWithNoParameterValueAndItIsSatisfied_BuildsTheObjectWithTheResolvedDependency() { var dependencyResolver = MockRepository.GenerateMock <IObjectDependencyResolver>(); var objectFactory = new ObjectFactory(dependencyResolver, typeof(ComponentWithRequiredDependencyOnService), new PropertySet()); var service = MockRepository.GenerateStub <IService>(); dependencyResolver.Expect(x => x.ResolveDependency("service", typeof(IService), null)).Return(DependencyResolution.Satisfied(service)); var component = (ComponentWithRequiredDependencyOnService)objectFactory.CreateInstance(); Assert.AreSame(service, component.Service); dependencyResolver.VerifyAllExpectations(); }
public void CreateInstance_WhenComponentHasRequiredDependencyWithAParameterValueAndItIsSatisfied_BuildsTheObjectWithTheResolvedDependency() { var dependencyResolver = MockRepository.GenerateMock <IObjectDependencyResolver>(); var objectFactory = new ObjectFactory(dependencyResolver, typeof(ComponentWithRequiredDependencyOnProperty), new PropertySet() { { "prOpERtY", "value" } }); dependencyResolver.Expect(x => x.ResolveDependency("property", typeof(string), "value")).Return(DependencyResolution.Satisfied("value")); var component = (ComponentWithRequiredDependencyOnProperty)objectFactory.CreateInstance(); Assert.AreEqual("value", component.Property); dependencyResolver.VerifyAllExpectations(); }