public void PrototypeModeWithSingletonTarget() { TestObject dude = new TestObject("Rick Evans", 30); IObjectFactory objectFactory = mocks.StrictMock <IObjectFactory>(); const string lookupObjectName = "rick"; Expect.Call(objectFactory.GetObject(lookupObjectName)).Return(dude).Repeat.Twice(); ObjectFactoryCreatingFactoryObject factory = new ObjectFactoryCreatingFactoryObject(); factory.ObjectFactory = objectFactory; factory.TargetObjectName = lookupObjectName; factory.IsSingleton = false; factory.AfterPropertiesSet(); mocks.ReplayAll(); IGenericObjectFactory gofOne = (IGenericObjectFactory)factory.GetObject(); IGenericObjectFactory gofTwo = (IGenericObjectFactory)factory.GetObject(); Assert.IsFalse(Object.ReferenceEquals(gofOne, gofTwo), "Not returning distinct instances (Prototype = true)."); TestObject one = (TestObject)gofOne.GetObject(); Assert.IsNotNull(one, "Must never return null (IFactoryObject contract)."); TestObject two = (TestObject)gofTwo.GetObject(); Assert.IsNotNull(two, "Must never return null (IFactoryObject contract)."); Assert.IsTrue(Object.ReferenceEquals(one, two), "Not returning the same instance to singleton object."); mocks.VerifyAll(); }
public void SunnyDay() { TestObject dude = new TestObject("Rick Evans", 30); IObjectFactory objectFactory = mocks.StrictMock <IObjectFactory>(); const string lookupObjectName = "rick"; Expect.Call(objectFactory.GetObject(lookupObjectName)).Return(dude).Repeat.Twice(); ObjectFactoryCreatingFactoryObject factory = new ObjectFactoryCreatingFactoryObject(); factory.ObjectFactory = objectFactory; factory.TargetObjectName = lookupObjectName; factory.AfterPropertiesSet(); mocks.ReplayAll(); IGenericObjectFactory gof = (IGenericObjectFactory)factory.GetObject(); IGenericObjectFactory gofOther = (IGenericObjectFactory)factory.GetObject(); Assert.IsTrue(Object.ReferenceEquals(gof, gofOther), "Not returning a shared instance (Singleton = true)."); TestObject one = (TestObject)gof.GetObject(); Assert.IsNotNull(one, "Must never return null (IFactoryObject contract)."); TestObject two = (TestObject)gof.GetObject(); Assert.IsNotNull(two, "Must never return null (IFactoryObject contract)."); Assert.IsTrue(Object.ReferenceEquals(one, two), "Not returning the same instance."); mocks.VerifyAll(); }
public GenericService(GenericRepository <D> repository, IGenericObjectFactory <D, C> factory, IGenericObjectFactory <D, U> factoryForUpdate) { _repository = repository; _factory = factory; _factoryForUpdate = factoryForUpdate; Log.Information("Inside GenericService Constructor"); Log.Information("{@repositoryType}", repository.GetType()); }
public ProductService(GenericRepository <Product> repository, IGenericObjectFactory <Product, Product> factory, IGenericObjectFactory <Product, Product> factoryForUpdate, IProductRepository productRepository, IHostingEnvironment host) : base(repository, factory, factoryForUpdate) { this.productRepository = productRepository; this.host = host; }