/*
This file is part of EasyTest CodeGen, a project to generate
JUnit test cases from source code in EasyTest Template format and helping to keep them in sync
during refactoring.
EasyTest CodeGen, a tool provided by
EaseTech Organization Under Apache License 2.0
http://www.apache.org/licenses/LICENSE-2.0.txt
*/
package org.easetech.easytest.codegen;
import com.sun.javadoc.ClassDoc;
import com.sun.javadoc.PackageDoc;
import java.util.List;
import java.util.Map;
import java.util.Properties;
/**
* An interface for test code generation strategy for suite, class, test case etc..
*
* @author Ravi Polampelli
*
*/
public interface ITestingStrategy extends IConfigurableStrategy {
// one test suite per package
public boolean isTestablePackage(PackageDoc doc, INamingStrategy naming);
public Properties getTestSuiteProperties(TestSuiteVO testSuiteVO, int indexPackage);
public boolean codeTestSuite(TestSuiteVO testSuiteVO, int index);
//public boolean codeTestSuite(PackageDoc[] packageDocs, int indexPackage, INamingStrategy naming, StringBuffer newCode, Properties properties);
// one test case per public (non abstract) class
public boolean isTestableClass(ClassDoc doc, INamingStrategy naming);
public Properties getTestCaseProperties(TestCaseVO testCaseVO);
public boolean codeTestCase(TestCaseVO testCaseVO);
//
public boolean isValid(String sourceCode);
public boolean merge(StringBuffer inOutCode, StringBuffer inCode, String fullClassName);
// one test per public method name (or less in case of combined tests)
/*
public boolean isTestableMethod(MethodDoc doc);
public Properties getTestProperties(MethodDoc[] methodDocs, int index, ClassDoc classDoc, PackageDoc packageDoc, INamingStrategy naming, Properties properties);
public boolean codeTest(MethodDoc[] methodDocs, int index, ClassDoc classDoc, PackageDoc packageDoc, INamingStrategy naming, StringBuffer newCode, Properties properties);
*/
}