public void TestThrowOnEmployAbstractClass() { InstanceEmployer <Base> testEmployer = new InstanceEmployer <Base>(); Assert.Throws <MissingMethodException>( delegate() { testEmployer.Employ(typeof(Base)); } ); }
public void TestCanEmploy() { InstanceEmployer <Base> testEmployer = new InstanceEmployer <Base>(); Assert.IsFalse(testEmployer.CanEmploy(typeof(Base))); Assert.IsTrue(testEmployer.CanEmploy(typeof(Derived))); Assert.IsFalse(testEmployer.CanEmploy(typeof(Unrelated))); }
public void TestThrowOnEmployGenericClass() { InstanceEmployer <Base> testEmployer = new InstanceEmployer <Base>(); Assert.Throws <ArgumentException>( delegate() { testEmployer.Employ(typeof(GenericDerived <>)); } ); }
public void TestThrowOnEmployUnrelatedClass() { InstanceEmployer <Base> testEmployer = new InstanceEmployer <Base>(); Assert.Throws <InvalidCastException>( delegate() { testEmployer.Employ(typeof(Unrelated)); } ); }
public void TestEmployProduct() { InstanceEmployer <Unrelated> testEmployer = new InstanceEmployer <Unrelated>(); testEmployer.Employ(typeof(Unrelated)); Assert.AreEqual(1, testEmployer.Instances.Count); Assert.AreEqual(typeof(Unrelated), testEmployer.Instances[0].GetType()); Assert.IsInstanceOf <Unrelated>(testEmployer.Instances[0]); }
public void TestEmployClassDerivedFromProduct() { InstanceEmployer <Base> testEmployer = new InstanceEmployer <Base>(); testEmployer.Employ(typeof(Derived)); Assert.AreEqual(1, testEmployer.Instances.Count); Assert.AreEqual(typeof(Derived), testEmployer.Instances[0].GetType()); Assert.IsInstanceOf <Derived>(testEmployer.Instances[0]); }