/**
* Copyright (C) 2005 - 2012 Eric Van Dewoestine
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.eclim.plugin.jdt.command.src;
import java.io.FileWriter;
import org.apache.commons.lang.StringUtils;
import org.eclim.Eclim;
import org.eclim.plugin.jdt.Jdt;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import static org.junit.Assert.*;
/**
* Test case for FormatCommand.
*
* @author Eric Van Dewoestine
*/
public class FormatCommandTest
{
private static final String TEST_FILE =
"src/org/eclim/test/src/TestFormat.java";
private static String contents;
@BeforeClass
public static void setupClass()
{
contents = Eclim.fileToString(Jdt.TEST_PROJECT, TEST_FILE);
}
@Before
public void setupTest()
throws Exception
{
String path = Eclim.resolveFile(Jdt.TEST_PROJECT, TEST_FILE);
FileWriter writer = new FileWriter(path);
writer.write(contents);
writer.close();
}
@Test
public void execute()
{
assertTrue("Java project doesn't exist.",
Eclim.projectExists(Jdt.TEST_PROJECT));
String contents = Eclim.fileToString(Jdt.TEST_PROJECT, TEST_FILE);
String[] lines = StringUtils.split(contents, '\n');
assertEquals("Initial line format incorrect.",
"System.out.println(\"test formatting\");", lines[6]);
Eclim.execute(new String[]{
"java_format", "-p", Jdt.TEST_PROJECT,
"-f", TEST_FILE,
"-h", "109", "-t", "146", "-e", "utf-8"
});
contents = Eclim.fileToString(Jdt.TEST_PROJECT, TEST_FILE);
lines = StringUtils.split(contents.replace("\t", " "), '\n');
assertEquals("Result line format incorrect.",
" System.out.println(\"test formatting\");", lines[6]);
// range of lines
contents = Eclim.fileToString(Jdt.TEST_PROJECT, TEST_FILE);
lines = StringUtils.split(contents, '\n');
assertEquals("Initial line 1 format incorrect.", "if(true){", lines[7]);
assertEquals("Initial line 2 format incorrect.",
"System.out.println(\"test format if\");", lines[8]);
assertEquals("Initial line 3 format incorrect.", "}", lines[9]);
Eclim.execute(new String[]{
"java_format", "-p", Jdt.TEST_PROJECT,
"-f", TEST_FILE,
"-h", "150", "-t", "200", "-e", "utf-8"
});
contents = Eclim.fileToString(Jdt.TEST_PROJECT, TEST_FILE);
lines = StringUtils.split(contents.replace("\t", " "), '\n');
assertEquals("Result line 1 format incorrect.", " if (true) {", lines[7]);
assertEquals("Result line 2 format incorrect.",
" System.out.println(\"test format if\");", lines[8]);
assertEquals("Result line 3 format incorrect.", " }", lines[9]);
// whole file
assertTrue("Java project doesn't exist.",
Eclim.projectExists(Jdt.TEST_PROJECT));
contents = Eclim.fileToString(Jdt.TEST_PROJECT, TEST_FILE);
lines = StringUtils.split(contents, '\n');
assertEquals("Initial line 1 format incorrect.", "public", lines[2]);
assertEquals("Initial line 2 format incorrect.",
"void main(String[] args)", lines[3]);
assertEquals("Initial line 3 format incorrect.",
"throws Exception", lines[4]);
Eclim.execute(new String[]{
"java_format", "-p", Jdt.TEST_PROJECT,
"-f", TEST_FILE,
"-h", "0", "-t", "211", "-e", "utf-8"
});
contents = Eclim.fileToString(Jdt.TEST_PROJECT, TEST_FILE);
lines = StringUtils.split(contents.replace("\t", " "), '\n');
assertEquals("Result line 1 format incorrect.",
" public void main(String[] args) throws Exception {", lines[2]);
assertEquals("Result line 1 format incorrect.",
" System.out.println(\"test formatting\");", lines[3]);
}
}