Exemple #1
0
        /// <summary>
        /// using type location, examines the appdomain for ITestOfs
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <returns></returns>
        public static List <ITestOf <T> > LocateTests <T>()
        {
            Type genType = typeof(ITestOf <>);
            var  tests   = TheTypeLocator.Instance.Locator.Locate((t) =>
            {
                if (!t.HasGenericDefinition(genType))
                {
                    return(false);
                }

                var type  = t.GetGenericParameterType(genType);
                var ttype = typeof(T);
                if (ttype.Equals(type))
                {
                    return(true);
                }
                if (type.IsSubclassOf(type))
                {
                    return(true);
                }

                return(false);
            });

            List <ITestOf <T> > rv = new List <ITestOf <T> >();

            tests.WithEach((testType) =>
            {
                ITestOf <T> test = (ITestOf <T>)Activator.CreateInstance(testType);
                rv.Add(test);
            });

            return(rv);
        }
Exemple #2
0
 /// <summary>
 /// Performs a single test
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="item"></param>
 /// <param name="test"></param>
 /// <returns></returns>
 public static TestOfResult Test <T>(T item, ITestOf <T> test)
 {
     try
     {
         test.Test(item);
         return(new TestOfResult(test.GetType(), null));
     }
     catch (Exception ex)
     {
         return(new TestOfResult(test.GetType(), ex));
     }
 }