public void AddAll(TestCase test)
{
// If test invalid
if (null == test)
{
// Error
throw new Exception("Invalid test case encountered.");
}
// For each method in the test case
Type type = test.GetType();
foreach (MethodInfo method in type.GetMethods())
{
// For each unit test attribute
foreach (object obj in method.GetCustomAttributes(typeof(UnitTest), false))
{
// If attribute is valid
Attribute testAtt = obj as Attribute;
if (null != testAtt)
{
// If type has constructors
ConstructorInfo[] ci= type.GetConstructors();
if (0 < ci.Length)
{
// Add the test
TestCase tmp = ci[0].Invoke(null) as TestCase;
tmp.SetTestMethod(method.Name);
m_tests.Add(tmp);
}
}
}
}
}