blob: 11f426a6738836b9bd3dd5bf735f8ee4c516817d [file] [log] [blame]
/*
* Copyright (c) 2005 JetBrains s.r.o. All Rights Reserved.
*/
package com.intellij.codeInspection;
import com.intellij.psi.JavaPsiFacade;
import com.intellij.psi.PsiExpression;
import com.intellij.psi.util.PsiConcatenationUtil;
import com.intellij.testFramework.LightIdeaTestCase;
import java.util.ArrayList;
public class ConcatenationToMessageFormatActionTest extends LightIdeaTestCase {
public void doTest(String expressionText, String messageFormatText, String... foundExpressionTexts) {
final PsiExpression expression = JavaPsiFacade.getElementFactory(getProject()).createExpressionFromText(expressionText, null);
final StringBuilder result = new StringBuilder();
final ArrayList<PsiExpression> args = new ArrayList<PsiExpression>();
PsiConcatenationUtil.buildFormatString(expression, result, args, false);
assertEquals(messageFormatText, result.toString());
assertEquals(foundExpressionTexts.length, args.size());
for (int i = 0; i < foundExpressionTexts.length; i++) {
final String foundExpressionText = foundExpressionTexts[i];
assertEquals(foundExpressionText, args.get(i).getText());
}
}
public void test1() throws Exception{
doTest("\"aaa 'bbb' '\" + ((java.lang.String)ccc) + \"'\"", "aaa ''bbb'' ''{0}''", "ccc");
}
public void test2() throws Exception {
doTest("1 + 2 + 3 + \"{}'\" + '\\n' + ((java.lang.String)ccc)", "{0}'{}'''\\n{1}", "1 + 2 + 3", "ccc");
}
public void test3() throws Exception {
doTest("\"Test{A = \" + 1 + \", B = \" + 2 + \", C = \" + 3 + \"}\"", "Test'{'A = {0}, B = {1}, C = {2}'}'", "1", "2", "3");
}
}