public TestSuite testSuiteFromClass(Class<?> clss) throws TestSuiteCreationException {
        
        final Method[] methods = clss.getMethods();
        Method beforeSuite = null;
        Method afterSuite = null;
        
        // Search the before- and after- suite methods in the test suite class //
        // Only one before- and after- suite methods are allowed in the suite //
        for(Method method : methods) {
            if(isBeforeSuite(method)) {
                if(beforeSuite != null) {
                    throw new TestSuiteCreationException("Test suite class has more than one before suite");
                }
                beforeSuite = method;
                continue;
            }
            
            if(isAfterSuite(method)) {
                if(afterSuite != null) {
                    throw new TestSuiteCreationException("Test suite class has more than one after suite");
                }
                afterSuite = method;
                continue;
            }
        }
        
        final Collection<TestProperty> properties = testPropertyFactory.testProperties(clss);
        return new TestSuite(beforeSuite, properties, afterSuite, clss.getCanonicalName());
    }