// Path: antlr4ide.core/src/main/java/com/github/jknack/antlr4ide/console/Console.java
// public interface Console {
// 
// 	/**
// 	 * Write an ERROR message into the console.
// 	 *
// 	 * @param message The message. Might includes place holder. See String#format
// 	 * @param args Message arguments.
// 	 */
// 	public void error(String message, Object...args);
// 	
// 	/**
// 	 * Write a WARNING message into the console.
// 	 *
// 	 * @param message The message. Might includes place holder. See String#format
// 	 * @param args Message arguments.
// 	 */
// 	public void warning(String message, Object...args);
// 	
// 	/**
// 	 * Write an INFO message into the console.
// 	 *
// 	 * @param message The message. Might includes place holder. See String#format
// 	 * @param args Message arguments.
// 	 */
// 	public void info(String message, Object...args);
// 	
// 	/**
// 	 * Write a DEBUG message into the console.
// 	 *
// 	 * @param message The message. Might includes place holder. See String#format
// 	 * @param args Message arguments.
// 	 */
// 	public void debug(String message, Object...args);
// 
// 	/**
// 	 * Write a TRACE message into the console.
// 	 *
// 	 * @param message The message. Might includes place holder. See String#format
// 	 * @param args Message arguments.
// 	 */
// 	public void trace(String message, Object...args);
// 	
// }


import static org.easymock.EasyMock.createMock;
import static org.easymock.EasyMock.eq;
import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.isA;
import static org.easymock.EasyMock.replay;
import static org.easymock.EasyMock.verify;
import java.io.File;
import java.io.InputStream;
import java.util.List;
import org.eclipse.core.resources.IContainer;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.QualifiedName;
import org.eclipse.xtext.util.StringInputStream;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.api.easymock.PowerMock;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
import com.github.jknack.antlr4ide.console.Console;
import com.google.common.base.Joiner;
import com.google.common.collect.Lists;
    IPath parserPath = fileFullPath.removeLastSegments(1).append("HelloParser.java");

    List<String> command = Lists.newArrayList("-o", ".", "-listener", "-no-visitor");
    List<String> toolCommand = Lists.newArrayList(
        "java",
        "-cp",
        toolPath.toFile().getAbsolutePath() + File.pathSeparator
            + toolPath.removeLastSegments(1).toFile().getAbsolutePath(),
        ToolOptionsProvider.TOOL,
        fileName);
    toolCommand.addAll(command);

    List<String> dependCommand = Lists.newArrayList(
        "java",
        "-cp",
        toolPath.toFile().getAbsolutePath() + File.pathSeparator
            + toolPath.removeLastSegments(1).toFile().getAbsolutePath(),
        ToolOptionsProvider.TOOL,
        fileName);
    dependCommand.add("-depend");
    dependCommand.addAll(command);

    IFile file = createMock(IFile.class);
    IContainer fileParent = createMock(IContainer.class);
    ToolOptions options = createMock(ToolOptions.class);
    ProcessBuilder toolPb = PowerMock.createMock(ProcessBuilder.class);
    Process toolProcess = createMock(Process.class);
    ProcessBuilder dependPb = PowerMock.createMock(ProcessBuilder.class);
    Process dependProcess = createMock(Process.class);

// Path: antlr4ide.core/src/main/java/com/github/jknack/antlr4ide/console/Console.java
// public interface Console {
// 
// 	/**
// 	 * Write an ERROR message into the console.
// 	 *
// 	 * @param message The message. Might includes place holder. See String#format
// 	 * @param args Message arguments.
// 	 */
// 	public void error(String message, Object...args);
// 	
// 	/**
// 	 * Write a WARNING message into the console.
// 	 *
// 	 * @param message The message. Might includes place holder. See String#format
// 	 * @param args Message arguments.
// 	 */
// 	public void warning(String message, Object...args);
// 	
// 	/**
// 	 * Write an INFO message into the console.
// 	 *
// 	 * @param message The message. Might includes place holder. See String#format
// 	 * @param args Message arguments.
// 	 */
// 	public void info(String message, Object...args);
// 	
// 	/**
// 	 * Write a DEBUG message into the console.
// 	 *
// 	 * @param message The message. Might includes place holder. See String#format
// 	 * @param args Message arguments.
// 	 */
// 	public void debug(String message, Object...args);
// 
// 	/**
// 	 * Write a TRACE message into the console.
// 	 *
// 	 * @param message The message. Might includes place holder. See String#format
// 	 * @param args Message arguments.
// 	 */
// 	public void trace(String message, Object...args);
// 	
// }


// Path: antlr4ide.tests/src/main/java/com/github/jknack/antlr4ide/generator/ToolRunnerTest.java
import static org.easymock.EasyMock.createMock;
import static org.easymock.EasyMock.eq;
import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.isA;
import static org.easymock.EasyMock.replay;
import static org.easymock.EasyMock.verify;
import java.io.File;
import java.io.InputStream;
import java.util.List;
import org.eclipse.core.resources.IContainer;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.QualifiedName;
import org.eclipse.xtext.util.StringInputStream;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.api.easymock.PowerMock;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
import com.github.jknack.antlr4ide.console.Console;
import com.google.common.base.Joiner;
import com.google.common.collect.Lists;

    IPath parserPath = fileFullPath.removeLastSegments(1).append("HelloParser.java");

    List<String> command = Lists.newArrayList("-o", ".", "-listener", "-no-visitor");
    List<String> toolCommand = Lists.newArrayList(
        "java",
        "-cp",
        toolPath.toFile().getAbsolutePath() + File.pathSeparator
            + toolPath.removeLastSegments(1).toFile().getAbsolutePath(),
        ToolOptionsProvider.TOOL,
        fileName);
    toolCommand.addAll(command);

    List<String> dependCommand = Lists.newArrayList(
        "java",
        "-cp",
        toolPath.toFile().getAbsolutePath() + File.pathSeparator
            + toolPath.removeLastSegments(1).toFile().getAbsolutePath(),
        ToolOptionsProvider.TOOL,
        fileName);
    dependCommand.add("-depend");
    dependCommand.addAll(command);

    IFile file = createMock(IFile.class);
    IContainer fileParent = createMock(IContainer.class);
    ToolOptions options = createMock(ToolOptions.class);
    ProcessBuilder toolPb = PowerMock.createMock(ProcessBuilder.class);
    Process toolProcess = createMock(Process.class);
    ProcessBuilder dependPb = PowerMock.createMock(ProcessBuilder.class);
    Process dependProcess = createMock(Process.class);

    Console console = createMock(Console.class);