Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/CompletionTests10.java')
-rw-r--r--org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/CompletionTests10.java354
1 files changed, 354 insertions, 0 deletions
diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/CompletionTests10.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/CompletionTests10.java
new file mode 100644
index 000000000..8ff3ac113
--- /dev/null
+++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/CompletionTests10.java
@@ -0,0 +1,354 @@
+/*******************************************************************************
+ * Copyright (c) 2018 Jesper Steen Møller 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
+ *
+ * This is an implementation of an early-draft specification developed under the Java
+ * Community Process (JCP) and is made available for testing and evaluation purposes
+ * only. The code is not compatible with any specification of the JCP.
+ *
+ * Contributors:
+ * Jesper Steen Møller - initial API and implementation
+ * bug 529556 - [18.3] Add content assist support for 'var' as a type
+ *******************************************************************************/
+package org.eclipse.jdt.core.tests.model;
+
+import java.util.stream.Stream;
+
+import org.eclipse.jdt.core.JavaModelException;
+
+import junit.framework.Test;
+
+public class CompletionTests10 extends AbstractJavaModelCompletionTests {
+ static {
+// TESTS_NAMES = new String[]{"test0001_block_scope"};
+ }
+public CompletionTests10(String name) {
+ super(name);
+}
+public void setUpSuite() throws Exception {
+ if (COMPLETION_PROJECT == null) {
+ COMPLETION_PROJECT = setUpJavaProject("Completion", "10");
+ } else {
+ setUpProjectCompliance(COMPLETION_PROJECT, "10");
+ }
+ super.setUpSuite();
+}
+public static Test suite() {
+ return buildModelTestSuite(CompletionTests10.class);
+}
+public void test0001_block_scope() throws JavaModelException {
+ CompletionResult result = complete(
+ "/Completion/src3/test0001/Test.java",
+ "package test0001;\n" +
+ "\n" +
+ "public class Test {\n" +
+ " void x() {\n" +
+ " va\n" +
+ " }\n" +
+ "}",
+ "va");
+
+ assertResults(
+ "expectedTypesSignatures=null\n" +
+ "expectedTypesKeys=null",
+ result.context);
+
+ assertResults(
+ "var[KEYWORD]{var, null, null, var, null, " + (R_DEFAULT + R_RESOLVED + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}",
+ result.proposals);
+}
+public void test0001a_block_scope_switch() throws JavaModelException {
+ CompletionResult result = complete(
+ "/Completion/src3/test0001/Test.java",
+ "package test0001;\n" +
+ "\n" +
+ "public class Test {\n" +
+ " void x(int a) {\n" +
+ " switch(a) {\n" +
+ " case 1: va\n" +
+ " }\n" +
+ " }\n" +
+ "}",
+ "va");
+
+ assertResults(
+ "expectedTypesSignatures=null\n" +
+ "expectedTypesKeys=null",
+ result.context);
+
+ assertResults(
+ "var[KEYWORD]{var, null, null, var, null, " + (R_DEFAULT + R_RESOLVED + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}",
+ result.proposals);
+}
+public void test0002_block_scope_final() throws JavaModelException {
+ CompletionResult result = complete(
+ "/Completion/src3/test0002/Test.java",
+ "package test0002;\n" +
+ "\n" +
+ "public class Test {\n" +
+ " void x() {\n" +
+ " final va\n" +
+ " }\n" +
+ "}",
+ "va");
+
+ assertResults(
+ "expectedTypesSignatures=null\n" +
+ "expectedTypesKeys=null",
+ result.context);
+
+ assertResults(
+ "var[KEYWORD]{var, null, null, var, null, " + (R_DEFAULT + R_RESOLVED + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}",
+ result.proposals);
+}
+public void test0003_inside_for() throws JavaModelException {
+ CompletionResult result = complete(
+ "/Completion/src3/test0003/Test.java",
+ "package test0003;\n" +
+ "\n" +
+ "public class Test {\n" +
+ " void x() {\n" +
+ " for(va\n" +
+ " }\n" +
+ "}",
+ "va");
+
+ assertResults(
+ "expectedTypesSignatures=null\n" +
+ "expectedTypesKeys=null",
+ result.context);
+
+ assertResults(
+ "var[KEYWORD]{var, null, null, var, null, " + (R_DEFAULT + R_RESOLVED + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}",
+ result.proposals);
+}
+public void test0004_inside_for_final() throws JavaModelException {
+ CompletionResult result = complete(
+ "/Completion/src3/test0004/Test.java",
+ "package test0004;\n" +
+ "\n" +
+ "public class Test {\n" +
+ " void x() {\n" +
+ " for(final va\n" +
+ " }\n" +
+ "}",
+ "va");
+
+ assertResults(
+ "expectedTypesSignatures=null\n" +
+ "expectedTypesKeys=null",
+ result.context);
+
+ assertResults(
+ "var[KEYWORD]{var, null, null, var, null, " + (R_DEFAULT + R_RESOLVED + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}",
+ result.proposals);
+}
+public void test0005_inside_try() throws JavaModelException {
+ CompletionResult result = complete(
+ "/Completion/src3/test0005/Test.java",
+ "package test0005;\n" +
+ "\n" +
+ "public class Test {\n" +
+ " void x() {\n" +
+ " try(va\n" +
+ " }\n" +
+ "}",
+ "va");
+
+ assertResults(
+ "expectedTypesSignatures=null\n" +
+ "expectedTypesKeys=null",
+ result.context);
+
+ assertResults(
+ "var[KEYWORD]{var, null, null, var, null, " + (R_DEFAULT + R_RESOLVED + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}",
+ result.proposals);
+}
+public void test0006_inside_try_final() throws JavaModelException {
+ CompletionResult result = complete(
+ "/Completion/src3/test0006/Test.java",
+ "package test0006;\n" +
+ "\n" +
+ "public class Test {\n" +
+ " void x() {\n" +
+ " try(final va\n" +
+ " }\n" +
+ "}",
+ "va");
+
+ assertResults(
+ "expectedTypesSignatures=null\n" +
+ "expectedTypesKeys=null",
+ result.context);
+
+ assertResults(
+ "var[KEYWORD]{var, null, null, var, null, " + (R_DEFAULT + R_RESOLVED + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}",
+ result.proposals);
+}
+
+public void test0007_not_inside_expression() throws JavaModelException {
+ CompletionResult result = complete(
+ "/Completion/src3/test0007/Test.java",
+ "package test0007;\n" +
+ "\n" +
+ "public class Test {\n" +
+ " void x() {\n" +
+ " int a = 2 + \n" +
+ " }\n" +
+ "}",
+ "+ ");
+
+ assertResults(
+ "expectedTypesSignatures={S,I,J,F,D,C,B,Ljava.lang.String;}\n" +
+ "expectedTypesKeys={S,I,J,F,D,C,B,Ljava/lang/String;}",
+ result.context);
+
+ assertProposalCount("var[KEYWORD]", 0, 14, result);
+}
+
+public void test0008_not_in_class_scope() throws JavaModelException {
+ CompletionResult result = complete(
+ "/Completion/src3/test0008/Test.java",
+ "package test0008;\n" +
+ "\n" +
+ "public class Test { \n" +
+
+ "}",
+ "{");
+
+ assertResults(
+ "expectedTypesSignatures=null\n" +
+ "expectedTypesKeys=null",
+ result.context);
+
+ assertProposalCount("var[KEYWORD]", 0, 21, result);
+}
+ public void test0009_in_formal_param_lists() throws JavaModelException {
+ CompletionResult result = complete(
+ "/Completion/src3/test0009/Test.java",
+ "package test0009;\n" +
+ "\n" +
+ "public class Test {\n" +
+ " void x( ) {\n" +
+ " }\n" +
+ "}",
+ "x(");
+
+ assertResults(
+ "expectedTypesSignatures=null\n" +
+ "expectedTypesKeys=null",
+ result.context);
+ assertProposalCount("var[KEYWORD]", 0, 15, result);
+ }
+
+public void testbug_529556_missing_type_info_on_vars() throws JavaModelException {
+ CompletionResult result = complete(
+ "/Completion/src3/test0001/Test.java",
+ "package test0001;\n" +
+ "\n" +
+ "public class Test {\n" +
+ " private class Dummy {\n" +
+ " public void a_method() {/n"+
+ " }\n" +
+ " void x() {\n" +
+ " var x = new Dummy();\n" +
+ " x.a\n" +
+ " }\n" +
+ "}",
+ "x.a");
+ assertResults(
+ "a_method[METHOD_REF]{a_method(), Ltest0001.Test$Dummy;, ()V, a_method, null, " + (R_DEFAULT + 30) + "}",
+ result.proposals);
+}
+public void testBug532476a() throws JavaModelException {
+ CompletionResult result = complete(
+ "/Completion/src3/p/X.java",
+ "package p;\n" +
+ "public class X {\n" +
+ " public static void main(String[] args) {\n" +
+ " var i_jk = 0;\n" +
+ " System.out.println(i_);/n"+
+ " }\n" +
+ "}",
+ "i_");
+ assertResults(
+ "i_jk[LOCAL_VARIABLE_REF]{i_jk, null, I, i_jk, null, " + (R_DEFAULT + 22) + "}",
+ result.proposals);
+}
+public void testBug532476b() throws JavaModelException {
+ CompletionResult result = complete(
+ "/Completion/src3/p/X.java",
+ "package p;\n" +
+ "public class X {\n" +
+ " public static void main(String[] args) {\n" +
+ " for (var i_jkl : args) {\n" +
+ " System.out.println(i_);/n"+
+ " }\n" +
+ " }\n" +
+ "}",
+ "i_");
+ assertResults(
+ "i_jkl[LOCAL_VARIABLE_REF]{i_jkl, null, Ljava.lang.Object;, i_jkl, null, " + (R_DEFAULT + 22) + "}",
+ result.proposals);
+}
+public void testBug532476c() throws JavaModelException {
+ CompletionResult result = complete(
+ "/Completion/src3/p/X.java",
+ "package p;\n" +
+ "public class X {\n" +
+ " public static void main(String[] args) {\n" +
+ " for (var i_jkl = 0; i_ " +
+ " }\n" +
+ "}",
+ "i_");
+ assertResults(
+ "i_jkl[LOCAL_VARIABLE_REF]{i_jkl, null, I, i_jkl, null, " + (R_DEFAULT + 22) + "}",
+ result.proposals);
+}
+public void testBug532476d() throws JavaModelException {
+ CompletionResult result = complete(
+ "/Completion/src3/p/X.java",
+ "package p;\n" +
+ "public class X {\n" +
+ " public static void main(String[] args) {\n" +
+ " for (var i_jkl = 0; ; i_ " +
+ " }\n" +
+ "}",
+ "i_");
+ assertResults(
+ "i_jkl[LOCAL_VARIABLE_REF]{i_jkl, null, I, i_jkl, null, " + (R_DEFAULT + 22) + "}",
+ result.proposals);
+}
+public void testBug532476e() throws JavaModelException {
+ CompletionResult result = complete(
+ "/Completion/src3/p/X.java",
+ "package p;\n" +
+ "public class X {\n" +
+ " public static void main(String[] args) {\n" +
+ " for (var i_jkl : args) {\n" +
+ " System.out.println(i_jkl.fin);/n"+
+ " }\n" +
+ " }\n" +
+ "}",
+ "i_jkl.fin");
+ assertResults(
+ "finalize[METHOD_REF]{finalize(), Ljava.lang.Object;, ()V, finalize, null, " + (R_DEFAULT + 30) + "}",
+ result.proposals);
+}
+private void assertProposalCount(String proposal, int expectedCount, int expectedOtherCount, CompletionResult result) {
+ String[] proposals = result.proposals.split("\n");
+ long proposalsCount = Stream.of(proposals).filter(s -> s.startsWith(proposal)).count();
+ assertEquals(
+ "Unexpected occurrences of " + proposal + " - result was " + result.proposals,
+ expectedCount, proposalsCount);
+
+ long otherProposalsCount = proposals.length - proposalsCount;
+ assertEquals(
+ "Unexpected occurrences that were not " + proposal + " - result was " + result.proposals,
+ expectedOtherCount, otherProposalsCount);
+}
+
+}

Back to the top