| /******************************************************************************* |
| * Copyright (c) 2020 IBM and others. |
| * |
| * This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License 2.0 |
| * which accompanies this distribution, and is available at |
| * https://www.eclipse.org/legal/epl-2.0/ |
| * |
| * SPDX-License-Identifier: EPL-2.0 |
| * |
| * Contributors: |
| * IBM Corporation - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.jdt.core.tests.model; |
| |
| import org.eclipse.jdt.core.ICompilationUnit; |
| import org.eclipse.jdt.core.IJavaProject; |
| import org.eclipse.jdt.core.JavaCore; |
| import org.eclipse.jdt.core.JavaModelException; |
| |
| import junit.framework.Test; |
| |
| public class CompletionTests14 extends AbstractJavaModelCompletionTests { |
| |
| static { |
| // TESTS_NAMES = new String[]{"test034"}; |
| } |
| |
| public CompletionTests14(String name) { |
| super(name); |
| } |
| |
| public void setUpSuite() throws Exception { |
| if (COMPLETION_PROJECT == null) { |
| COMPLETION_PROJECT = setUpJavaProject("Completion", "16"); |
| } else { |
| setUpProjectCompliance(COMPLETION_PROJECT, "16"); |
| } |
| COMPLETION_PROJECT.setOption(JavaCore.COMPILER_PB_ENABLE_PREVIEW_FEATURES, JavaCore.ENABLED); |
| super.setUpSuite(); |
| } |
| |
| public static Test suite() { |
| return buildModelTestSuite(CompletionTests14.class); |
| } |
| |
| public void test001() throws JavaModelException { |
| this.workingCopies = new ICompilationUnit[1]; |
| this.workingCopies[0] = getWorkingCopy( |
| "/Completion/src/Point.java", |
| "public record Point() imple {\n" + |
| "}"); |
| this.workingCopies[0].getJavaProject(); //assuming single project for all working copies |
| CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true); |
| requestor.allowAllRequiredProposals(); |
| String str = this.workingCopies[0].getSource(); |
| String completeBehind = "imple"; |
| int cursorLocation = str.indexOf(completeBehind) + completeBehind.length(); |
| this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner); |
| assertResults( |
| "implements[KEYWORD]{implements, null, null, implements, null, 49}", |
| requestor.getResults()); |
| |
| } |
| |
| public void test002() throws JavaModelException { |
| this.workingCopies = new ICompilationUnit[1]; |
| this.workingCopies[0] = getWorkingCopy( |
| "/Completion/src/Point.java", |
| "public record Point() exte {\n" + |
| "}"); |
| IJavaProject javaProject = this.workingCopies[0].getJavaProject(); //assuming single project for all working copies |
| String old = javaProject.getOption(JavaCore.COMPILER_PB_ENABLE_PREVIEW_FEATURES, true); |
| try { |
| javaProject.setOption(JavaCore.COMPILER_PB_ENABLE_PREVIEW_FEATURES, JavaCore.ENABLED); |
| CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true); |
| String str = this.workingCopies[0].getSource(); |
| String completeBehind = "exte"; |
| int cursorLocation = str.indexOf(completeBehind) + completeBehind.length(); |
| this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner); |
| assertResults("", requestor.getResults()); |
| }finally { |
| javaProject.setOption(JavaCore.COMPILER_PB_ENABLE_PREVIEW_FEATURES, old); |
| } |
| } |
| |
| public void test003() throws JavaModelException { |
| this.workingCopies = new ICompilationUnit[1]; |
| this.workingCopies[0] = getWorkingCopy( |
| "/Completion/src/Point.java", |
| "public record Point<U>() imple {\n" + |
| "}"); |
| this.workingCopies[0].getJavaProject(); //assuming single project for all working copies |
| CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true); |
| requestor.allowAllRequiredProposals(); |
| String str = this.workingCopies[0].getSource(); |
| String completeBehind = "imple"; |
| int cursorLocation = str.indexOf(completeBehind) + completeBehind.length(); |
| this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner); |
| assertResults( |
| "implements[KEYWORD]{implements, null, null, implements, null, 49}", |
| requestor.getResults()); |
| } |
| public void test004() throws JavaModelException { |
| this.workingCopies = new ICompilationUnit[1]; |
| this.workingCopies[0] = getWorkingCopy( |
| "/Completion/src/Point.java", |
| "public record Point<U>() exte {\n" + |
| "}"); |
| this.workingCopies[0].getJavaProject(); //assuming single project for all working copies |
| CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true); |
| requestor.allowAllRequiredProposals(); |
| String str = this.workingCopies[0].getSource(); |
| String completeBehind = "exte"; |
| int cursorLocation = str.indexOf(completeBehind) + completeBehind.length(); |
| this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner); |
| assertResults("", requestor.getResults()); |
| } |
| |
| public void test005() throws JavaModelException { |
| this.workingCopies = new ICompilationUnit[1]; |
| this.workingCopies[0] = getWorkingCopy( |
| "/Completion/src/Point.java", |
| "public record Point<U extends Thread>() imple {\n" + |
| "}"); |
| this.workingCopies[0].getJavaProject(); //assuming single project for all working copies |
| CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true); |
| requestor.allowAllRequiredProposals(); |
| String str = this.workingCopies[0].getSource(); |
| String completeBehind = "imple"; |
| int cursorLocation = str.indexOf(completeBehind) + completeBehind.length(); |
| this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner); |
| assertResults( |
| "implements[KEYWORD]{implements, null, null, implements, null, 49}", |
| requestor.getResults()); |
| |
| } |
| public void test006() throws JavaModelException { |
| this.workingCopies = new ICompilationUnit[1]; |
| this.workingCopies[0] = getWorkingCopy( |
| "/Completion/src/Point.java", |
| "public record Point<U extends Thread>() /*here*/exte {\n" + |
| "}"); |
| |
| CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true); |
| requestor.allowAllRequiredProposals(); |
| String str = this.workingCopies[0].getSource(); |
| String completeBehind = "/*here*/exte"; |
| int cursorLocation = str.indexOf(completeBehind) + completeBehind.length(); |
| this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner); |
| assertResults("", requestor.getResults()); |
| } |
| |
| public void test007() throws JavaModelException { |
| this.workingCopies = new ICompilationUnit[1]; |
| this.workingCopies[0] = getWorkingCopy("/Completion/src/Point.java", |
| "public record Point(int comp) imple {\n" + "}"); |
| this.workingCopies[0].getJavaProject(); // assuming single project for all working copies |
| |
| CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true); |
| requestor.allowAllRequiredProposals(); |
| String str = this.workingCopies[0].getSource(); |
| String completeBehind = "imple"; |
| int cursorLocation = str.indexOf(completeBehind) + completeBehind.length(); |
| this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner); |
| assertResults("implements[KEYWORD]{implements, null, null, implements, null, 49}", requestor.getResults()); |
| |
| } |
| public void test008() throws JavaModelException { |
| this.workingCopies = new ICompilationUnit[1]; |
| this.workingCopies[0] = getWorkingCopy( |
| "/Completion/src/Point.java", |
| "public record Point(int comp) exte {\n" + |
| "}"); |
| |
| CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true); |
| String str = this.workingCopies[0].getSource(); |
| String completeBehind = "exte"; |
| int cursorLocation = str.indexOf(completeBehind) + completeBehind.length(); |
| this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner); |
| assertResults("", requestor.getResults()); |
| } |
| |
| public void test009() throws JavaModelException { |
| this.workingCopies = new ICompilationUnit[1]; |
| this.workingCopies[0] = getWorkingCopy( |
| "/Completion/src/Point.java", |
| "public record Point<U>(int comp) imple {\n" + |
| "}"); |
| this.workingCopies[0].getJavaProject(); //assuming single project for all working copies |
| |
| CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true); |
| requestor.allowAllRequiredProposals(); |
| String str = this.workingCopies[0].getSource(); |
| String completeBehind = "imple"; |
| int cursorLocation = str.indexOf(completeBehind) + completeBehind.length(); |
| this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner); |
| assertResults( |
| "implements[KEYWORD]{implements, null, null, implements, null, 49}", |
| requestor.getResults()); |
| } |
| |
| public void test0010() throws JavaModelException { |
| this.workingCopies = new ICompilationUnit[1]; |
| this.workingCopies[0] = getWorkingCopy( |
| "/Completion/src/Point.java", |
| "public record Point<U>(int comp) exte {\n" + |
| "}"); |
| this.workingCopies[0].getJavaProject(); //assuming single project for all working copies |
| |
| CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true); |
| requestor.allowAllRequiredProposals(); |
| String str = this.workingCopies[0].getSource(); |
| String completeBehind = "exte"; |
| int cursorLocation = str.indexOf(completeBehind) + completeBehind.length(); |
| this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner); |
| assertResults("", requestor.getResults()); |
| } |
| |
| public void test011() throws JavaModelException { |
| this.workingCopies = new ICompilationUnit[1]; |
| this.workingCopies[0] = getWorkingCopy( |
| "/Completion/src/Point.java", |
| "public record Point<U extends Thread>(int comp) imple {\n" + |
| "}"); |
| IJavaProject javaProject = this.workingCopies[0].getJavaProject(); //assuming single project for all working copies |
| String old = javaProject.getOption(JavaCore.COMPILER_PB_ENABLE_PREVIEW_FEATURES, true); |
| try { |
| javaProject.setOption(JavaCore.COMPILER_PB_ENABLE_PREVIEW_FEATURES, JavaCore.ENABLED); |
| CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true); |
| requestor.allowAllRequiredProposals(); |
| String str = this.workingCopies[0].getSource(); |
| String completeBehind = "imple"; |
| int cursorLocation = str.indexOf(completeBehind) + completeBehind.length(); |
| this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner); |
| assertResults( |
| "implements[KEYWORD]{implements, null, null, implements, null, 49}", |
| requestor.getResults()); |
| } |
| finally { |
| javaProject.setOption(JavaCore.COMPILER_PB_ENABLE_PREVIEW_FEATURES, old); |
| } |
| } |
| |
| public void test012() throws JavaModelException { |
| this.workingCopies = new ICompilationUnit[1]; |
| this.workingCopies[0] = getWorkingCopy( |
| "/Completion/src/Point.java", |
| "public record Point<U extends Thread>(int comp) /*here*/exte {\n" + |
| "}"); |
| |
| CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true); |
| requestor.allowAllRequiredProposals(); |
| String str = this.workingCopies[0].getSource(); |
| String completeBehind = "/*here*/exte"; |
| int cursorLocation = str.indexOf(completeBehind) + completeBehind.length(); |
| this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner); |
| assertResults("", requestor.getResults()); |
| } |
| |
| public void test013() throws JavaModelException { |
| this.workingCopies = new ICompilationUnit[2]; |
| this.workingCopies[1] = getWorkingCopy( |
| "/Completion/src/mypack1/rrr.java", |
| "package mypack1;\n" + |
| "public record rrr() {\n" + |
| "}"); |
| this.workingCopies[0] = getWorkingCopy( |
| "/Completion/src/mypack1/MyClass.java", |
| "package mypack1;\n" + |
| "public class MyClass extends /*here*/rr {\n" + |
| "}"); |
| |
| CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true); |
| requestor.allowAllRequiredProposals(); |
| String str = this.workingCopies[0].getSource(); |
| String completeBehind = "/*here*/rr"; |
| int cursorLocation = str.indexOf(completeBehind) + completeBehind.length(); |
| this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner); |
| assertResults("", requestor.getResults()); |
| } |
| |
| public void test0014() throws JavaModelException { |
| this.workingCopies = new ICompilationUnit[1]; |
| this.workingCopies[0] = getWorkingCopy( |
| "/Completion/src/Point.java", |
| "/**\n" + |
| " * \n" + |
| " * @par \n" + |
| " *\n"+ |
| " */\n" + |
| "public record Point() {\n" + |
| "}"); |
| |
| CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true); |
| requestor.allowAllRequiredProposals(); |
| String str = this.workingCopies[0].getSource(); |
| String completeBehind = "par"; |
| int cursorLocation = str.indexOf(completeBehind) + completeBehind.length(); |
| this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner); |
| assertResults("", requestor.getResults()); |
| } |
| |
| public void _test0015() throws JavaModelException { |
| this.workingCopies = new ICompilationUnit[1]; |
| this.workingCopies[0] = getWorkingCopy( |
| "/Completion/src/Point.java", |
| "/**\n" + |
| " * \n" + |
| " * @par \n" + |
| " *\n"+ |
| " */\n" + |
| "//public record Point(int a) {\n" + |
| "}"); |
| |
| CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true); |
| requestor.allowAllRequiredProposals(); |
| String str = this.workingCopies[0].getSource(); |
| String completeBehind = "par"; |
| int cursorLocation = str.indexOf(completeBehind) + completeBehind.length(); |
| this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner); |
| assertResults( |
| "param[JAVADOC_BLOCK_TAG]{@param, null, null, param, null, 38}", |
| requestor.getResults()); |
| } |
| |
| public void testBug560781() throws JavaModelException { |
| this.workingCopies = new ICompilationUnit[1]; |
| this.workingCopies[0] = getWorkingCopy( |
| "/Completion/src/Point.java", |
| "public record Point(int comp_) { \n" + |
| "}\n"+ |
| "class MyClass extends /*here*/Poin \n" |
| ); |
| |
| CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true); |
| requestor.allowAllRequiredProposals(); |
| String str = this.workingCopies[0].getSource(); |
| String completeBehind = "/*here*/Poin"; |
| int cursorLocation = str.indexOf(completeBehind) + completeBehind.length(); |
| this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner); |
| assertResults("", requestor.getResults()); |
| } |
| public void testBug564828_1() throws JavaModelException { |
| this.workingCopies = new ICompilationUnit[1]; |
| this.workingCopies[0] = getWorkingCopy( |
| "/Completion/src/Point.java", |
| "public reco {\n" + |
| "}"); |
| this.workingCopies[0].getJavaProject(); //assuming single project for all working copies |
| CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true); |
| requestor.allowAllRequiredProposals(); |
| String str = this.workingCopies[0].getSource(); |
| String completeBehind = "reco"; |
| int cursorLocation = str.indexOf(completeBehind) + completeBehind.length(); |
| this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner); |
| assertResults( |
| "record[RESTRICTED_IDENTIFIER]{record, null, null, record, null, 49}", |
| requestor.getResults()); |
| |
| } |
| |
| //check if local variable record shows up |
| public void testBug564828_2() throws JavaModelException { |
| this.workingCopies = new ICompilationUnit[1]; |
| this.workingCopies[0] = getWorkingCopy( |
| "/Completion/src/Point.java", |
| "public class Point {\n" + |
| "private void method(){\n" + |
| "int record;\n" + |
| "{\n" + |
| " /*here*/rec\n" + |
| "}\n" + |
| "}\n" + |
| |
| "}"); |
| this.workingCopies[0].getJavaProject(); //assuming single project for all working copies |
| CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true); |
| requestor.allowAllRequiredProposals(); |
| String str = this.workingCopies[0].getSource(); |
| String completeBehind = "/*here*/rec"; |
| int cursorLocation = str.indexOf(completeBehind) + completeBehind.length(); |
| this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner); |
| assertResults( |
| "Record[TYPE_REF]{Record, java.lang, Ljava.lang.Record;, null, null, 42}\n"+ |
| "record[LOCAL_VARIABLE_REF]{record, null, I, record, null, 52}", |
| requestor.getResults()); |
| |
| } |
| } |