public void ShouldBeAbleToAutoCreateClassUsingGenericAutoCreateCall() { ServiceContainer container = GetContainerWithMockSampleServices(); var result = container.AutoCreate <SampleClassWithServiceArrayAsConstructorArgument>(); Assert.IsNotNull(result); Assert.IsTrue(result.Services.Length > 0); }
public void ShouldAutoCreateClassWithServiceArrayAsConstructorArgument() { ServiceContainer container = GetContainerWithMockSampleServices(); var result = container.AutoCreate(typeof(SampleClassWithServiceArrayAsConstructorArgument)) as SampleClassWithServiceArrayAsConstructorArgument; Assert.IsNotNull(result); Assert.IsTrue(result.Services.Length > 0); }
public void ShouldInjectConstructorWithNamedParameterTypes() { var mockDefaultSampleService = new Mock <ISampleService>(); var mockOtherSampleService = new Mock <ISampleService>(); var container = new ServiceContainer(); // Add the default service container.AddService(mockDefaultSampleService.Object); // Add the expected service instance container.AddService("OtherService", mockOtherSampleService.Object); var serviceInstance = (SampleClassWithNamedParameters)container.AutoCreate(typeof(SampleClassWithNamedParameters)); Assert.AreEqual(mockOtherSampleService.Object, serviceInstance.ServiceInstance); }
public void ShouldAutoInjectClassCreatedWithAutoCreate() { // Configure the container var container = new ServiceContainer(); container.LoadFromBaseDirectory("*.dll"); var sampleService = new Mock <ISampleService>(); container.AddService(sampleService.Object); var instance = (SampleClassWithInjectionProperties)container.AutoCreate(typeof(SampleClassWithInjectionProperties)); // The container should initialize the SomeProperty method to match the mock ISampleService instance Assert.IsNotNull(instance.SomeProperty); Assert.AreSame(instance.SomeProperty, sampleService.Object); }
public void ShouldCreateTypeWithAdditionalParameters() { var mockSampleService = new Mock <ISampleService>(); IServiceContainer container = new ServiceContainer(); // Add an ISampleService instance container.AddService(mockSampleService.Object); var resolver = container.GetService <IMemberResolver <ConstructorInfo> >(); Assert.IsNotNull(resolver); var instance = container.AutoCreate(typeof(SampleClassWithAdditionalArgument), 42) as SampleClassWithAdditionalArgument; Assert.IsNotNull(instance); Assert.IsTrue(instance.Argument == 42); }
public void ContainerMustInjectFactoryInstances() { var mockFactory = new Mock <IFactory <ISampleService> >(); mockFactory.Expect(f => f.CreateInstance(It.IsAny <IFactoryRequest>())).Returns(new SampleClass()); var container = new ServiceContainer(); container.AddFactory(mockFactory.Object); var instance = (SampleClassWithFactoryDependency)container.AutoCreate(typeof(SampleClassWithFactoryDependency)); Assert.IsNotNull(instance); IFactory <ISampleService> factory = instance.Factory; factory.CreateInstance(null); mockFactory.VerifyAll(); }