blob: 30e8ddf4c506b2c279858b92e537dc9940ca1d45 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2000, 2003 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Common Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/cpl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.jdt.core.tests.compiler.parser;
/**
* Selection is expected to be wrapped with an explicit constructor invocation.
*/
public class ExplicitConstructorInvocationSelectionTest extends AbstractSelectionTest {
public ExplicitConstructorInvocationSelectionTest(String testName) {
super(testName);
}
/*
* ExplicitConstructorInvocation ::= Name '.' 'super' '(' <ArgumentListopt> ')' ';'
*/
public void testNameSuper() {
this.runTestCheckMethodParse(
// compilationUnit:
"class Bar { \n" +
" static Bar x; \n" +
" public class InnerBar { \n" +
" InnerBar(Bar x) { \n" +
" } \n" +
" } \n" +
" public class SubInnerBar extends InnerBar { \n" +
" SubInnerBar() { \n" +
" Bar.super(fred()); \n" +
" } \n" +
" } \n" +
"} \n",
// selectionStartBehind:
"Bar.super(",
// selectionEndBehind:
"fred",
// expectedSelectionNodeToString:
"<SelectOnMessageSend:fred()>",
// expectedUnitDisplayString:
"class Bar {\n" +
" public class InnerBar {\n" +
" InnerBar(Bar x) {\n" +
" }\n" +
" }\n" +
" public class SubInnerBar extends InnerBar {\n" +
" SubInnerBar() {\n" +
" super(<SelectOnMessageSend:fred()>);\n" +
" }\n" +
" }\n" +
" static Bar x;\n" +
" <clinit>() {\n" +
" }\n" +
" Bar() {\n" +
" }\n" +
"}\n",
// expectedSelectionIdentifier:
"fred",
// expectedReplacedSource:
"fred()",
// testName:
"<select on explicit constructor invocation name super>"
);
}
/*
* ExplicitConstructorInvocation ::= Name '.' 'this' '(' <ArgumentListopt> ')' ';'
*/
public void testNameThis() {
this.runTestCheckMethodParse(
// compilationUnit:
"class Bar { \n" +
" static Bar x; \n" +
" public class InnerBar { \n" +
" InnerBar(Bar x) { \n" +
" } \n" +
" } \n" +
" public class SubInnerBar extends InnerBar { \n" +
" SubInnerBar() { \n" +
" Bar.this(fred()); \n" +
" } \n" +
" } \n" +
"} \n",
// selectionStartBehind:
"Bar.this(",
// selectionEndBehind:
"fred",
// expectedSelectionNodeToString:
"<SelectOnMessageSend:fred()>",
// expectedUnitDisplayString:
"class Bar {\n" +
" public class InnerBar {\n" +
" InnerBar(Bar x) {\n" +
" }\n" +
" }\n" +
" public class SubInnerBar extends InnerBar {\n" +
" SubInnerBar() {\n" +
" this(<SelectOnMessageSend:fred()>);\n" +
" }\n" +
" }\n" +
" static Bar x;\n" +
" <clinit>() {\n" +
" }\n" +
" Bar() {\n" +
" }\n" +
"}\n",
// expectedSelectionIdentifier:
"fred",
// expectedReplacedSource:
"fred()",
// testName:
"<select on explicit constructor invocation name this>"
);
}
/*
* ExplicitConstructorInvocation ::= Primary '.' 'this' '(' <ArgumentListopt> ')' ';'
*/
public void testPrimarySuper() {
this.runTestCheckMethodParse(
// compilationUnit:
"class Bar { \n" +
" static Bar x; \n" +
" public class InnerBar { \n" +
" InnerBar(Bar x) { \n" +
" } \n" +
" } \n" +
" public class SubInnerBar extends InnerBar { \n" +
" SubInnerBar(Bar x) { \n" +
" primary().super(fred()); \n" +
" } \n" +
" } \n" +
"} \n",
// selectionStartBehind:
"super(",
// selectionEndBehind:
"fred",
// expectedSelectionNodeToString:
"<SelectOnMessageSend:fred()>",
// expectedUnitDisplayString:
"class Bar {\n" +
" public class InnerBar {\n" +
" InnerBar(Bar x) {\n" +
" }\n" +
" }\n" +
" public class SubInnerBar extends InnerBar {\n" +
" SubInnerBar(Bar x) {\n" +
" super(<SelectOnMessageSend:fred()>);\n" +
" }\n" +
" }\n" +
" static Bar x;\n" +
" <clinit>() {\n" +
" }\n" +
" Bar() {\n" +
" }\n" +
"}\n",
// expectedSelectionIdentifier:
"fred",
// expectedReplacedSource:
"fred()",
// testName:
"<select on explicit constructor invocation primary super>"
);
}
/*
* ExplicitConstructorInvocation ::= 'super' '(' <ArgumentListopt> ')' ';'
*/
public void testSuper() {
this.runTestCheckMethodParse(
// compilationUnit:
"class Bar { \n" +
" Bar() { \n" +
" super(fred()); \n" +
" } \n" +
"} \n",
// selectionStartBehind:
"super(",
// selectionEndBehind:
"fred",
// expectedSelectionNodeToString:
"<SelectOnMessageSend:fred()>",
// expectedUnitDisplayString:
"class Bar {\n" +
" Bar() {\n" +
" super(<SelectOnMessageSend:fred()>);\n" +
" }\n" +
"}\n",
// expectedSelectionIdentifier:
"fred",
// expectedReplacedSource:
"fred()",
// testName:
"<select on explicit constructor invocation super>"
);
}
/*
* ExplicitConstructorInvocation ::= 'this' '(' <ArgumentListopt> ')' ';'
*/
public void testThis() {
this.runTestCheckMethodParse(
// compilationUnit:
"class Bar { \n" +
" Bar() { \n" +
" this(fred()); \n" +
" } \n" +
"} \n",
// selectionStartBehind:
"this(",
// selectionEndBehind:
"fred",
// expectedSelectionNodeToString:
"<SelectOnMessageSend:fred()>",
// expectedUnitDisplayString:
"class Bar {\n" +
" Bar() {\n" +
" this(<SelectOnMessageSend:fred()>);\n" +
" }\n" +
"}\n",
// expectedSelectionIdentifier:
"fred",
// expectedReplacedSource:
"fred()",
// testName:
"<select on explicit constructor invocation this>"
);
}
}