blob: 84328091b56fd6e7d70ce7fae8d8fc110984a6c7 [file] [log] [blame]
/*
* Copyright 2000-2014 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.siyeh.ig.fixes;
import com.siyeh.InspectionGadgetsBundle;
import com.siyeh.ig.BaseInspection;
import com.siyeh.ig.IGQuickFixesTestCase;
import com.siyeh.ig.assignment.AssignmentToCatchBlockParameterInspection;
import com.siyeh.ig.assignment.AssignmentToForLoopParameterInspection;
import com.siyeh.ig.assignment.AssignmentToLambdaParameterInspection;
import com.siyeh.ig.assignment.AssignmentToMethodParameterInspection;
/**
* @author Bas Leijdekkers
*/
public class ExtractParameterAsLocalVariableFixTest extends IGQuickFixesTestCase {
@Override
protected BaseInspection[] getInspections() {
final AssignmentToForLoopParameterInspection inspection2 = new AssignmentToForLoopParameterInspection();
inspection2.m_checkForeachParameters = true;
return new BaseInspection[] {
new AssignmentToMethodParameterInspection(),
inspection2,
new AssignmentToCatchBlockParameterInspection(),
new AssignmentToLambdaParameterInspection()
};
}
@Override
protected String[] getEnvironmentClasses() {
return new String[] {"class A {}",
"public interface Function<T, R> {\n" +
" R apply(T t);" +
"}"};
}
public void testLambdaWithExpressionBody() {
doTest(
InspectionGadgetsBundle.message("extract.parameter.as.local.variable.quickfix"),
"class X {" +
" Function<A, A> f = (a) -> a/**/ = null;" +
"}",
"class X {" +
" Function<A, A> f = (a) -> {\n" +
" A a1 = a;\n" +
" return a1 = null;\n" +
"};}"
);
}
public void testSimpleMethod() {
doTest(
InspectionGadgetsBundle.message("extract.parameter.as.local.variable.quickfix"),
"class X {" +
" void m(String s) {" +
" /**/s = \"hello\";" +
" System.out.println(s);" +
" }" +
"}",
"class X {\n" +
" void m(String s) {\n" +
" String s1 = \"hello\";\n" +
" System.out.println(s1);\n" +
" }\n" +
"}"
);
}
public void testParenthesizedExpression() {
doTest(InspectionGadgetsBundle.message("extract.parameter.as.local.variable.quickfix"),
"class X {" +
" void m(int i) {" +
" (/**/i)++;" +
" System.out.println(i);" +
" }" +
"}",
"class X {\n" +
" void m(int i) {\n" +
" int i1 = i;\n" +
" (i1)++;\n" +
" System.out.println(i1);\n" +
" }\n" +
"}");
}
public void testSimpleForeach() {
doTest(
InspectionGadgetsBundle.message("extract.parameter.as.local.variable.quickfix"),
"class X {" +
" void m() {" +
" for (String s : new String[]{\"one\", \"two\", \"three\"})" +
" s/**/ = \"four\";" +
"}}",
"class X {" +
" void m() {\n" +
" for (String s : new String[]{\"one\", \"two\", \"three\"}){\n" +
" String s1 = \"four\";\n" +
" }\n" +
"}}"
);
}
public void testSimpleCatchBlock() {
doTest(
InspectionGadgetsBundle.message("extract.parameter.as.local.variable.quickfix"),
"class X {" +
" void m() {" +
" try (java.io.InputStream in = null) {" +
" } catch (java.io.IOException e) {" +
" e/**/ = null;" +
" System.out.println(e);" +
" }" +
" }" +
"}",
"class X {" +
" void m() {" +
" try (java.io.InputStream in = null) {" +
" } catch (java.io.IOException e) {\n" +
" java.io.IOException e1 = null;\n" +
" System.out.println(e1);\n" +
"}\n" +
"}}"
);
}
}