blob: 9f79ae179c602ed899c8676b9e447be8c0813887 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2000, 2005 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.jdt.ui.tests.core.source;
import java.io.IOException;
import java.util.Hashtable;
import junit.framework.TestCase;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.jdt.core.ICompilationUnit;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.IPackageFragment;
import org.eclipse.jdt.core.IPackageFragmentRoot;
import org.eclipse.jdt.core.IType;
import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants;
import org.eclipse.jdt.internal.corext.codemanipulation.CodeGenerationSettings;
import org.eclipse.jdt.internal.corext.codemanipulation.StubUtility;
import org.eclipse.jdt.internal.corext.template.java.CodeTemplateContextType;
import org.eclipse.jdt.internal.ui.preferences.JavaPreferencesSettings;
import org.eclipse.jdt.testplugin.JavaProjectHelper;
import org.eclipse.jdt.testplugin.StringAsserts;
import org.eclipse.jdt.testplugin.TestOptions;
public class SourceTestCase extends TestCase {
private IJavaProject fJavaProject;
protected IPackageFragment fPackageP;
protected CodeGenerationSettings fSettings;
protected IType fClassA;
private ICompilationUnit fCuA;
protected IPackageFragmentRoot fRoot;
public SourceTestCase(String name) {
super(name);
}
private void initCodeTemplates() {
Hashtable options= TestOptions.getDefaultOptions();
options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaCore.TAB);
options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_SIZE, "4");
options.put(DefaultCodeFormatterConstants.FORMATTER_LINE_SPLIT, "999");
options.put(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_BEFORE_FIELD, "1");
options.put(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_BEFORE_METHOD, "1");
JavaCore.setOptions(options);
String getterComment= "/**\r\n" + " * @return Returns the ${bare_field_name}.\r\n" + " */";
String getterBody= "return ${field};";
String setterComment= "/**\r\n" + " * @param ${param} The ${bare_field_name} to set.\r\n" + " */";
String setterBody= "${field} = ${param};";
StubUtility.setCodeTemplate(CodeTemplateContextType.GETTERCOMMENT_ID, getterComment, null);
StubUtility.setCodeTemplate(CodeTemplateContextType.SETTERCOMMENT_ID, setterComment, null);
StubUtility.setCodeTemplate(CodeTemplateContextType.GETTERSTUB_ID, getterBody, null);
StubUtility.setCodeTemplate(CodeTemplateContextType.SETTERSTUB_ID, setterBody, null);
String methodComment= "/**\r\n" + " * ${tags}\r\n" + " */";
String methodBody= "// ${todo} Auto-generated method stub\r\n" + "${body_statement}";
String constructorComment= "/**\r\n" + " * ${tags}\r\n" + " */";
String constructorBody= "${body_statement}\r\n" + "// ${todo} Auto-generated constructor stub";
StubUtility.setCodeTemplate(CodeTemplateContextType.METHODCOMMENT_ID, methodComment, null);
StubUtility.setCodeTemplate(CodeTemplateContextType.METHODSTUB_ID, methodBody, null);
StubUtility.setCodeTemplate(CodeTemplateContextType.CONSTRUCTORCOMMENT_ID, constructorComment, null);
StubUtility.setCodeTemplate(CodeTemplateContextType.CONSTRUCTORSTUB_ID, constructorBody, null);
fSettings= JavaPreferencesSettings.getCodeGenerationSettings(null);
fSettings.createComments= true;
}
protected void setUp() throws CoreException {
fJavaProject= JavaProjectHelper.createJavaProject("DummyProject", "bin");
assertNotNull(JavaProjectHelper.addRTJar(fJavaProject));
fRoot= JavaProjectHelper.addSourceContainer(fJavaProject, "src");
fPackageP= fRoot.createPackageFragment("p", true, null);
fCuA= fPackageP.getCompilationUnit("A.java");
fClassA= fCuA.createType("public class A {\n}\n", null, true, null);
initCodeTemplates();
}
protected void tearDown() throws Exception {
JavaProjectHelper.delete(fJavaProject);
fJavaProject= null;
fPackageP= null;
}
protected void compareSource(String expected, String actual) throws IOException {
StringAsserts.assertEqualStringIgnoreDelim(actual, expected);
}
protected void printTestDisabledMessage(String explanation) {
System.out.println("\n" + getClass().getName() + "::" + getName() + " disabled (" + explanation + ")");
}
}