public void BusinessLogicViewModel_Add_ValidGenericTypeParam_Only() { // This test is for the CodeGenUtilities.IsValidGenericTypeParam which is used // by the BusinessLogicClassViewModel to determine what contexts to load and // what enitites to enable. Type[] candidates = new Type[] { typeof(PublicEmptyType), typeof(PublicNonEmptyClass), typeof(PublicNoDefaultCtrClass), typeof(PrivateEmptyClass), typeof(PrivateNonEmptyClass), typeof(PrivateNoDefaultCtrClass), typeof(InternalEmptyType), typeof(InternalNonEmptyClass), typeof(InternalNoDefaultCtrClass), typeof(InterfaceType), typeof(PublicAbstractType), typeof(PrivateAbstractType), typeof(InternalAbstractType), typeof(PublicStructType), typeof(PrivateStructType), typeof(InternalStructType), }; Type[] validTypes = new Type[] { typeof(PublicEmptyType), typeof(PublicNonEmptyClass), typeof(PublicAbstractType), }; List <Type> actualTypes = new List <Type>(); foreach (Type candidate in candidates) { if (CodeGenUtilities.IsValidGenericTypeParam(candidate)) { actualTypes.Add(candidate); } } Assert.AreEqual(validTypes.Length, actualTypes.Count, "Invalid types in resulting list!"); // The list of contexts must be sorted foreach (Type validType in validTypes) { Assert.IsTrue(actualTypes.Contains(validType), "Valid type missing from resulting list!"); } }