package com.redhat.ceylon.tools.version;
import java.io.StringWriter;
import java.util.Arrays;
import org.junit.Assert;
import org.junit.Test;
import com.redhat.ceylon.common.tool.ToolFactory;
import com.redhat.ceylon.common.tool.ToolLoader;
import com.redhat.ceylon.common.tool.ToolModel;
import com.redhat.ceylon.common.tools.CeylonToolLoader;
import com.redhat.ceylon.tools.test.AbstractToolTests;
public class VersionToolTests extends AbstractToolTests {
@Test
public void testAll() throws Exception {
ToolModel<CeylonVersionTool> model = pluginLoader.loadToolModel("version");
CeylonVersionTool tool = pluginFactory.bindArguments(model, getMainTool(), Arrays.asList(
"--src", "test/src/com/redhat/ceylon/tools/version/modules"));
StringWriter out = new StringWriter();
tool.setOut(out);
tool.run();
Assert.assertEquals(
"bar/3.1\n"+
"baz/1.2\n"+
"foo/1.0\n",
normalizeLineEndings(out.toString()));
}
@Test
public void testAllAndDeps() throws Exception {
ToolModel<CeylonVersionTool> model = pluginLoader.loadToolModel("version");
CeylonVersionTool tool = pluginFactory.bindArguments(model, getMainTool(), Arrays.asList(
"--src", "test/src/com/redhat/ceylon/tools/version/modules",
"--dependencies"));
StringWriter out = new StringWriter();
tool.setOut(out);
tool.run();
Assert.assertEquals(
"bar/3.1\n"+
"baz/1.2\n"+
"foo/1.0\n",
normalizeLineEndings(out.toString()));
}
@Test
public void testFoo() throws Exception {
ToolModel<CeylonVersionTool> model = pluginLoader.loadToolModel("version");
CeylonVersionTool tool = pluginFactory.bindArguments(model, getMainTool(), Arrays.asList(
"--src", "test/src/com/redhat/ceylon/tools/version/modules",
"foo"));
StringWriter out = new StringWriter();
tool.setOut(out);
tool.run();
Assert.assertEquals(
"foo/1.0\n",
normalizeLineEndings(out.toString()));
}
@Test
public void testFooAndDeps() throws Exception {
ToolModel<CeylonVersionTool> model = pluginLoader.loadToolModel("version");
CeylonVersionTool tool = pluginFactory.bindArguments(model, getMainTool(), Arrays.asList(
"--src", "test/src/com/redhat/ceylon/tools/version/modules",
"--dependencies",
"foo"));
StringWriter out = new StringWriter();
tool.setOut(out);
tool.run();
Assert.assertEquals(
"foo/1.0\n" +
"bar/3.1 depends on foo/1.0\n" +
"baz/1.2 depends on foo/1.0\n",
normalizeLineEndings(out.toString()));
}
@Test
public void testBarAndDeps() throws Exception {
ToolModel<CeylonVersionTool> model = pluginLoader.loadToolModel("version");
CeylonVersionTool tool = pluginFactory.bindArguments(model, getMainTool(), Arrays.asList(
"--src", "test/src/com/redhat/ceylon/tools/version/modules",
"--dependencies",
"bar"));
StringWriter out = new StringWriter();
tool.setOut(out);
tool.run();
Assert.assertEquals(
"bar/3.1\n" +
"baz/1.2 depends on bar/3.1\n",
normalizeLineEndings(out.toString()));
}
@Test
public void testAllCwd() throws Exception {
ToolModel<CeylonVersionTool> model = pluginLoader.loadToolModel("version");
CeylonVersionTool tool = pluginFactory.bindArguments(model, getMainTool(), Arrays.asList(
"--cwd", "test",
"--src", "src/com/redhat/ceylon/tools/version/modules"));
StringWriter out = new StringWriter();
tool.setOut(out);
tool.run();
Assert.assertEquals(
"bar/3.1\n"+
"baz/1.2\n"+
"foo/1.0\n",
normalizeLineEndings(out.toString()));
}
}