public void TargetType() { MockRepository mocks = new MockRepository(); SideEffectObject target = new SideEffectObject(); IObjectFactory factory = mocks.CreateMock <IObjectFactory>(); using (mocks.Record()) { Expect.Call(factory.IsPrototype(null)).Return(true); Expect.Call(factory.GetType(null)).Return(typeof(SideEffectObject)); } using (mocks.Playback()) { PrototypeTargetSource source = new PrototypeTargetSource(); source.ObjectFactory = factory; Assert.AreEqual(target.GetType(), source.TargetType, "Wrong TargetType being returned."); } }
public void WithNonSingletonTargetObject() { MockRepository mocks = new MockRepository(); IObjectFactory factory = mocks.CreateMock <IObjectFactory>(); const string objectName = "Foo"; using (mocks.Record()) { Expect.Call(factory.IsPrototype(objectName)).Return(false); } using (mocks.Playback()) { PrototypeTargetSource source = new PrototypeTargetSource(); source.TargetObjectName = objectName; Assert.Throws <ObjectDefinitionStoreException>(delegate { source.ObjectFactory = factory; }); } }
public void GetTarget() { MockRepository mocks = new MockRepository(); IObjectFactory factory = mocks.CreateMock <IObjectFactory>(); SideEffectObject target = new SideEffectObject(); using (mocks.Record()) { Expect.Call(factory.IsPrototype("foo")).Return(true); Expect.Call(factory.GetObject("foo")).Return(target); Expect.Call(factory.GetType("foo")).Return(typeof(string)); } using (mocks.Playback()) { PrototypeTargetSource source = new PrototypeTargetSource(); source.TargetObjectName = "foo"; source.ObjectFactory = factory; Assert.IsTrue(object.ReferenceEquals(source.GetTarget(), target), "Initial target source reference not being returned by GetTarget()."); } }
public void AfterPropertiesSetWithoutTargetObjectNameBeingSet() { PrototypeTargetSource source = new PrototypeTargetSource(); Assert.Throws <ArgumentNullException>(() => source.AfterPropertiesSet()); }
public void IsStatic() { PrototypeTargetSource source = new PrototypeTargetSource(); Assert.IsFalse(source.IsStatic, "Must not be static."); }