public void ItShouldRequestParametersForConstructor() { constructorResolver.Setup(r => r.GetConstructor(It.IsAny <Type>())).Returns(ParameterClass.GetParameterlessConstructor()); dependencyResolver.Setup(r => r.Resolve(It.IsAny <ConstructorInfo>())).Returns(new object[] { }).Verifiable(); var factory = new TransientFactory(typeof(ParameterClass), constructorResolver.Object, dependencyResolver.Object); factory.Build(); dependencyResolver.Verify(r => r.Resolve(It.IsAny <ConstructorInfo>())); }
public void ItShouldReturnANewInstance() { constructorResolver.Setup(r => r.GetConstructor(It.IsAny <Type>())).Returns(ParameterClass.GetParameterlessConstructor()); dependencyResolver.Setup(r => r.Resolve(ParameterClass.GetParameterlessConstructor())).Returns(new object[] { }); var factory = new TransientFactory(typeof(ParamaterLessClass), constructorResolver.Object, dependencyResolver.Object); var object1 = factory.Build(); var object2 = factory.Build(); Assert.NotSame(object1, object2); }
private void CreateFactory(ComponentRegistration key, Delegate factoryDelegate, InstanceMode instanceMode) { IFactoryProvider factoryProvider = null; if (instanceMode == InstanceMode.Transient) { factoryProvider = new TransientFactory(factoryDelegate); } if (instanceMode == InstanceMode.Singleton) { factoryProvider = new SingletonFactory(factoryDelegate); } lock (syncLock) { components[key] = factoryProvider; } }