public void TestUnsupportedTypes() { var factory = new DefaultModelFactory(); Assert.IsFalse(factory.CanCreate(typeof(TestCreatePrivateConstructor))); Assert.IsFalse(factory.CanCreate(typeof(TestCreateArgConstructor))); // Cannot create interface types Assert.IsFalse(factory.CanCreate(typeof(ICloneable))); // Cannot create arrays, since we don't know size upfront Assert.IsFalse(factory.CanCreate(typeof(int[]))); }
public void TestSupportedTypes() { var factory = new DefaultModelFactory(); // Test creation of a class with no constructor Assert.IsTrue(factory.CanCreate(typeof(TestCreate))); Assert.IsNotNull(factory.Create(typeof(TestCreate))); // Test creation of class with a public no-args constructor Assert.IsTrue(factory.CanCreate(typeof(TestCreatePublicConstructor))); Assert.IsNotNull(factory.Create(typeof(TestCreatePublicConstructor))); // Test creation of primitives Assert.IsTrue(factory.CanCreate(typeof(int))); Assert.IsNotNull(factory.Create(typeof(int))); // Test creation of Nullable<T> Assert.IsTrue(factory.CanCreate(typeof(int?))); Assert.IsNotNull(factory.Create(typeof(int?))); // Test handling of collection interfaces object collection = null; Assert.IsTrue(factory.CanCreate(typeof(ICollection<string>))); collection = factory.Create(typeof(ICollection<string>)); Assert.IsNotNull(collection); Assert.IsTrue(collection is List<string>); Assert.IsTrue(factory.CanCreate(typeof(IList<HumanName>))); Assert.IsNotNull(factory.Create(typeof(ICollection<HumanName>))); Assert.IsTrue(factory.CanCreate(typeof(IList<int?>))); collection = factory.Create(typeof(ICollection<int?>)); Assert.IsNotNull(collection); Assert.IsTrue(collection is List<int?>); // Test handling of closed generics Assert.IsTrue(factory.CanCreate(typeof(Code<Address.AddressUse>))); Assert.IsNotNull(factory.Create(typeof(Code<Address.AddressUse>))); }