/******************************************************************************* * Copyright (c) 2000, 2009 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.core.tests.compiler.parser; import java.util.Locale; import junit.framework.Test; import org.eclipse.jdt.core.compiler.CategorizedProblem; import org.eclipse.jdt.core.compiler.CharOperation; import org.eclipse.jdt.core.tests.util.AbstractCompilerTest; import org.eclipse.jdt.internal.compiler.ISourceElementRequestor; import org.eclipse.jdt.internal.compiler.SourceElementParser; import org.eclipse.jdt.internal.compiler.ast.Expression; import org.eclipse.jdt.internal.compiler.ast.ImportReference; import org.eclipse.jdt.internal.compiler.batch.CompilationUnit; import org.eclipse.jdt.internal.compiler.classfmt.ClassFileConstants; import org.eclipse.jdt.internal.compiler.env.ICompilationUnit; import org.eclipse.jdt.internal.compiler.impl.CompilerOptions; import org.eclipse.jdt.internal.compiler.problem.DefaultProblemFactory; public class SourceElementParserTest extends AbstractCompilerTest implements ISourceElementRequestor { private SourceType currentType; private SourceMethod currentMethod; private SourceField currentField; private SourceInitializer currentInitializer; private char[] source; private SourcePackage currentPackage; private SourceImport[] currentImports; private int numberOfImports; public SourceElementParserTest(String testName) { super(testName); } public SourceElementParserTest(String testName, char[] source) { super(testName); this.source = source; } static { // TESTS_NUMBERS = new int[] { 99662 }; } public static Test suite() { return buildAllCompliancesTestSuite(SourceElementParserTest.class); } /** * acceptAnnotationTypeReference method comment. */ public void acceptAnnotationTypeReference(char[][] typeName, int sourceStart, int sourceEnd) {} /** * acceptAnnotationTypeReference method comment. */ public void acceptAnnotationTypeReference(char[] typeName, int sourcePosition) {} /** * acceptConstructorReference method comment. */ public void acceptConstructorReference(char[] typeName, int argCount, int sourcePosition) { if (currentMethod == null) { if (currentType != null) { StringBuffer buffer = new StringBuffer(); buffer.append(typeName).append("(").append(argCount).append(")\n"); currentType.setDefaultConstructor(buffer.toString()); } return; } if (currentMethod.isConstructor()) { StringBuffer buffer = new StringBuffer(); buffer.append(typeName).append("(").append(argCount).append(")\n"); currentMethod.setExplicitConstructorCall(buffer.toString()); } else { if (currentType != null) { StringBuffer buffer = new StringBuffer(); buffer.append(typeName).append("(").append(argCount).append(")\n"); currentType.setDefaultConstructor(buffer.toString()); } } } /** * acceptFieldReference method comment. */ public void acceptFieldReference(char[] fieldName, int sourcePosition) {} /** * acceptImport method comment. 3.7 variant */ public void acceptImport( int declarationStart, int declarationEnd, int nameStart, int nameEnd, char[][] tokens, boolean onDemand, int modifiers) { addImport( new SourceImport(declarationStart, declarationEnd, CharOperation.concatWith(tokens, '.'), onDemand, modifiers, source)); } /** * acceptImport method comment. 3.6 variant */ public void acceptImport( int declarationStart, int declarationEnd, char[][] tokens, boolean onDemand, int modifiers) { addImport( new SourceImport(declarationStart, declarationEnd, CharOperation.concatWith(tokens, '.'), onDemand, modifiers, source)); } /** * acceptLineSeparatorPositions method comment. */ public void acceptLineSeparatorPositions(int[] positions) {} /** * acceptMethodReference method comment. */ public void acceptMethodReference(char[] methodName, int argCount, int sourcePosition) {} /** * acceptPackage method comment. */ public void acceptPackage(ImportReference importReference) { currentPackage = new SourcePackage(importReference.declarationSourceStart, importReference.declarationSourceEnd, CharOperation.concatWith(importReference.getImportName(), '.'), source); } /** * acceptProblem method comment. */ public void acceptProblem(CategorizedProblem problem) {} /** * acceptTypeReference method comment. */ public void acceptTypeReference(char[][] typeName, int sourceStart, int sourceEnd) {} /** * acceptTypeReference method comment. */ public void acceptTypeReference(char[] typeName, int sourcePosition) {} /** * acceptUnknownReference method comment. */ public void acceptUnknownReference(char[][] name, int sourceStart, int sourceEnd) {} /** * acceptUnknownReference method comment. */ public void acceptUnknownReference(char[] name, int sourcePosition) {} protected void addImport(SourceImport sourceImport) { if (currentImports == null) { currentImports = new SourceImport[4]; } if (numberOfImports == currentImports.length) { System.arraycopy( currentImports, 0, currentImports = new SourceImport[numberOfImports * 2], 0, numberOfImports); } currentImports[numberOfImports++] = sourceImport; } public void dietParse(String s, String testName) { this.dietParse(s, testName, false); } public void dietParse(String s, String testName, boolean recordLocalDeclaration) { this.source = s.toCharArray(); reset(); SourceElementParser parser = new SourceElementParser( this, new DefaultProblemFactory(Locale.getDefault()), new CompilerOptions(getCompilerOptions()), recordLocalDeclaration/*don't record local declarations*/, true/*optimize string literals*/); ICompilationUnit sourceUnit = new CompilationUnit(source, testName, null); parser.parseCompilationUnit(sourceUnit, false, null); } public static String displayModifiers(int modifiers) { StringBuffer buffer = new StringBuffer(); if ((modifiers & ClassFileConstants.AccPublic) != 0) buffer.append("public "); if ((modifiers & ClassFileConstants.AccProtected) != 0) buffer.append("protected "); if ((modifiers & ClassFileConstants.AccPrivate) != 0) buffer.append("private "); if ((modifiers & ClassFileConstants.AccFinal) != 0) buffer.append("final "); if ((modifiers & ClassFileConstants.AccStatic) != 0) buffer.append("static "); if ((modifiers & ClassFileConstants.AccAbstract) != 0) buffer.append("abstract "); if ((modifiers & ClassFileConstants.AccNative) != 0) buffer.append("native "); if ((modifiers & ClassFileConstants.AccSynchronized) != 0) buffer.append("synchronized "); return buffer.toString(); } public void enterType(TypeInfo typeInfo) { if (currentType == null) { // top level type currentType = new SourceType( null, typeInfo.declarationStart, typeInfo.modifiers, typeInfo.name, typeInfo.nameSourceStart, typeInfo.nameSourceEnd, typeInfo.superclass, typeInfo.superinterfaces, source); currentType.setPackage(currentPackage); setImports(); } else { // member type SourceType memberType; currentType.addMemberType( memberType = new SourceType( currentType.getName(), typeInfo.declarationStart, typeInfo.modifiers, typeInfo.name, typeInfo.nameSourceStart, typeInfo.nameSourceEnd, typeInfo.superclass, typeInfo.superinterfaces, source)); memberType.parent = currentType; currentType = memberType; } if (typeInfo.typeParameters != null) { for (int i = 0, length = typeInfo.typeParameters.length; i < length; i++) { TypeParameterInfo typeParameterInfo = typeInfo.typeParameters[i]; addTypeParameter(typeParameterInfo); } } } public void enterCompilationUnit() { } public void enterConstructor(MethodInfo methodInfo) { enterAbtractMethod(methodInfo); } public void enterField(FieldInfo fieldInfo) { currentType.addField( currentField = new SourceField( fieldInfo.declarationStart, fieldInfo.modifiers, fieldInfo.type, fieldInfo.name, fieldInfo.nameSourceStart, fieldInfo.nameSourceEnd, source)); } public void enterInitializer(int declarationSourceStart, int modifiers) { currentType.addField( currentInitializer = new SourceInitializer( declarationSourceStart, modifiers)); } public void exitInitializer(int declarationSourceEnd) { currentInitializer.setDeclarationSourceEnd(declarationSourceEnd); } public void enterMethod(MethodInfo methodInfo) { enterAbtractMethod(methodInfo); } protected void enterAbtractMethod(MethodInfo methodInfo) { currentType.addMethod( currentMethod = new SourceMethod( methodInfo.declarationStart, methodInfo.modifiers, methodInfo.returnType, methodInfo.name, // null for constructors methodInfo.nameSourceStart, methodInfo.nameSourceEnd, methodInfo.parameterTypes, methodInfo.parameterNames, methodInfo.exceptionTypes, source)); if (methodInfo.typeParameters != null) { for (int i = 0, length = methodInfo.typeParameters.length; i < length; i++) { TypeParameterInfo typeParameterInfo = methodInfo.typeParameters[i]; addTypeParameter(typeParameterInfo); } } } public void addTypeParameter(TypeParameterInfo typeParameterInfo) { if (currentMethod.typeParameterNames == null) { currentMethod.typeParameterNames = new char[][] {typeParameterInfo.name}; currentMethod.typeParameterBounds = new char[][][] {typeParameterInfo.bounds}; } else { int length = currentMethod.typeParameterNames.length; System.arraycopy(currentMethod.typeParameterNames, 0, currentMethod.typeParameterNames = new char[length+1][],0, length); currentMethod.typeParameterNames[length] = typeParameterInfo.name; System.arraycopy(currentMethod.typeParameterBounds, 0, currentMethod.typeParameterBounds = new char[length+1][][],0, length); currentMethod.typeParameterBounds[length] = typeParameterInfo.bounds; } } public void exitType(int declarationEnd) { currentType.setDeclarationSourceEnd(declarationEnd); if (currentType.parent != null) { currentType = currentType.parent; } } public void exitCompilationUnit(int declarationEnd) {} public void exitConstructor(int declarationEnd) { exitAbstractMethod(declarationEnd); } public void exitField(int initializationStart, int declarationEnd, int declarationSourceEnd) { currentField.setDeclarationSourceEnd(declarationEnd); } public void exitMethod(int declarationEnd, Expression defaultValue) { exitAbstractMethod(declarationEnd); } protected void exitAbstractMethod(int declarationEnd) { currentMethod.setDeclarationSourceEnd(declarationEnd); } public void fullParse(String s, String testName) { this.fullParse(s, testName, false); } public void fullParse(String s, String testName, boolean recordLocalDeclaration) { this.source = s.toCharArray(); reset(); SourceElementParser parser = new SourceElementParser( this, new DefaultProblemFactory(Locale.getDefault()), new CompilerOptions(getCompilerOptions()), recordLocalDeclaration/*don't record local declarations*/, true/*optimize string literals*/); ICompilationUnit sourceUnit = new CompilationUnit(source, testName, null); parser.parseCompilationUnit(sourceUnit, true, null); } public void reset() { currentType = null; currentMethod = null; currentField = null; currentPackage = null; currentImports = null; numberOfImports = 0; } public void setImports() { if (currentImports == null) return; if (numberOfImports != currentImports.length) { System.arraycopy( currentImports, 0, currentImports = new SourceImport[numberOfImports], 0, numberOfImports); } currentType.setImports(currentImports); } public void test01() { String s = "package a;\n" + "import java.lang.*;\n" + "import java.util.*;\n" + "\n" + "public class X {\n" + "void foo() {\n" + "System.out.println();\n" + "\n" + "public int h;\n" + "public int[] i = { 0, 1 };\n" + "\n" + "int bar" + "\\" + "u0065(){\n" + "void truc(){\n" + "}\n"; String expectedUnitToString = "package a;\n" + "import java.lang.*;\n" + "import java.util.*;\n" + "public class X {\n" + "\tpublic int h;\n" + "\tpublic int[] i;\n" + "\tjava.lang.Object(0)\n" + "\tvoid foo() {}\n" + "\tint bare() {}\n" + "\tvoid truc() {}\n" + "}"; String testName = "test01: full parse"; fullParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 52, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 178, currentType.getDeclarationSourceEnd()); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields != null); assertEquals("Invalid fields length ", 2, fields.length); assertEquals("Invalid declaration source start for field h", 105, fields[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field h", 117, fields[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for field i", 119, fields[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field i", 144, fields[1].getDeclarationSourceEnd()); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals("Invalid methods length ", 3, methods.length); assertEquals("Invalid declaration source start for method foo", 69, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method foo", 103, methods[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method bare", 147, methods[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method bare", 163, methods[1].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method truc", 164, methods[2].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method truc", 177, methods[2].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName()); assertEquals(" Invalid actual name for method bare", "bar" + "\\" + "u0065", methods[1].getActualName()); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test02() { String s = "/** javadoc comment */\n" + "public class X {\n" + "}\n"; String expectedUnitToString = "public class X {\n" + "\tjava.lang.Object(0)\n" + "}"; String testName = "test02: full parse"; fullParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 0, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 40, currentType.getDeclarationSourceEnd()); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test03() { String s = "package a;\n" + "import java.lang.*;\n" + "import java.util.*;\n" + "\n" + "public class X {\n" + "void foo() {\n" + "System.out.println();\n" + "\n" + "public int h;\n" + "public int[] i = { 0, 1 };\n" + "\n" + "int bar" + "\\" + "u0065(){\n" + "void truc(){\n" + "}\n"; String expectedUnitToString = "package a;\n" + "import java.lang.*;\n" + "import java.util.*;\n" + "public class X {\n" + "\tpublic int h;\n" + "\tpublic int[] i;\n" + "\tvoid foo() {}\n" + "\tint bare() {}\n" + "\tvoid truc() {}\n" + "}"; String testName = "test03: diet parse"; dietParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 52, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 178, currentType.getDeclarationSourceEnd()); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields != null); assertEquals("Invalid fields length ", 2, fields.length); assertEquals("Invalid declaration source start for field h", 105, fields[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field h", 117, fields[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for field i", 119, fields[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field i", 144, fields[1].getDeclarationSourceEnd()); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals("Invalid methods length ", 3, methods.length); assertEquals("Invalid declaration source start for method foo", 69, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method foo", 103, methods[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method bar", 147, methods[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method bar", 163, methods[1].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method truc", 164, methods[2].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method truc", 177, methods[2].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName()); assertEquals(" Invalid actual name for method bare", "bar" + "\\" + "u0065", methods[1].getActualName()); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test04() { String s = "package a; \n" + "import java.lang.*; \n" + "import java.util.*; \n" + " \n" + "public class X { \n" + " void foo() { \n" + " System.out.println(); \n" + " \n" + " class L { \n" + " void baz(){} \n" + " } \n" + " \n" + " public int h; \n" + " public int[] i = { 0, 1 }; \n" + " \n" + " void bar(){ \n" + " void truc(){ \n" + "} \n"; String expectedUnitToString = "package a;\n" + "import java.lang.*;\n" + "import java.util.*;\n" + "public class X {\n" + "\tpublic int h;\n" + "\tpublic int[] i;\n" + "\tjava.lang.Object(0)\n" + "\tvoid foo() {}\n" + "\tvoid bar() {}\n" + "\tvoid truc() {}\n" + "}"; String testName = "test04: full parse"; fullParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 89, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 372, currentType.getDeclarationSourceEnd()); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields != null); assertEquals("Invalid fields length ", 2, fields.length); assertEquals("Invalid declaration source start for field h", 248, fields[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field h", 260, fields[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for field i", 271, fields[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field i", 296, fields[1].getDeclarationSourceEnd()); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals("Invalid methods length ", 3, methods.length); assertEquals("Invalid declaration source start for method foo", 115, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method foo", 222, methods[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method bar", 317, methods[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method bar", 337, methods[1].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method truc", 339, methods[2].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method truc", 360, methods[2].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName()); assertEquals(" Invalid actual name for method bar", "bar", methods[1].getActualName()); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test05() { String s = "package a; \n" + "import java.lang.*; \n" + "import java.util.*; \n" + " \n" + "public class X { \n" + " void foo() { \n" + " System.out.println(); \n" + " \n" + " class L { \n" + " void baz(){} \n" + " } \n" + " \n" + " public int h; \n" + " public int[] i = { 0, 1 }; \n" + " \n" + " void bar(){ \n" + " void truc(){ \n" + "} \n"; String expectedUnitToString = "package a;\n" + "import java.lang.*;\n" + "import java.util.*;\n" + "public class X {\n" + "\tpublic int h;\n" + "\tpublic int[] i;\n" + "\tvoid foo() {}\n" + "\tvoid bar() {}\n" + "\tvoid truc() {}\n" + "}"; String testName = "test05: diet parse"; dietParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 89, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 372, currentType.getDeclarationSourceEnd()); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields != null); assertEquals("Invalid fields length ", 2, fields.length); assertEquals("Invalid declaration source start for field h", 248, fields[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field h", 260, fields[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for field i", 271, fields[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field i", 296, fields[1].getDeclarationSourceEnd()); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals("Invalid methods length ", 3, methods.length); assertEquals("Invalid declaration source start for method foo", 115, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method foo", 222, methods[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method bar", 317, methods[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method bar", 337, methods[1].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method truc", 339, methods[2].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method truc", 360, methods[2].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName()); assertEquals(" Invalid actual name for method bar", "bar", methods[1].getActualName()); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test06() { String s = "package a; \n" + "import java.lang.*; \n" + "import java.util.*; \n" + " \n" + "public class X { \n" + " X x; \n" + " Object a, b = null; \n" + " void foo() { \n" + " System.out.println(); \n" + " \n" + " public int h; \n" + " public int[] i = { 0, 1 }; \n" + " \n" + " void bar(){ \n" + " void truc(){ \n" + "} \n"; String expectedUnitToString = "package a;\n" + "import java.lang.*;\n" + "import java.util.*;\n" + "public class X {\n" + "\tX x;\n" + "\tObject a;\n" + "\tObject b;\n" + "\tpublic int h;\n" + "\tpublic int[] i;\n" + "\tvoid foo() {}\n" + "\tvoid bar() {}\n" + "\tvoid truc() {}\n" + "}"; String testName = "test06: diet parse"; dietParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 89, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 347, currentType.getDeclarationSourceEnd()); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields != null); assertEquals("Invalid fields length ", 5, fields.length); assertEquals("Invalid declaration source start for field x", 115, fields[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field x", 118, fields[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for field a", 131, fields[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field a", 139, fields[1].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for field b", 131, fields[2].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field b", 149, fields[2].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for field h", 223, fields[3].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field h", 235, fields[3].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for field i", 246, fields[4].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field i", 271, fields[4].getDeclarationSourceEnd()); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals("Invalid methods length ", 3, methods.length); assertEquals("Invalid declaration source start for method foo", 159, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method foo", 221, methods[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method bar", 292, methods[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method bar", 312, methods[1].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method truc", 314, methods[2].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method truc", 335, methods[2].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName()); assertEquals(" Invalid actual name for method bar", "bar", methods[1].getActualName()); assertEquals(" Invalid actual name for method truc", "truc", methods[2].getActualName()); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test07() { String s = "package a; \n" + "import java.lang.*; \n" + "import java.util.*; \n" + " \n" + "public class X { \n" + " X x; \n" + " Object a, b = null; \n" + " void foo() { \n" + " System.out.println(); \n" + " \n" + " public int h; \n" + " public int[] i = { 0, 1 }; \n" + " \n" + " void bar(){ \n" + " void truc(){ \n" + "} \n"; String expectedUnitToString = "package a;\n" + "import java.lang.*;\n" + "import java.util.*;\n" + "public class X {\n" + "\tX x;\n" + "\tObject a;\n" + "\tObject b;\n" + "\tpublic int h;\n" + "\tpublic int[] i;\n" + "\tjava.lang.Object(0)\n" + "\tvoid foo() {}\n" + "\tvoid bar() {}\n" + "\tvoid truc() {}\n" + "}"; String testName = "test07: full parse"; fullParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 89, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 347, currentType.getDeclarationSourceEnd()); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields != null); assertEquals("Invalid fields length ", 5, fields.length); assertEquals("Invalid declaration source start for field xh", 115, fields[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field x", 118, fields[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for field a", 131, fields[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field a", 139, fields[1].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for field b", 131, fields[2].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field b", 149, fields[2].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for field h", 223, fields[3].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field h", 235, fields[3].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for field i", 246, fields[4].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field i", 271, fields[4].getDeclarationSourceEnd()); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals("Invalid methods length ", 3, methods.length); assertEquals("Invalid declaration source start for method foo", 159, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method foo", 221, methods[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method bar", 292, methods[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method bar", 312, methods[1].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method truc", 314, methods[2].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method truc", 335, methods[2].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName()); assertEquals(" Invalid actual name for method bar", "bar", methods[1].getActualName()); assertEquals(" Invalid actual name for method truc", "truc", methods[2].getActualName()); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test08() { String s = "public class X { \n" + " void foo() { \n" + " System.out.println(); \n" + " void baz(){} \n" + " } \n" + " \n" + " void bar(){ \n" + " } \n" + " void truc(){ \n" + " } \n" + "} \n"; String expectedUnitToString = "public class X {\n" + "\tvoid foo() {}\n" + "\tvoid bar() {}\n" + "\tvoid truc() {}\n" + "}"; String testName = "test08: diet parse"; dietParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 0, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 198, currentType.getDeclarationSourceEnd()); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields == null); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals("Invalid methods length ", 3, methods.length); assertEquals("Invalid declaration source start for method foo", 27, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method foo", 100, methods[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method bar", 127, methods[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method bar", 149, methods[1].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method truc", 163, methods[2].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method truc", 185, methods[2].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName()); assertEquals(" Invalid actual name for method bar", "bar", methods[1].getActualName()); assertEquals(" Invalid actual name for method truc", "truc", methods[2].getActualName()); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test09() { String s = "public class X { \n" + " void foo() { \n" + " System.out.println(); \n" + " void baz(){} \n" + " } \n" + " \n" + " void bar(){ \n" + " } \n" + " void truc(){ \n" + " } \n" + "} \n"; String expectedUnitToString = "public class X {\n" + "\tjava.lang.Object(0)\n" + "\tvoid foo() {}\n" + "\tvoid bar() {}\n" + "\tvoid truc() {}\n" + "}"; String testName = "test09: full parse"; fullParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 0, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 198, currentType.getDeclarationSourceEnd()); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields == null); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals("Invalid methods length ", 3, methods.length); assertEquals("Invalid declaration source start for method foo", 27, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method foo", 100, methods[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method bar", 127, methods[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method bar", 149, methods[1].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method truc", 163, methods[2].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method truc", 185, methods[2].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName()); assertEquals(" Invalid actual name for method bar", "bar", methods[1].getActualName()); assertEquals(" Invalid actual name for method truc", "truc", methods[2].getActualName()); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test10() { String s = "public class X { \n" + " void foo() { \n" + " System.out.println(); \n" + " void baz(){} \n" + " } \n" + " /** comment \n" + " * \n" + " * \n" + " */ \n" + " \n" + " void bar(){ \n" + " } \n" + " void truc(){ \n" + " } \n" + "} \n"; String expectedUnitToString = "public class X {\n" + "\tvoid foo() {}\n" + "\tvoid bar() {}\n" + "\tvoid truc() {}\n" + "}"; String testName = "test10: diet parse"; dietParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 0, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 415, currentType.getDeclarationSourceEnd()); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields == null); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals("Invalid methods length ", 3, methods.length); assertEquals("Invalid declaration source start for method foo", 27, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method foo", 100, methods[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method bar", 114, methods[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method bar", 366, methods[1].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method truc", 380, methods[2].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method truc", 402, methods[2].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName()); assertEquals(" Invalid actual name for method bar", "bar", methods[1].getActualName()); assertEquals(" Invalid actual name for method truc", "truc", methods[2].getActualName()); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test11() { String s = "public class X { \n" + " void foo() { \n" + " System.out.println(); \n" + " void baz(){} \n" + " /** comment \n" + " * \n" + " * \n" + " */ \n" + " int[][] j[] = null, k; // comment \n" + " \n" + " void bar(){ \n" + " } \n" + " void truc(){ \n" + " } \n" + "} \n"; String expectedUnitToString = "public class X {\n" + "\tint[][][] j;\n" + "\tint[][] k;\n" + "\tjava.lang.Object(0)\n" + "\tvoid foo() {}\n" + "\tvoid baz() {}\n" + "\tvoid bar() {}\n" + "\tvoid truc() {}\n" + "}"; String testName = "test11: full parse"; fullParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 0, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 449, currentType.getDeclarationSourceEnd()); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields != null); assertEquals("Invalid declaration source start for field j", 102, fields[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field j", 305, fields[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for field k", 102, fields[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field k", 308, fields[1].getDeclarationSourceEnd()); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals("Invalid methods length ", 4, methods.length); assertEquals("Invalid declaration source start for method foo", 27, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method foo", 76, methods[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method baz", 79, methods[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method baz", 90, methods[1].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method bar", 378, methods[2].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method bar", 400, methods[2].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method truc", 414, methods[3].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method truc", 436, methods[3].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName()); assertEquals(" Invalid actual name for method baz", "baz", methods[1].getActualName()); assertEquals(" Invalid actual name for method bar", "bar", methods[2].getActualName()); assertEquals(" Invalid actual name for method truc", "truc", methods[3].getActualName()); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test12() { String s = "import java.util.Enumeration;\n" + "import java.util.Hashtable;" + "\n" + "/** comment */\n" + "public class A2 {\n" + " void foo() {\n" + " System.out.println();\n" + " void baz(){}\n" + " /** comment\n" + " *\n" + " *\n" + " */\n" + " static { } // comment\n" + " \n" + "\n" + " void bar(){\n" + " }\n" + " void truc(){\n" + " }\n" + "}\n"; String expectedUnitToString = "import java.util.Enumeration;\n" + "import java.util.Hashtable;\n" + "public class A2 {\n" + "\tstatic {}\n" + "\tjava.lang.Object(0)\n" + "\tvoid foo() {}\n" + "\tvoid baz() {}\n" + "\tvoid bar() {}\n" + "\tvoid truc() {}\n" + "}"; String testName = "test12: full parse"; fullParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 58, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 231, currentType.getDeclarationSourceEnd()); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields != null); assertEquals("Invalid fields length ", 1, fields.length); assertEquals("Invalid declaration source start for initializer", 145, fields[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for initializer", 181, fields[0].getDeclarationSourceEnd()); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals("Invalid methods length ", 4, methods.length); assertEquals("Invalid declaration source start for method foo", 92, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method foo", 128, methods[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method baz", 131, methods[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method baz", 142, methods[1].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method bar", 183, methods[2].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method bar", 212, methods[2].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method truc", 215, methods[3].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method truc", 229, methods[3].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName()); assertEquals(" Invalid actual name for method baz", "baz", methods[1].getActualName()); assertEquals(" Invalid actual name for method bar", "bar", methods[2].getActualName()); assertEquals(" Invalid actual name for method truc", "truc", methods[3].getActualName()); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test13() { String s = "import java.util.Enumeration;\n" + "import java.util.Hashtable;\n" + "\n" + "public class A2 {\n" + " void foo() {\n" + " System.out.println();\n" + " void baz(){}\n" + " static { }\n" + " \n" + "\n" + " void bar(){\n" + " }\n" + " void truc(){\n" + " }\n" + "}\n"; String expectedUnitToString = "import java.util.Enumeration;\n" + "import java.util.Hashtable;\n" + "public class A2 {\n" + "\tstatic {}\n" + "\tjava.lang.Object(0)\n" + "\tvoid foo() {}\n" + "\tvoid baz() {}\n" + "\tvoid bar() {}\n" + "\tvoid truc() {}\n" + "}"; String testName = "test13: full parse"; fullParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 59, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 180, currentType.getDeclarationSourceEnd()); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields != null); assertEquals(" invalid fields length", 1, fields.length); assertEquals("Invalid declaration source start for initializer", 132, fields[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for initializer", 141, fields[0].getDeclarationSourceEnd()); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals("Invalid methods length ", 4, methods.length); assertEquals("Invalid declaration source start for method foo", 78, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method foo", 114, methods[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method baz", 117, methods[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method baz", 128, methods[1].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method bar", 148, methods[2].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method bar", 161, methods[2].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method truc", 164, methods[3].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method truc", 178, methods[3].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName()); assertEquals(" Invalid actual name for method baz", "baz", methods[1].getActualName()); assertEquals(" Invalid actual name for method bar", "bar", methods[2].getActualName()); assertEquals(" Invalid actual name for method truc", "truc", methods[3].getActualName()); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test14() { String s = "import java.util.Enumeration;\n" + "import java.util.Hashtable;\n" + "\n" + "public class A2 {\n" + " void foo() {\n" + " System.out.println();\n" + " void baz(){}\n" + " static { }\n" + " }\n" + "\n" + " void bar(){\n" + " }\n" + " void truc(){\n" + " }\n" + "}\n"; String expectedUnitToString = "import java.util.Enumeration;\n" + "import java.util.Hashtable;\n" + "public class A2 {\n" + "\tvoid foo() {}\n" + "\tvoid bar() {}\n" + "\tvoid truc() {}\n" + "}"; String testName = "test14: diet parse"; dietParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 59, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 180, currentType.getDeclarationSourceEnd()); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields == null); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals("Invalid methods length ", 3, methods.length); assertEquals("Invalid declaration source start for method foo", 78, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method foo", 144, methods[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method bar", 148, methods[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method bar", 161, methods[1].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method truc", 164, methods[2].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method truc", 178, methods[2].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName()); assertEquals(" Invalid actual name for method bar", "bar", methods[1].getActualName()); assertEquals(" Invalid actual name for method truc", "truc", methods[2].getActualName()); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test15() { String s = "public class X { \n" + " class Y { \n" + " void foo() { \n" + " System.out.println(); \n" + " } \n" + " public int h; \n" + " public int[] i = {0, 1}; \n" + " void bar(){ \n" + " void baz(){ \n" + " } \n"; String expectedUnitToString = "public class X {\n" + "\tclass Y {\n" + "\t\tpublic int h;\n" + "\t\tpublic int[] i;\n" + "\t\tjava.lang.Object(0)\n" + "\t\tvoid foo() {}\n" + "\t\tvoid bar() {}\n" + "\t\tvoid baz() {}\n" + "\t}\n" + "\tjava.lang.Object(0)\n" + "}"; String testName = "test15: full parse"; fullParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 0, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 227, currentType.getDeclarationSourceEnd()); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields == null); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods == null); SourceType[] members = currentType.getMemberTypes(); assertTrue(" invalid members ", members != null); assertEquals(" invalid members length ", 1, members.length); fields = members[0].getFields(); assertTrue(" invalid fields ", fields != null); assertEquals(" invalid fields length ", 2, fields.length); assertEquals("Invalid declaration source start for field h", 117, fields[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field h", 129, fields[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for field i", 140, fields[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field i", 163, fields[1].getDeclarationSourceEnd()); methods = members[0].getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals(" invalid methods length ", 3, methods.length); assertEquals("Invalid declaration source start for method foo", 48, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method foo", 103, methods[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method bar", 171, methods[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method bar", 191, methods[1].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method baz", 193, methods[2].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method baz", 215, methods[2].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName()); assertEquals(" Invalid actual name for method bar", "bar", methods[1].getActualName()); assertEquals(" Invalid actual name for method baz", "baz", methods[2].getActualName()); SourceType member = members[0]; assertEquals( "Invalid class declarationSourceStart ", 26, member.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 227, member.getDeclarationSourceEnd()); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test16() { String s = "public class X { \n" + " class Y { \n" + " void foo() { \n" + " System.out.println(); \n" + " } \n" + " public int h; \n" + " public int[] i = {0, 1}; \n" + " void bar(){ \n" + " void baz(){ \n" + " } \n"; String expectedUnitToString = "public class X {\n" + "\tclass Y {\n" + "\t\tpublic int h;\n" + "\t\tpublic int[] i;\n" + "\t\tvoid foo() {}\n" + "\t\tvoid bar() {}\n" + "\t\tvoid baz() {}\n" + "\t}\n" + "}"; String testName = "test16: diet parse"; dietParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 0, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 227, currentType.getDeclarationSourceEnd()); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields == null); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods == null); SourceType[] members = currentType.getMemberTypes(); assertTrue(" invalid members ", members != null); assertEquals(" invalid members length ", 1, members.length); fields = members[0].getFields(); assertTrue(" invalid fields ", fields != null); assertEquals(" invalid fields length ", 2, fields.length); assertEquals("Invalid declaration source start for field h", 117, fields[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field h", 129, fields[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for field i", 140, fields[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field i", 163, fields[1].getDeclarationSourceEnd()); methods = members[0].getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals(" invalid methods length ", 3, methods.length); assertEquals("Invalid declaration source start for method foo", 48, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method foo", 103, methods[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method bar", 171, methods[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method bar", 191, methods[1].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method baz", 193, methods[2].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method baz", 215, methods[2].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName()); assertEquals(" Invalid actual name for method bar", "bar", methods[1].getActualName()); assertEquals(" Invalid actual name for method baz", "baz", methods[2].getActualName()); SourceType member = members[0]; assertEquals( "Invalid class declarationSourceStart ", 26, member.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 227, member.getDeclarationSourceEnd()); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test17() { String s = "public class X { \n" + " class Y { \n" + " void foo() { \n" + " System.out.println(); \n" + " } \n" + " } \n" + " public int h; \n" + " public int[] i = {0, 1}; \n" + " void bar(){ \n" + " void baz(){ \n" + " } \n"; String expectedUnitToString = "public class X {\n" + "\tclass Y {\n" + "\t\tjava.lang.Object(0)\n" + "\t\tvoid foo() {}\n" + "\t}\n" + "\tpublic int h;\n" + "\tpublic int[] i;\n" + "\tjava.lang.Object(0)\n" + "\tvoid bar() {}\n" + "\tvoid baz() {}\n" + "}"; String testName = "test17: full parse"; fullParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 0, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 241, currentType.getDeclarationSourceEnd()); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields != null); assertEquals(" invalid fields length ", 2, fields.length); assertEquals("Invalid declaration source start for field h", 131, fields[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field h", 143, fields[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for field i", 154, fields[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field i", 177, fields[1].getDeclarationSourceEnd()); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals(" invalid fields length ", 2, methods.length); assertEquals("Invalid declaration source start for method bar", 185, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method bar", 205, methods[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method baz", 207, methods[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method baz", 229, methods[1].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method bar", "bar", methods[0].getActualName()); assertEquals(" Invalid actual name for method baz", "baz", methods[1].getActualName()); SourceType[] members = currentType.getMemberTypes(); assertTrue(" invalid members ", members != null); assertEquals(" invalid members length ", 1, members.length); fields = members[0].getFields(); assertTrue(" invalid fields ", fields == null); methods = members[0].getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals(" invalid methods length ", 1, methods.length); assertEquals("Invalid declaration source start for method foo", 48, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method foo", 103, methods[0].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName()); SourceType member = members[0]; assertEquals( "Invalid class declarationSourceStart ", 26, member.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 117, member.getDeclarationSourceEnd()); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test18() { String s = "public class X { \n" + " class Y { \n" + " void foo() { \n" + " System.out.println(); \n" + " } \n" + " } \n" + " public int h; \n" + " public int[] i = {0, 1}; \n" + " void bar(){ \n" + " void baz(){ \n" + " } \n"; String expectedUnitToString = "public class X {\n" + "\tclass Y {\n" + "\t\tvoid foo() {}\n" + "\t}\n" + "\tpublic int h;\n" + "\tpublic int[] i;\n" + "\tvoid bar() {}\n" + "\tvoid baz() {}\n" + "}"; String testName = "test18: diet parse"; dietParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 0, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 241, currentType.getDeclarationSourceEnd()); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields != null); assertEquals(" invalid fields length ", 2, fields.length); assertEquals("Invalid declaration source start for field h", 131, fields[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field h", 143, fields[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for field i", 154, fields[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field i", 177, fields[1].getDeclarationSourceEnd()); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals(" invalid fields length ", 2, methods.length); assertEquals("Invalid declaration source start for method bar", 185, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method bar", 205, methods[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method baz", 207, methods[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method baz", 229, methods[1].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method bar", "bar", methods[0].getActualName()); assertEquals(" Invalid actual name for method baz", "baz", methods[1].getActualName()); SourceType[] members = currentType.getMemberTypes(); assertTrue(" invalid members ", members != null); assertEquals(" invalid members length ", 1, members.length); fields = members[0].getFields(); assertTrue(" invalid fields ", fields == null); methods = members[0].getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals(" invalid methods length ", 1, methods.length); assertEquals("Invalid declaration source start for method foo", 48, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method foo", 103, methods[0].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName()); SourceType member = members[0]; assertEquals( "Invalid class declarationSourceStart ", 26, member.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 117, member.getDeclarationSourceEnd()); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test19() { String s = "public class X { \n" + " void foo() { \n" + " System.out.println(); \n" + " } \n" + "} \n" + " void bar(){ \n" + " int x; \n" + " void baz(){ \n" + " } \n" + " int y; \n"; String expectedUnitToString = "public class X {\n" + "\t{}\n" + "\tint y;\n" + "\tjava.lang.Object(0)\n" + "\tvoid foo() {}\n" + "\tvoid bar() {}\n" + "\tvoid baz() {}\n" + "}"; String testName = "test19: full parse"; fullParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 0, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 197, currentType.getDeclarationSourceEnd()); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields != null); assertEquals(" invalid fields length ", 2, fields.length); assertEquals("Invalid declaration source start for initializer", 90, fields[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for initializer", 90, fields[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for field y", 181, fields[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field y", 186, fields[1].getDeclarationSourceEnd()); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals(" invalid fields length ", 3, methods.length); assertEquals("Invalid declaration source start for method foo", 26, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method foo", 77, methods[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method bar", 104, methods[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method bar", 143, methods[1].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method baz", 145, methods[2].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method baz", 167, methods[2].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName()); assertEquals(" Invalid actual name for method bar", "bar", methods[1].getActualName()); assertEquals(" Invalid actual name for method baz", "baz", methods[2].getActualName()); SourceType[] members = currentType.getMemberTypes(); assertTrue(" invalid members ", members == null); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test20() { String s = "public class X { \n" + " void foo() { \n" + " System.out.println(); \n" + " } \n" + "} \n" + " void bar(){ \n" + " public int x; \n" + " void baz(){ \n" + " } \n" + " int y; \n"; String expectedUnitToString = "public class X {\n" + "\t{}\n" + "\tpublic int x;\n" + "\tint y;\n" + "\tjava.lang.Object(0)\n" + "\tvoid foo() {}\n" + "\tvoid bar() {}\n" + "\tvoid baz() {}\n" + "}"; String testName = "test20: full parse"; fullParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 0, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 201, currentType.getDeclarationSourceEnd()); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields != null); assertEquals(" invalid fields length ", 3, fields.length); assertEquals("Invalid declaration source start for initializer", 90, fields[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for initializer", 90, fields[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for field x", 126, fields[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field x", 138, fields[1].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for field y", 185, fields[2].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field y", 190, fields[2].getDeclarationSourceEnd()); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals(" invalid fields length ", 3, methods.length); assertEquals("Invalid declaration source start for method foo", 26, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method foo", 77, methods[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method bar", 104, methods[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method bar", 124, methods[1].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method baz", 149, methods[2].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method baz", 171, methods[2].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName()); assertEquals(" Invalid actual name for method bar", "bar", methods[1].getActualName()); assertEquals(" Invalid actual name for method baz", "baz", methods[2].getActualName()); SourceType[] members = currentType.getMemberTypes(); assertTrue(" invalid members ", members == null); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test21() { String s = "public class X { \n" + " void foo() { \n" + " System.out.println(); \n" + " } \n" + "} \n" + " void bar(){ \n" + " public int x; \n" + " void baz(){ \n" + " } \n" + " int y; \n"; String expectedUnitToString = "public class X {\n" + "\t{}\n" + "\tpublic int x;\n" + "\tint y;\n" + "\tvoid foo() {}\n" + "\tvoid bar() {}\n" + "\tvoid baz() {}\n" + "}"; String testName = "test21: diet parse"; dietParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 0, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 201, currentType.getDeclarationSourceEnd()); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields != null); assertEquals(" invalid fields length ", 3, fields.length); assertEquals("Invalid declaration source start for initializer", 90, fields[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for initializer", 90, fields[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for field x", 126, fields[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field x", 138, fields[1].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for field y", 185, fields[2].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field y", 190, fields[2].getDeclarationSourceEnd()); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals(" invalid fields length ", 3, methods.length); assertEquals("Invalid declaration source start for method foo", 26, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method foo", 77, methods[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method bar", 104, methods[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method bar", 124, methods[1].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method baz", 149, methods[2].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method baz", 171, methods[2].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName()); assertEquals(" Invalid actual name for method bar", "bar", methods[1].getActualName()); assertEquals(" Invalid actual name for method baz", "baz", methods[2].getActualName()); SourceType[] members = currentType.getMemberTypes(); assertTrue(" invalid members ", members == null); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test22() { String s = "public class X extends { \n" + " void foo() { \n" + " } \n" + "} \n"; String expectedUnitToString = "public class X {\n" + "\tjava.lang.Object(0)\n" + "\tvoid foo() {}\n" + "}"; String testName = "test22: full parse"; fullParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 0, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 67, currentType.getDeclarationSourceEnd()); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields == null); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals(" invalid fields length ", 1, methods.length); assertEquals("Invalid declaration source start for method foo", 32, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method foo", 54, methods[0].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName()); SourceType[] members = currentType.getMemberTypes(); assertTrue(" invalid members ", members == null); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test23() { String s = "public class X extends Thread { \n" + " void foo() throws \n" + " void bar() \n" + " } \n" + "} \n"; String expectedUnitToString = "public class X extends Thread {\n" + "\tThread(0)\n" + "\tvoid foo() {}\n" + "\tvoid bar() {}\n" + "}"; String testName = "test23: full parse"; fullParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 0, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 98, currentType.getDeclarationSourceEnd()); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields == null); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals(" invalid fields length ", 2, methods.length); assertEquals("Invalid declaration source start for method foo", 37, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method foo", 61, methods[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method bar", 63, methods[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method bar", 85, methods[1].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName()); assertEquals(" Invalid actual name for method bar", "bar", methods[1].getActualName()); SourceType[] members = currentType.getMemberTypes(); assertTrue(" invalid members ", members == null); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test24() { String s = "public class X implements \n" + " void foo() \n" + " void bar() \n" + " } \n" + "} \n"; String expectedUnitToString = "public class X {\n" + "\tjava.lang.Object(0)\n" + "\tvoid foo() {}\n" + "\tvoid bar() {}\n" + "}"; String testName = "test24: full parse"; fullParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 0, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 91, currentType.getDeclarationSourceEnd()); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields == null); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals(" invalid fields length ", 2, methods.length); assertEquals("Invalid declaration source start for method foo", 34, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method foo", 54, methods[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method bar", 56, methods[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method bar", 78, methods[1].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName()); assertEquals(" Invalid actual name for method bar", "bar", methods[1].getActualName()); SourceType[] members = currentType.getMemberTypes(); assertTrue(" invalid members ", members == null); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test25() { String s = "public class X implements Y, \n" + " void foo() \n" + " void bar() \n" + " } \n" + "} \n"; String expectedUnitToString = "public class X implements Y, {\n" + "\tjava.lang.Object(0)\n" + "\tvoid foo() {}\n" + "\tvoid bar() {}\n" + "}"; String testName = "test25: full parse"; fullParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 0, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 92, currentType.getDeclarationSourceEnd()); assertTrue("contains superinterfaces " , currentType.getInterfaceNames() != null); assertEquals(" invalid superinterfaces length ", 1, currentType.getInterfaceNames().length); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields == null); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals(" invalid fields length ", 2, methods.length); assertEquals("Invalid declaration source start for method foo", 35, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method foo", 55, methods[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method bar", 57, methods[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method bar", 79, methods[1].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName()); assertEquals(" Invalid actual name for method bar", "bar", methods[1].getActualName()); SourceType[] members = currentType.getMemberTypes(); assertTrue(" invalid members ", members == null); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test26() { String s = "public class X implements \n" + " class Y { \n" + " void bar() \n" + " } \n" + "} \n"; String expectedUnitToString = "public class X {\n" + "\tclass Y {\n" + "\t\tjava.lang.Object(0)\n" + "\t\tvoid bar() {}\n" + "\t}\n" + "\tjava.lang.Object(0)\n" + "}"; String testName = "test26: full parse"; fullParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 0, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 102, currentType.getDeclarationSourceEnd()); assertTrue("doesn't contain superinterfaces " , currentType.getInterfaceNames() == null); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields == null); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods == null); SourceType[] members = currentType.getMemberTypes(); assertTrue(" invalid members ", members != null); assertEquals(" contains one member ", 1, members.length); assertEquals( "Invalid class declarationSourceStart ", 34, members[0].getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 90, members[0].getDeclarationSourceEnd()); methods = members[0].getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals(" contains one method ", 1, methods.length); assertEquals("Invalid declaration source start for method bar", 56, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method bar", 77, methods[0].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method bar", "bar", methods[0].getActualName()); members = members[0].getMemberTypes(); assertTrue(" invalid members ", members == null); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test27() { String s = "public class X \n" + " fieldX; \n" + " class Y { \n" + " void bar() \n" + " } \n" + "} \n"; String expectedUnitToString = "public class X {\n" + "\tclass Y {\n" + "\t\tjava.lang.Object(0)\n" + "\t\tvoid bar() {}\n" + "\t}\n" + "\tjava.lang.Object(0)\n" + "}"; String testName = "test27: full parse"; fullParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 0, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 113, currentType.getDeclarationSourceEnd()); assertTrue("doesn't contain superinterfaces " , currentType.getInterfaceNames() == null); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields == null); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods == null); SourceType[] members = currentType.getMemberTypes(); assertTrue(" invalid members ", members != null); assertEquals(" contains one member ", 1, members.length); assertEquals( "Invalid class declarationSourceStart ", 45, members[0].getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 101, members[0].getDeclarationSourceEnd()); methods = members[0].getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals(" contains one method ", 1, methods.length); assertEquals("Invalid declaration source start for method bar", 67, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method bar", 88, methods[0].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method bar", "bar", methods[0].getActualName()); members = members[0].getMemberTypes(); assertTrue(" invalid members ", members == null); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test28() { String s = "public class X \n" + " fieldX; \n" + " class Y \n" + " } \n" + "} \n"; String expectedUnitToString = "public class X {\n" + "\tclass Y {\n" + "\t\tjava.lang.Object(0)\n" + "\t}\n" + "\tjava.lang.Object(0)\n" + "}"; String testName = "test28: full parse"; fullParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 0, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 78, currentType.getDeclarationSourceEnd()); assertTrue("doesn't contain superinterfaces " , currentType.getInterfaceNames() == null); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields == null); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods == null); SourceType[] members = currentType.getMemberTypes(); assertTrue(" invalid members ", members != null); assertEquals(" contains one member ", 1, members.length); assertEquals( "Invalid class declarationSourceStart ", 45, members[0].getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 65, members[0].getDeclarationSourceEnd()); methods = members[0].getMethods(); assertTrue(" invalid methods ", methods == null); members = members[0].getMemberTypes(); assertTrue(" invalid members ", members == null); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test29() { String s = "package a; \n" + "import java.lang.*; \n" + "import java.util.*; \n" + " \n" + "public class X { \n" + " void foo() { \n" + " System.out.println(); \n" + " \n" + " class L extends { \n" + " public int l; \n" + " void baz(){} \n" + " } \n" + " \n" + " public int h; \n" + " \n" + " void bar(){ \n" + " void truc(){ \n" + "} \n"; String expectedUnitToString = "package a;\n" + "import java.lang.*;\n" + "import java.util.*;\n" + "public class X {\n" + "\tpublic int h;\n" + "\tjava.lang.Object(0)\n" + "\tvoid foo() {}\n" + "\tvoid bar() {}\n" + "\tvoid truc() {}\n" + "}"; String testName = "test29: full parse"; fullParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 88, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 357, currentType.getDeclarationSourceEnd()); assertTrue("doesn't contain superinterfaces " , currentType.getInterfaceNames() == null); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields != null); assertEquals("contains one field ", 1, fields.length); assertEquals("Invalid declaration source start for field h", 276, fields[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field h", 288, fields[0].getDeclarationSourceEnd()); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals(" contains 3 methods ", 3, methods.length); assertEquals("Invalid declaration source start for method foo", 114, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method foo", 250, methods[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method bar", 312, methods[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method bar", 332, methods[1].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method truc", 334, methods[2].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method truc", 355, methods[2].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName()); assertEquals(" Invalid actual name for method bar", "bar", methods[1].getActualName()); assertEquals(" Invalid actual name for method truc", "truc", methods[2].getActualName()); SourceType[] members = currentType.getMemberTypes(); assertTrue(" invalid members ", members == null); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test30() { String s = "package a; \n" + "import java.lang.*; \n" + "import java.util.*; \n" + " \n" + "public class X { \n" + " void foo() { \n" + " System.out.println(); \n" + " \n" + " class L extends { \n" + " public int l; \n" + " void baz(){} \n" + " } \n" + " \n" + " public int h; \n" + " \n" + " void bar(){ \n" + " void truc(){ \n" + "} \n"; String expectedUnitToString = "package a;\n" + "import java.lang.*;\n" + "import java.util.*;\n" + "public class X {\n" + "\tpublic int h;\n" + "\tvoid foo() {}\n" + "\tvoid bar() {}\n" + "\tvoid truc() {}\n" + "}"; String testName = "test30: diet parse"; dietParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 88, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 357, currentType.getDeclarationSourceEnd()); assertTrue("doesn't contain superinterfaces " , currentType.getInterfaceNames() == null); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields != null); assertEquals("contains one field ", 1, fields.length); assertEquals("Invalid declaration source start for field h", 276, fields[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field h", 288, fields[0].getDeclarationSourceEnd()); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals(" contains 3 methods ", 3, methods.length); assertEquals("Invalid declaration source start for method foo", 114, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method foo", 250, methods[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method bar", 312, methods[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method bar", 332, methods[1].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method truc", 334, methods[2].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method truc", 355, methods[2].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName()); assertEquals(" Invalid actual name for method bar", "bar", methods[1].getActualName()); assertEquals(" Invalid actual name for method truc", "truc", methods[2].getActualName()); SourceType[] members = currentType.getMemberTypes(); assertTrue(" invalid members ", members == null); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test31() { String s = "package a; \n" + "import java.lang.*; \n" + "import java.util.*; \n" + " \n" + "public class X { \n" + " void foo() { \n" + " System.out.println(); \n" + " \n" + " new X(){ \n" + " void baz() {} \n" + " }.baz(); \n" + " \n" + " public int h; \n" + " \n" + " void bar(){ \n" + " void truc(){ \n" + "} \n"; String expectedUnitToString = "package a;\n" + "import java.lang.*;\n" + "import java.util.*;\n" + "public class X {\n" + "\tpublic int h;\n" + "\tjava.lang.Object(0)\n" + "\tvoid foo() {}\n" + "\tvoid bar() {}\n" + "\tvoid truc() {}\n" + "}"; String testName = "test31: full parse"; fullParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 89, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 334, currentType.getDeclarationSourceEnd()); assertTrue("doesn't contain superinterfaces " , currentType.getInterfaceNames() == null); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields != null); assertEquals("contains one field ", 1, fields.length); assertEquals("Invalid declaration source start for field h", 253, fields[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field h", 265, fields[0].getDeclarationSourceEnd()); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals(" contains 3 methods ", 3, methods.length); assertEquals("Invalid declaration source start for method foo", 115, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method foo", 251, methods[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method bar", 289, methods[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method bar", 309, methods[1].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method truc", 311, methods[2].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method truc", 332, methods[2].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName()); assertEquals(" Invalid actual name for method bar", "bar", methods[1].getActualName()); assertEquals(" Invalid actual name for method truc", "truc", methods[2].getActualName()); SourceType[] members = currentType.getMemberTypes(); assertTrue(" invalid members ", members == null); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test32() { String s = "package a; \n" + "import java.lang.*; \n" + "import java.util.*; \n" + " \n" + "public class X { \n" + " void foo() { \n" + " System.out.println(); \n" + " \n" + " new X(){ \n" + " void baz() {} \n" + " \n" + " public int h; \n" + " \n" + " void bar(){ \n" + " void truc(){ \n" + "} \n"; String expectedUnitToString = "package a;\n" + "import java.lang.*;\n" + "import java.util.*;\n" + "public class X {\n" + "\tjava.lang.Object(0)\n" + "\tvoid foo() {}\n" + "}"; String testName = "test32: full parse"; fullParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 89, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 315, currentType.getDeclarationSourceEnd()); assertTrue("doesn't contain superinterfaces " , currentType.getInterfaceNames() == null); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields == null); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals(" contains one methods ", 1, methods.length); assertEquals("Invalid declaration source start for method foo", 115, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method foo", 315, methods[0].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName()); SourceType[] members = currentType.getMemberTypes(); assertTrue(" invalid members ", members == null); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test33() { String s = "package a; \n" + "import java.lang.*; \n" + "import java.util.*; \n" + " \n" + "public class X { \n" + " void foo() { \n" + " System.out.println(); \n" + " \n" + " new X(){ \n" + " void baz() {} \n" + " \n" + " public int h; \n" + " \n" + " void bar(){ \n" + " void truc(){ \n" + "} \n"; String expectedUnitToString = "package a;\n" + "import java.lang.*;\n" + "import java.util.*;\n" + "public class X {\n" + "\tvoid foo() {}\n" + "}"; String testName = "test33: diet parse"; dietParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 89, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 315, currentType.getDeclarationSourceEnd()); assertTrue("doesn't contain superinterfaces " , currentType.getInterfaceNames() == null); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields == null); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals(" contains one methods ", 1, methods.length); assertEquals("Invalid declaration source start for method foo", 115, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method foo", 315, methods[0].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName()); SourceType[] members = currentType.getMemberTypes(); assertTrue(" invalid members ", members == null); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test34() { String s = "package a; \n" + "import java.lang.*; \n" + "import java.util.*; \n" + " \n" + "public class X { \n" + " void foo() { \n" + " System.out.println(); \n" + " \n" + " new X(){ \n" + " void baz() \n" + " } \n" + " } \n" + " public int h; \n" + " \n" + " void bar(){ \n" + " void truc(){ \n" + "} \n"; String expectedUnitToString = "package a;\n" + "import java.lang.*;\n" + "import java.util.*;\n" + "public class X {\n" + "\tpublic int h;\n" + "\tjava.lang.Object(0)\n" + "\tvoid foo() {}\n" + "\tvoid bar() {}\n" + "\tvoid truc() {}\n" + "}"; String testName = "test34: full parse"; fullParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 88, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 342, currentType.getDeclarationSourceEnd()); assertTrue("doesn't contain superinterfaces " , currentType.getInterfaceNames() == null); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields != null); assertEquals("contains one field ", 1, fields.length); assertEquals("Invalid declaration source start for field h", 250, fields[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field h", 262, fields[0].getDeclarationSourceEnd()); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals(" contains 3 methods ", 3, methods.length); assertEquals("Invalid declaration source start for method foo", 114, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method foo", 236, methods[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method bar", 286, methods[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method bar", 306, methods[1].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method truc", 308, methods[2].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method truc", 329, methods[2].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName()); assertEquals(" Invalid actual name for method bar", "bar", methods[1].getActualName()); assertEquals(" Invalid actual name for method truc", "truc", methods[2].getActualName()); SourceType[] members = currentType.getMemberTypes(); assertTrue(" invalid members ", members == null); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test35() { String s = "package a; \n" + "import java.lang.*; \n" + "import java.util.*; \n" + " \n" + "public class X { \n" + " void foo() { \n" + " System.out.println(); \n" + " \n" + " class L extends { \n" + " public int l; \n" + " void baz(){} \n" + " } \n" + " \n" + " int h; \n" + " \n" + " void bar(){ \n" + " void truc(){ \n" + "} \n"; String expectedUnitToString = "package a;\n" + "import java.lang.*;\n" + "import java.util.*;\n" + "public class X {\n" + "\tjava.lang.Object(0)\n" + "\tvoid foo() {}\n" + "\tvoid bar() {}\n" + "\tvoid truc() {}\n" + "}"; String testName = "test35: full parse"; fullParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 76, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 309, currentType.getDeclarationSourceEnd()); assertTrue("doesn't contain superinterfaces " , currentType.getInterfaceNames() == null); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields == null); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals(" contains 3 methods ", 3, methods.length); assertEquals("Invalid declaration source start for method foo", 99, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method foo", 260, methods[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method bar", 262, methods[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method bar", 279, methods[1].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method truc", 281, methods[2].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method truc", 299, methods[2].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName()); assertEquals(" Invalid actual name for method bar", "bar", methods[1].getActualName()); assertEquals(" Invalid actual name for method truc", "truc", methods[2].getActualName()); SourceType[] members = currentType.getMemberTypes(); assertTrue(" invalid members ", members == null); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test36() { String s = "package a; \n" + "import java.lang.*; \n" + "import java.util.*; \n" + " \n" + "public class X { \n" + " void foo() { \n" + " System.out.println(); \n" + " \n" + " class L extends { \n" + " public int l; \n" + " void baz(){} \n" + " } \n" + " \n" + " int h; \n" + " \n" + " void bar(){ \n" + " void truc(){ \n" + "} \n"; String expectedUnitToString = "package a;\n" + "import java.lang.*;\n" + "import java.util.*;\n" + "public class X {\n" + "\tvoid foo() {}\n" + "\tvoid bar() {}\n" + "\tvoid truc() {}\n" + "}"; String testName = "test36: diet parse"; dietParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 76, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 309, currentType.getDeclarationSourceEnd()); assertTrue("doesn't contain superinterfaces " , currentType.getInterfaceNames() == null); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields == null); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals(" contains 3 methods ", 3, methods.length); assertEquals("Invalid declaration source start for method foo", 99, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method foo", 260, methods[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method bar", 262, methods[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method bar", 279, methods[1].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method truc", 281, methods[2].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method truc", 299, methods[2].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName()); assertEquals(" Invalid actual name for method bar", "bar", methods[1].getActualName()); assertEquals(" Invalid actual name for method truc", "truc", methods[2].getActualName()); SourceType[] members = currentType.getMemberTypes(); assertTrue(" invalid members ", members == null); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test37() { String s = "public class X { \n" + " int x; \n" + " \n" + " int foo(){ } \n" + " \n" + " class Y { \n" + " int y; \n" + "} \n"; String expectedUnitToString = "public class X {\n" + "\tclass Y {\n" + "\t\tint y;\n" + "\t\tjava.lang.Object(0)\n" + "\t}\n" + "\tint x;\n" + "\tjava.lang.Object(0)\n" + "\tint foo() {}\n" + "}"; String testName = "test37: full parse"; fullParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 0, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 112, currentType.getDeclarationSourceEnd()); assertTrue("doesn't contain superinterfaces " , currentType.getInterfaceNames() == null); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields != null); assertEquals("contains one field ", 1, fields.length); assertEquals("Invalid declaration source start for field x", 23, fields[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field x", 28, fields[0].getDeclarationSourceEnd()); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals(" contains one methods ", 1, methods.length); assertEquals("Invalid declaration source start for method foo", 46, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method foo", 57, methods[0].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName()); SourceType[] members = currentType.getMemberTypes(); assertTrue(" invalid members ", members != null); assertEquals("contains one member ", 1, members.length); assertEquals( "Invalid class declarationSourceStart ", 73, members[0].getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 104, members[0].getDeclarationSourceEnd()); fields = members[0].getFields(); assertTrue(" invalid fields ", fields != null); assertEquals("contains one field ", 1, fields.length); assertEquals("Invalid declaration source start for field y", 92, fields[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field y", 97, fields[0].getDeclarationSourceEnd()); methods = members[0].getMethods(); assertTrue(" invalid methods ", methods == null); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test38() { String s = "public class X { \n" + " int x; \n" + " \n" + " int foo(){ } \n" + " \n" + " class Y { \n" + " int y; \n" + "} \n"; String expectedUnitToString = "public class X {\n" + "\tclass Y {\n" + "\t\tint y;\n" + "\t}\n" + "\tint x;\n" + "\tint foo() {}\n" + "}"; String testName = "test38: diet parse"; dietParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 0, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 112, currentType.getDeclarationSourceEnd()); assertTrue("doesn't contain superinterfaces " , currentType.getInterfaceNames() == null); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields != null); assertEquals("contains one field ", 1, fields.length); assertEquals("Invalid declaration source start for field x", 23, fields[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field x", 28, fields[0].getDeclarationSourceEnd()); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals(" contains one methods ", 1, methods.length); assertEquals("Invalid declaration source start for method foo", 46, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method foo", 57, methods[0].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName()); SourceType[] members = currentType.getMemberTypes(); assertTrue(" invalid members ", members != null); assertEquals("contains one member ", 1, members.length); assertEquals( "Invalid class declarationSourceStart ", 73, members[0].getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 104, members[0].getDeclarationSourceEnd()); fields = members[0].getFields(); assertTrue(" invalid fields ", fields != null); assertEquals("contains one field ", 1, fields.length); assertEquals("Invalid declaration source start for field y", 92, fields[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field y", 97, fields[0].getDeclarationSourceEnd()); methods = members[0].getMethods(); assertTrue(" invalid methods ", methods == null); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test39() { String s = "public class X { \n" + " int x; \n" + " \n" + " int foo(){ } \n" + " \n" + " class Y \n" + "} \n" + " int y; \n"; String expectedUnitToString = "public class X {\n" + "\tclass Y {\n" + "\t\tjava.lang.Object(0)\n" + "\t}\n" + "\tint x;\n" + "\tint y;\n" + "\tjava.lang.Object(0)\n" + "\tint foo() {}\n" + "}"; String testName = "test39: full parse"; fullParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 0, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 109, currentType.getDeclarationSourceEnd()); assertTrue("doesn't contain superinterfaces " , currentType.getInterfaceNames() == null); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields != null); assertEquals("contains one field ", 2, fields.length); assertEquals("Invalid declaration source start for field x", 23, fields[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field x", 28, fields[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for field y", 98, fields[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field y", 103, fields[1].getDeclarationSourceEnd()); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals(" contains one methods ", 1, methods.length); assertEquals("Invalid declaration source start for method foo", 46, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method foo", 57, methods[0].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName()); SourceType[] members = currentType.getMemberTypes(); assertTrue(" invalid members ", members != null); assertEquals("contains one member ", 1, members.length); assertEquals( "Invalid class declarationSourceStart ", 73, members[0].getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 87, members[0].getDeclarationSourceEnd()); fields = members[0].getFields(); assertTrue(" invalid fields ", fields == null); methods = members[0].getMethods(); assertTrue(" invalid methods ", methods == null); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test40() { String s = "public class X { \n" + " int x; \n" + " \n" + " int foo(){ } \n" + " \n" + " class Y \n" + "} \n" + " int y; \n"; String expectedUnitToString = "public class X {\n" + "\tclass Y {\n" + "\t}\n" + "\tint x;\n" + "\tint y;\n" + "\tint foo() {}\n" + "}"; String testName = "test40: diet parse"; dietParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 0, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 109, currentType.getDeclarationSourceEnd()); assertTrue("doesn't contain superinterfaces " , currentType.getInterfaceNames() == null); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields != null); assertEquals("contains one field ", 2, fields.length); assertEquals("Invalid declaration source start for field x", 23, fields[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field x", 28, fields[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for field y", 98, fields[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field y", 103, fields[1].getDeclarationSourceEnd()); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals(" contains one methods ", 1, methods.length); assertEquals("Invalid declaration source start for method foo", 46, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method foo", 57, methods[0].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName()); SourceType[] members = currentType.getMemberTypes(); assertTrue(" invalid members ", members != null); assertEquals("contains one member ", 1, members.length); assertEquals( "Invalid class declarationSourceStart ", 73, members[0].getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 87, members[0].getDeclarationSourceEnd()); fields = members[0].getFields(); assertTrue(" invalid fields ", fields == null); methods = members[0].getMethods(); assertTrue(" invalid methods ", methods == null); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test41() { String s = "public class X { \n"+ " void hell" + "\\" + "u006f()\n"+ " static void foo() { \n"+ " X x; \n"+ " x = new X(23); \n"+ " System.out.println(); \n"+ " \n"+ "} \n"; String expectedUnitToString = "public class X {\n" + "\tjava.lang.Object(0)\n" + "\tvoid hello() {}\n" + "\tstatic void foo() {}\n" + "}"; String testName = "test41: full parse"; fullParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 0, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 139, currentType.getDeclarationSourceEnd()); assertTrue("doesn't contain superinterfaces " , currentType.getInterfaceNames() == null); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields == null); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals(" contains one methods ", 2, methods.length); assertEquals("Invalid declaration source start for method hello", 22, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method hello", 39, methods[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method foo", 41, methods[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method foo", 130, methods[1].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method hello", "hell" + "\\" + "u006f", methods[0].getActualName()); assertEquals(" Invalid actual name for method foo", "foo", methods[1].getActualName()); SourceType[] members = currentType.getMemberTypes(); assertTrue(" invalid members ", members == null); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test42() { String s = "public class X { \n" + " int x \n"; String expectedUnitToString = "public class X {\n" + "\tint x;\n" + "\tjava.lang.Object(0)\n" + "}"; String testName = "test42: full parse"; fullParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 0, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 29, currentType.getDeclarationSourceEnd()); assertTrue("doesn't contain superinterfaces " , currentType.getInterfaceNames() == null); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields != null); assertEquals(" contains one field", 1, fields.length); assertEquals("Invalid declaration source start for field x", 20, fields[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field x", 24, fields[0].getDeclarationSourceEnd()); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods == null); SourceType[] members = currentType.getMemberTypes(); assertTrue(" invalid members ", members == null); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test43() { String s = "public class X { \n" + " int x \n"; String expectedUnitToString = "public class X {\n" + "\tint x;\n" + "}"; String testName = "test43: diet parse"; dietParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 0, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 29, currentType.getDeclarationSourceEnd()); assertTrue("doesn't contain superinterfaces " , currentType.getInterfaceNames() == null); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields != null); assertEquals(" contains one field", 1, fields.length); assertEquals("Invalid declaration source start for field x", 20, fields[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field x", 24, fields[0].getDeclarationSourceEnd()); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods == null); SourceType[] members = currentType.getMemberTypes(); assertTrue(" invalid members ", members == null); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test44() { String s = "public class X { \n" + " int x, y \n"; String expectedUnitToString = "public class X {\n" + "\tint x;\n" + "\tint y;\n" + "\tjava.lang.Object(0)\n" + "}"; String testName = "test44: full parse"; fullParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 0, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 31, currentType.getDeclarationSourceEnd()); assertTrue("doesn't contain superinterfaces " , currentType.getInterfaceNames() == null); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields != null); assertEquals(" contains one field", 2, fields.length); assertEquals("Invalid declaration source start for field x", 20, fields[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field x", 25, fields[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for field y", 20, fields[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field y", 27, fields[1].getDeclarationSourceEnd()); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods == null); SourceType[] members = currentType.getMemberTypes(); assertTrue(" invalid members ", members == null); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test45() { String s = "public class X { \n" + " int x, y \n"; String expectedUnitToString = "public class X {\n" + "\tint x;\n" + "\tint y;\n" + "}"; String testName = "test45: diet parse"; dietParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 0, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 31, currentType.getDeclarationSourceEnd()); assertTrue("doesn't contain superinterfaces " , currentType.getInterfaceNames() == null); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields != null); assertEquals(" contains one field", 2, fields.length); assertEquals("Invalid declaration source start for field x", 20, fields[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field x", 25, fields[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for field y", 20, fields[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field y", 27, fields[1].getDeclarationSourceEnd()); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods == null); SourceType[] members = currentType.getMemberTypes(); assertTrue(" invalid members ", members == null); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test46() { String s = "public class X { \n" + " String s = \" \n"; String expectedUnitToString = "public class X {\n" + "\tString s;\n" + "\tjava.lang.Object(0)\n" + "}"; String testName = "test46: full parse"; fullParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 0, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 34, currentType.getDeclarationSourceEnd()); assertTrue("doesn't contain superinterfaces " , currentType.getInterfaceNames() == null); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields != null); assertEquals(" contains one field", 1, fields.length); assertEquals("Invalid declaration source start for field s", 20, fields[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field s", 34, fields[0].getDeclarationSourceEnd()); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods == null); SourceType[] members = currentType.getMemberTypes(); assertTrue(" invalid members ", members == null); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test47() { String s = "public class X { \n" + " String s = \" \n"; String expectedUnitToString = "public class X {\n" + "\tString s;\n" + "}"; String testName = "test47: diet parse"; dietParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 0, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 34, currentType.getDeclarationSourceEnd()); assertTrue("doesn't contain superinterfaces " , currentType.getInterfaceNames() == null); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields != null); assertEquals(" contains one field", 1, fields.length); assertEquals("Invalid declaration source start for field s", 20, fields[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field s", 34, fields[0].getDeclarationSourceEnd()); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods == null); SourceType[] members = currentType.getMemberTypes(); assertTrue(" invalid members ", members == null); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test48() { String s = "public class X implements Y, \n" + " String s = \" \n"; String expectedUnitToString = "public class X implements Y, String, {\n" + "\tjava.lang.Object(0)\n" + "}"; String testName = "test48: full parse"; fullParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 0, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 50, currentType.getDeclarationSourceEnd()); assertTrue("has 2 superinterfaces " , currentType.getInterfaceNames() != null); assertEquals("2 superinterfaces " , 2, currentType.getInterfaceNames().length); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields == null); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods == null); SourceType[] members = currentType.getMemberTypes(); assertTrue(" invalid members ", members == null); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test49() { String s = "public class X implements Y, \n" + " String s = \" \n"; String expectedUnitToString = "public class X implements Y, String, {\n" + "}"; String testName = "test49: diet parse"; dietParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 0, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 50, currentType.getDeclarationSourceEnd()); assertTrue("has 2 superinterfaces " , currentType.getInterfaceNames() != null); assertEquals("2 superinterfaces " , 2, currentType.getInterfaceNames().length); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields == null); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods == null); SourceType[] members = currentType.getMemberTypes(); assertTrue(" invalid members ", members == null); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test50() { String s = "public class X implements \n"+ "int x \n"+ "} \n"; String expectedUnitToString = "public class X {\n" + "\tint x;\n" + "\tjava.lang.Object(0)\n" + "}"; String testName = "test50: full parse"; fullParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 0, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 42, currentType.getDeclarationSourceEnd()); assertTrue("has no superinterfaces " , currentType.getInterfaceNames() == null); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields != null); assertEquals("has one field ", 1, fields.length); assertEquals("Invalid declaration source start for field x", 29, fields[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field x", 33, fields[0].getDeclarationSourceEnd()); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods == null); SourceType[] members = currentType.getMemberTypes(); assertTrue(" invalid members ", members == null); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test51() { String s = "public class X implements \n"+ "int x \n"+ "} \n"; String expectedUnitToString = "public class X {\n" + "\tint x;\n" + "}"; String testName = "test51: diet parse"; dietParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 0, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 42, currentType.getDeclarationSourceEnd()); assertTrue("has no superinterfaces " , currentType.getInterfaceNames() == null); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields != null); assertEquals("has one field ", 1, fields.length); assertEquals("Invalid declaration source start for field x", 29, fields[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field x", 33, fields[0].getDeclarationSourceEnd()); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods == null); SourceType[] members = currentType.getMemberTypes(); assertTrue(" invalid members ", members == null); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test52() { String s = "public class X public int foo(int bar(static String s"; String expectedUnitToString = "public class X {\n" + "\tstatic String s;\n" + "\tjava.lang.Object(0)\n" + "\tpublic int foo() {}\n" + "\tint bar() {}\n" + "}"; String testName = "test52: full parse"; fullParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 0, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 52, currentType.getDeclarationSourceEnd()); assertTrue("has no superinterfaces " , currentType.getInterfaceNames() == null); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields != null); assertEquals("has one field ", 1, fields.length); assertEquals("Invalid declaration source start for field s", 38, fields[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field s", 52, fields[0].getDeclarationSourceEnd()); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals("Invalid declaration source start for method foo", 15, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method foo", 29, methods[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method bar", 30, methods[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method bar", 37, methods[1].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName()); assertEquals(" Invalid actual name for method bar", "bar", methods[1].getActualName()); SourceType[] members = currentType.getMemberTypes(); assertTrue(" invalid members ", members == null); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test53() { String s = "public class X public int foo(int x, int bar public String s;"; String expectedUnitToString = "public class X {\n" + "\tpublic String s;\n" + "\tjava.lang.Object(0)\n" + "\tpublic int foo(int x, int bar, ) {}\n" + "}"; String testName = "test53: full parse"; fullParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 0, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 60, currentType.getDeclarationSourceEnd()); assertTrue("has no superinterfaces " , currentType.getInterfaceNames() == null); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields != null); assertEquals("has one field ", 1, fields.length); assertEquals("Invalid declaration source start for field s", 45, fields[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field s", 60, fields[0].getDeclarationSourceEnd()); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals("has one method ", 1, methods.length); assertEquals("Invalid declaration source start for method foo", 15, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method foo", 44, methods[0].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName()); SourceType[] members = currentType.getMemberTypes(); assertTrue(" invalid members ", members == null); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test54() { String s = "public class X \n" + " public int foo( \n" + " int bar( \n" + " static String s, int x \n"; String expectedUnitToString = "public class X {\n" + "\tstatic String s;\n" + "\tint x;\n" + "\tjava.lang.Object(0)\n" + "\tpublic int foo() {}\n" + "\tint bar() {}\n" + "}"; String testName = "test54: full parse"; fullParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 0, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 78, currentType.getDeclarationSourceEnd()); assertTrue("has no superinterfaces " , currentType.getInterfaceNames() == null); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields != null); assertEquals("has 2 fields ", 2, fields.length); assertEquals("Invalid declaration source start for field s", 55, fields[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field s", 70, fields[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for field x", 72, fields[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field x", 76, fields[1].getDeclarationSourceEnd()); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals("has 2 methods ", 2, methods.length); assertEquals("Invalid declaration source start for method foo", 20, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method foo", 38, methods[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method bar", 40, methods[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method bar", 52, methods[1].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName()); assertEquals(" Invalid actual name for method bar", "bar", methods[1].getActualName()); SourceType[] members = currentType.getMemberTypes(); assertTrue(" invalid members ", members == null); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test55() { String s = "public class X \n" + " public int foo( \n" + " int bar( \n" + " static String s, int x \n"; String expectedUnitToString = "public class X {\n" + "\tstatic String s;\n" + "\tint x;\n" + "\tpublic int foo() {}\n" + "\tint bar() {}\n" + "}"; String testName = "test55: diet parse"; dietParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 0, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 78, currentType.getDeclarationSourceEnd()); assertTrue("has no superinterfaces " , currentType.getInterfaceNames() == null); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields != null); assertEquals("has 2 fields ", 2, fields.length); assertEquals("Invalid declaration source start for field s", 55, fields[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field s", 70, fields[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for field x", 72, fields[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field x", 76, fields[1].getDeclarationSourceEnd()); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals("has 2 methods ", 2, methods.length); assertEquals("Invalid declaration source start for method foo", 20, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method foo", 38, methods[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method bar", 40, methods[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method bar", 52, methods[1].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName()); assertEquals(" Invalid actual name for method bar", "bar", methods[1].getActualName()); SourceType[] members = currentType.getMemberTypes(); assertTrue(" invalid members ", members == null); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test56() { String s = "class X { \n" + " String s; \n" + " \n" + " public void foo( \n" + " static int x \n" + "} \n"; String expectedUnitToString = "class X {\n" + "\tString s;\n" + "\tstatic int x;\n" + "\tjava.lang.Object(0)\n" + "\tpublic void foo() {}\n" + "}"; String testName = "test56: full parse"; fullParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 0, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 75, currentType.getDeclarationSourceEnd()); assertTrue("has no superinterfaces " , currentType.getInterfaceNames() == null); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields != null); assertEquals("has 2 fields ", 2, fields.length); assertEquals("Invalid declaration source start for field s", 16, fields[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field s", 24, fields[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for field x", 60, fields[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field x", 71, fields[1].getDeclarationSourceEnd()); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals("has 1 method ", 1, methods.length); assertEquals("Invalid declaration source start for method foo", 39, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method foo", 57, methods[0].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName()); SourceType[] members = currentType.getMemberTypes(); assertTrue(" invalid members ", members == null); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test57() { String s = "class X { \n" + " String s; \n" + " \n" + " public void foo( \n" + " static int x \n" + "} \n"; String expectedUnitToString = "class X {\n" + "\tString s;\n" + "\tstatic int x;\n" + "\tpublic void foo() {}\n" + "}"; String testName = "test57: diet parse"; dietParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 0, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 75, currentType.getDeclarationSourceEnd()); assertTrue("has no superinterfaces " , currentType.getInterfaceNames() == null); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields != null); assertEquals("has 2 fields ", 2, fields.length); assertEquals("Invalid declaration source start for field s", 16, fields[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field s", 24, fields[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for field x", 60, fields[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field x", 71, fields[1].getDeclarationSourceEnd()); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals("has 1 method ", 1, methods.length); assertEquals("Invalid declaration source start for method foo", 39, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method foo", 57, methods[0].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName()); SourceType[] members = currentType.getMemberTypes(); assertTrue(" invalid members ", members == null); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test58() { String s = "public class X { \n"+ " int foo(){ \n"+ " String s = \" \n"+ " } \n"+ "} \n"; String expectedUnitToString = "public class X {\n" + "\tjava.lang.Object(0)\n" + "\tint foo() {}\n" + "}"; String testName = "test58: full parse"; fullParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 0, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 62, currentType.getDeclarationSourceEnd()); assertTrue("has no superinterfaces " , currentType.getInterfaceNames() == null); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields == null); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals("has 1 method ", 1, methods.length); assertEquals("Invalid declaration source start for method foo", 21, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method foo", 54, methods[0].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName()); SourceType[] members = currentType.getMemberTypes(); assertTrue(" invalid members ", members == null); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test59() { String s = "class X { \n" + " int foo(AA a, BB b, IOEx \n" + " \n"; String expectedUnitToString = "class X {\n" + "\tjava.lang.Object(0)\n" + "\tint foo(AA a, BB b, ) {}\n" + "}"; String testName = "test59: full parse"; fullParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 0, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 60, currentType.getDeclarationSourceEnd()); assertTrue("has no superinterfaces " , currentType.getInterfaceNames() == null); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields == null); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals("has 1 method ", 1, methods.length); assertEquals("Invalid declaration source start for method foo", 20, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method foo", 60, methods[0].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName()); SourceType[] members = currentType.getMemberTypes(); assertTrue(" invalid members ", members == null); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test60() { String s = "public class X { \n"+ " final static int foo(){ \n"+ " return \"1; \n"+ " } \n"+ " public static void main(String argv[]){ \n"+ " foo(); \n"+ " } \n"+ "} \n"; String expectedUnitToString = "public class X {\n" + "\tjava.lang.Object(0)\n" + "\tfinal static int foo() {}\n" + "\tpublic static void main(String[] argv, ) {}\n" + "}"; String testName = "test60: full parse"; fullParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 0, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 161, currentType.getDeclarationSourceEnd()); assertTrue("has no superinterfaces " , currentType.getInterfaceNames() == null); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields == null); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals("has 1 method ", 2, methods.length); assertEquals("Invalid declaration source start for method foo", 25, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method foo", 75, methods[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method main", 89, methods[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method main", 148, methods[1].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName()); assertEquals(" Invalid actual name for method main", "main", methods[1].getActualName()); SourceType[] members = currentType.getMemberTypes(); assertTrue(" invalid members ", members == null); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test61() { String s = "public class X { \n"+ " { \n"+ " int x;"; String expectedUnitToString = "public class X {\n" + "\t{}\n" + "\tjava.lang.Object(0)\n" + "}"; String testName = "test61: full parse"; fullParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 0, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 47, currentType.getDeclarationSourceEnd()); assertTrue("has no superinterfaces " , currentType.getInterfaceNames() == null); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields != null); assertEquals("Invalid declaration source start for initializer", 25, fields[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for initializer", 47, fields[0].getDeclarationSourceEnd()); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods == null); SourceType[] members = currentType.getMemberTypes(); assertTrue(" invalid members ", members == null); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test62() { String s = "public class X { \n"+ " int foo(){ \n"+ " if(true){ \n"+ " int x;"; String expectedUnitToString = "public class X {\n" + "\tjava.lang.Object(0)\n" + "\tint foo() {}\n" + "}"; String testName = "test62: full parse"; fullParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 0, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 78, currentType.getDeclarationSourceEnd()); assertTrue("has no superinterfaces " , currentType.getInterfaceNames() == null); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields == null); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals("has one method", 1, methods.length); assertEquals("Invalid declaration source start for method foo", 27, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method foo", 78, methods[0].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName()); SourceType[] members = currentType.getMemberTypes(); assertTrue(" invalid members ", members == null); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test63() { String s = "public class X { \n"+ " int foo(){} \n"+ "} \n"+ "int x;\n"; String expectedUnitToString = "public class X {\n" + "\tint x;\n" + "\tjava.lang.Object(0)\n" + "\tint foo() {}\n" + "}"; String testName = "test63: full parse"; fullParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 0, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 66, currentType.getDeclarationSourceEnd()); assertTrue("has no superinterfaces " , currentType.getInterfaceNames() == null); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields != null); assertEquals("has one field", 1, fields.length); assertEquals("Invalid declaration source start for field x", 60, fields[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field x", 65, fields[0].getDeclarationSourceEnd()); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals("has one method", 1, methods.length); assertEquals("Invalid declaration source start for method foo", 27, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method foo", 37, methods[0].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName()); SourceType[] members = currentType.getMemberTypes(); assertTrue(" invalid members ", members == null); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test64() { String s = "public class X { \n"+ " int foo(){} \n"+ "} \n"+ "int x;\n"; String expectedUnitToString = "public class X {\n" + "\tint x;\n" + "\tint foo() {}\n" + "}"; String testName = "test64: diet parse"; dietParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 0, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 66, currentType.getDeclarationSourceEnd()); assertTrue("has no superinterfaces " , currentType.getInterfaceNames() == null); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields != null); assertEquals("has one field", 1, fields.length); assertEquals("Invalid declaration source start for field x", 60, fields[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field x", 65, fields[0].getDeclarationSourceEnd()); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals("has one method", 1, methods.length); assertEquals("Invalid declaration source start for method foo", 27, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method foo", 37, methods[0].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName()); SourceType[] members = currentType.getMemberTypes(); assertTrue(" invalid members ", members == null); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test65() { String s = "public class X { \n"+ " int foo(){} \n"+ "} \n"+ "int x();\n"; String expectedUnitToString = "public class X {\n" + "\t{}\n" + "\tint foo() {}\n" + "\tint x() {}\n" + "}"; String testName = "test65: diet parse"; dietParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 0, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 68, currentType.getDeclarationSourceEnd()); assertTrue("has no superinterfaces " , currentType.getInterfaceNames() == null); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields != null); assertEquals(" invalid fields length ", 1, fields.length); assertEquals("Invalid declaration source start for initializer", 47, fields[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for initializer", 47, fields[0].getDeclarationSourceEnd()); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals("has two methods", 2, methods.length); assertEquals("Invalid declaration source start for method foo", 27, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method foo", 37, methods[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method x", 60, methods[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method x", 67, methods[1].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName()); assertEquals(" Invalid actual name for method x", "x", methods[1].getActualName()); SourceType[] members = currentType.getMemberTypes(); assertTrue(" invalid members ", members == null); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test66() { String s = "public interface X { \n"+ " int foo() {}; \n"+ "} \n"+ "int x();\n"; String expectedUnitToString = "public interface X {\n" + "\tint foo() {}\n" + "\tint x() {}\n" + "}"; String testName = "test66: diet parse"; dietParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 0, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 72, currentType.getDeclarationSourceEnd()); assertTrue("has no superinterfaces " , currentType.getInterfaceNames() == null); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields == null); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals("has two methods", 2, methods.length); assertEquals("Invalid declaration source start for method foo", 30, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method foo", 41, methods[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method x", 64, methods[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method x", 71, methods[1].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName()); assertEquals(" Invalid actual name for method x", "x", methods[1].getActualName()); SourceType[] members = currentType.getMemberTypes(); assertTrue(" invalid members ", members == null); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test67() { String s = "public interface X { \n"+ " int foo() {}; \n"+ " int x(); \n"+ "}"; String expectedUnitToString = "public interface X {\n" + "\tint foo() {}\n" + "\tint x() {}\n" + "}"; String testName = "test67: diet parse"; dietParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 0, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 71, currentType.getDeclarationSourceEnd()); assertTrue("has no superinterfaces " , currentType.getInterfaceNames() == null); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields == null); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals("has two methods", 2, methods.length); assertEquals("Invalid declaration source start for method foo", 30, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method foo", 41, methods[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method x", 54, methods[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method x", 61, methods[1].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName()); assertEquals(" Invalid actual name for method x", "x", methods[1].getActualName()); SourceType[] members = currentType.getMemberTypes(); assertTrue(" invalid members ", members == null); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test68() { String s = "public interface X { \n"+ " int foo() {}; \n"+ " int x(); \n"+ "}"; String expectedUnitToString = "public interface X {\n" + "\tint foo() {}\n" + "\tint x() {}\n" + "}"; String testName = "test68: full parse"; fullParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 0, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 71, currentType.getDeclarationSourceEnd()); assertTrue("has no superinterfaces " , currentType.getInterfaceNames() == null); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields == null); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals("has two methods", 2, methods.length); assertEquals("Invalid declaration source start for method foo", 30, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method foo", 41, methods[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method x", 54, methods[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method x", 61, methods[1].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName()); assertEquals(" Invalid actual name for method x", "x", methods[1].getActualName()); SourceType[] members = currentType.getMemberTypes(); assertTrue(" invalid members ", members == null); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test69() { String s = "public interface X { \n"+ "float y; \n"+ " int foo() ; \n"+ " int x(); \n"+ "}"; String expectedUnitToString = "public interface X {\n" + "\tfloat y;\n" + "\tint foo() {}\n" + "\tint x() {}\n" + "}"; String testName = "test69: full parse"; fullParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 0, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 87, currentType.getDeclarationSourceEnd()); assertTrue("has no superinterfaces " , currentType.getInterfaceNames() == null); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields != null); assertEquals("has one field", 1, fields.length); assertEquals("Invalid declaration source start for field y", 27, fields[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field y", 34, fields[0].getDeclarationSourceEnd()); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals("has two methods", 2, methods.length); assertEquals("Invalid declaration source start for method foo", 48, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method foo", 58, methods[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method x", 70, methods[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method x", 77, methods[1].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName()); assertEquals(" Invalid actual name for method x", "x", methods[1].getActualName()); SourceType[] members = currentType.getMemberTypes(); assertTrue(" invalid members ", members == null); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test70() { String s = "public interface X { \n"+ " int foo(); \n"+ " int x(); \n"+ "}"; String expectedUnitToString = "public interface X {\n" + "\tint foo() {}\n" + "\tint x() {}\n" + "}"; String testName = "test70: full parse"; fullParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 0, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 69, currentType.getDeclarationSourceEnd()); assertTrue("has no superinterfaces " , currentType.getInterfaceNames() == null); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields == null); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals("has two methods", 2, methods.length); assertEquals("Invalid declaration source start for method foo", 30, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method foo", 39, methods[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method x", 52, methods[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method x", 59, methods[1].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName()); assertEquals(" Invalid actual name for method x", "x", methods[1].getActualName()); SourceType[] members = currentType.getMemberTypes(); assertTrue(" invalid members ", members == null); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test71() { String s = "public interface X { \n"+ " int[] i = ; \n"+ " int foo() {} \n"+ " int x(); \n"+ "}"; String expectedUnitToString = "public interface X {\n" + "\tint[] i;\n" + "\tint foo() {}\n" + "\tint x() {}\n" + "}"; String testName = "test71: full parse"; fullParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 0, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 93, currentType.getDeclarationSourceEnd()); assertTrue("has no superinterfaces " , currentType.getInterfaceNames() == null); SourceField[] fields = currentType.getFields(); assertTrue(" invalid fields ", fields != null); assertEquals("has one field", 1, fields.length); assertEquals("Invalid declaration source start for field i", 30, fields[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field i", 49, fields[0].getDeclarationSourceEnd()); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods != null); assertEquals("has two methods", 2, methods.length); assertEquals("Invalid declaration source start for method foo", 53, methods[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method foo", 64, methods[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for method x", 76, methods[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for method x", 83, methods[1].getDeclarationSourceEnd()); assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName()); assertEquals(" Invalid actual name for method x", "x", methods[1].getActualName()); SourceType[] members = currentType.getMemberTypes(); assertTrue(" invalid members ", members == null); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test72() { String s = "public class X { \n"+ " X() { \n" + " this(); \n" + " } \n" + "}"; String expectedUnitToString = "public class X {\n" + "\tX() {\n" + "\t\tX(0)\n" + "\t}\n" + "}"; String testName = "test72: full parse"; fullParse(s,testName); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test73() { String s = "public class X extends Toto { \n"+ " X() { \n" + " this(); \n" + " } \n" + " X(int i) { \n" + " super(); \n" + " } \n" + " X() { \n" + " this(0); \n" + " } \n" + "}"; String expectedUnitToString = "public class X extends Toto {\n" + "\tX() {\n" + "\t\tX(0)\n" + "\t}\n" + "\tX(int i, ) {\n" + "\t\tToto(0)\n" + "\t}\n" + "\tX() {\n" + "\t\tX(1)\n" + "\t}\n" + "}"; String testName = "test73: full parse"; fullParse(s,testName); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test74() { String s = "public class X extends Toto { \n"+ " class Y extends Throwable { \n" + " } \n" + " X() { \n" + " this(); \n" + " } \n" + " X(int i) { \n" + " super(); \n" + " } \n" + " X() { \n" + " this(0); \n" + " } \n" + " public Object foo(int i) { \n" + " return new Object() {}; \n" + " } \n" + "}"; String expectedUnitToString = "public class X extends Toto {\n" + "\tclass Y extends Throwable {\n" + "\t\tThrowable(0)\n" + "\t}\n" + "\tX() {\n" + "\t\tX(0)\n" + "\t}\n" + "\tX(int i, ) {\n" + "\t\tToto(0)\n" + "\t}\n" + "\tX() {\n" + "\t\tX(1)\n" + "\t}\n" + "\tpublic Object foo(int i, ) {}\n" + "}"; String testName = "test74: full parse"; fullParse(s,testName); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } /* * bugs 16126 */ public void test75() { String s = "public class P#AField {\n" + " public void setP#A(String P#A) {\n" + " this.P#A = P#A;\n" + " }\n" + "}"; String expectedUnitToString = "public class P {\n" + " {}\n" + " public void setP;\n" + " java.lang.Object(0)\n" + " A(String P, ) {}\n" + "}"; String testName = "test75: full parse"; fullParse(s,testName); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } public void test76() { String s = "class X {\n" + " public static int j = 0;\n" + " /* static */ {\n" + " }" + " public static int i = 9;\n" + "}\n"; String expectedUnitToString = "class X {\n" + " public static int j;\n" + " {}\n" + " public static int i;\n" + " java.lang.Object(0)\n" + "}"; String testName = "test76: full parse"; fullParse(s,testName); assertEquals( "Invalid class declarationSourceStart ", 0, currentType.getDeclarationSourceStart()); assertEquals( "Invalid class declarationSourceEnd ", 84, currentType.getDeclarationSourceEnd()); SourceField[] fields = currentType.getFields(); assertTrue("invalid fields ", fields != null); assertEquals("Invalid fields length ", 3, fields.length); assertEquals("Invalid declaration source start for field j", 12, fields[0].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for field j", 35, fields[0].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for initializer", 39, fields[1].getDeclarationSourceStart()); assertEquals("Invalid declaration source end for initializer", 56, fields[1].getDeclarationSourceEnd()); assertEquals("Invalid declaration source start for field i", 59, fields[2].getDeclarationSourceStart()); assertEquals("Invalid declaration source end field i", 82, fields[2].getDeclarationSourceEnd()); SourceMethod[] methods = currentType.getMethods(); assertTrue(" invalid methods ", methods == null); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } /** * Bug 99662:[1.5] JavaModel returns inexistent IType for package-info ICompilationUnits * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=99662" * */ public void testBug99662() { String s = "@Deprecated\n" + "package p;\n"; String testName = "package-info.java"; fullParse(s,testName); assertNull("package-info.java file should not have ANY type!", this.currentType); } // https://bugs.eclipse.org/bugs/show_bug.cgi?id=167357 public void _test77() { String s = "public class X {\n" + " void foo() {\n" + " class Y {\n" + " String s = null;\n" + " {\n" + " class Z {\n" + " }\n" + " }\n" + " }\n" + " }\n" + "}"; String expectedUnitToString = "public class X implements Y, String, {\n" + "}"; String testName = "test77: diet parse"; dietParse(s,testName, true); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } // https://bugs.eclipse.org/bugs/show_bug.cgi?id=167357 public void _test78() { String s = "public class X {\n" + " void foo() {\n" + " class Y {\n" + " String s = null;\n" + " {\n" + " class Z {\n" + " }\n" + " }\n" + " }\n" + " }\n" + "}"; String expectedUnitToString = "public class X implements Y, String, {\n" + "}"; String testName = "test78: full parse"; fullParse(s,testName, true); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } // https://bugs.eclipse.org/bugs/show_bug.cgi?id=167357 public void _test79() { String s = "public class X {\n" + " void foo() {\n" + " class Y {\n" + " {\n" + " class Z {\n" + " }\n" + " }\n" + " String s = null;\n" + " }\n" + " }\n" + "}"; String expectedUnitToString = "public class X implements Y, String, {\n" + "}"; String testName = "test79: diet parse"; dietParse(s,testName, true); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } // https://bugs.eclipse.org/bugs/show_bug.cgi?id=167357 public void _test80() { String s = "public class X {\n" + " void foo() {\n" + " class Y {\n" + " {\n" + " class Z {\n" + " }\n" + " }\n" + " String s = null;\n" + " }\n" + " }\n" + "}"; String expectedUnitToString = "public class X implements Y, String, {\n" + "}"; String testName = "test80: full parse"; fullParse(s,testName, true); assertEquals( "Invalid source " + testName, expectedUnitToString, currentType.toString()); } }