public void KnownType_Utilities_Import_MethodName_Arg() { // Presence of [KnownType] using Type[] returning method works IEnumerable <Type> knownTypes = KnownTypeUtil.ImportKnownTypes(typeof(KTU_Type_With_Array_Method), false /* inherit */); Assert.IsNotNull(knownTypes); Assert.AreEqual(2, knownTypes.Count()); Assert.IsTrue(knownTypes.Contains(typeof(KTU_2))); Assert.IsTrue(knownTypes.Contains(typeof(KTU_3))); // Presence of [KnownType] using IEnumerable<Type> returning method works knownTypes = KnownTypeUtil.ImportKnownTypes(typeof(KTU_Type_With_Enumerable_Method), false /* inherit */); Assert.IsNotNull(knownTypes); Assert.AreEqual(2, knownTypes.Count()); Assert.IsTrue(knownTypes.Contains(typeof(KTU_3))); Assert.IsTrue(knownTypes.Contains(typeof(KTU_4))); // Presence of [KnownType] using all known forms works knownTypes = KnownTypeUtil.ImportKnownTypes(typeof(KTU_Type_With_Enumerable_All_Forms), false /* inherit */); Assert.IsNotNull(knownTypes); Assert.AreEqual(4, knownTypes.Count()); Assert.IsTrue(knownTypes.Contains(typeof(KTU_1))); Assert.IsTrue(knownTypes.Contains(typeof(KTU_2))); Assert.IsTrue(knownTypes.Contains(typeof(KTU_3))); Assert.IsTrue(knownTypes.Contains(typeof(KTU_4))); }
public void KnownType_Utilities_Import_Inherit() { // ---------------- // Inherit = false // ---------------- IEnumerable <Type> knownTypes = KnownTypeUtil.ImportKnownTypes(typeof(KTU_Simple), false /* inherit */); Assert.IsNotNull(knownTypes); Assert.AreEqual(2, knownTypes.Count()); Assert.IsFalse(knownTypes.Contains(typeof(KTU_00))); // declared on base-most type -- should not be seen Assert.IsFalse(knownTypes.Contains(typeof(KTU_0))); // declared on base type -- should not be seen Assert.IsTrue(knownTypes.Contains(typeof(KTU_1))); Assert.IsTrue(knownTypes.Contains(typeof(KTU_2))); // ---------------- // Inherit = true // ---------------- knownTypes = KnownTypeUtil.ImportKnownTypes(typeof(KTU_Simple), true /* inherit */); Assert.IsNotNull(knownTypes); Assert.AreEqual(4, knownTypes.Count()); Assert.IsTrue(knownTypes.Contains(typeof(KTU_00))); Assert.IsTrue(knownTypes.Contains(typeof(KTU_0))); Assert.IsTrue(knownTypes.Contains(typeof(KTU_1))); Assert.IsTrue(knownTypes.Contains(typeof(KTU_2))); }
public void KnownType_Utilities_Import_Type_Arg() { // Absence of [KnownTypes] returns empty list IEnumerable <Type> knownTypes = KnownTypeUtil.ImportKnownTypes(typeof(KTU_1), false /* inherit */); Assert.IsNotNull(knownTypes); Assert.AreEqual(0, knownTypes.Count()); // Presence of [KnownType] using Type member works knownTypes = KnownTypeUtil.ImportKnownTypes(typeof(KTU_Simple), false); Assert.IsNotNull(knownTypes); Assert.AreEqual(2, knownTypes.Count()); Assert.IsTrue(knownTypes.Contains(typeof(KTU_1))); Assert.IsTrue(knownTypes.Contains(typeof(KTU_2))); }