Adapted applications to make only attachement to the framework

Signed-off-by: Emmanuel Bigeon <emmanuel@bigeon.fr>
This commit is contained in:
2017-04-19 13:14:04 -04:00
parent ab47d6573b
commit 8322454f72
9 changed files with 78 additions and 52 deletions

View File

@@ -54,14 +54,15 @@ import fr.bigeon.gclc.manager.PipedConsoleManager;
@SuppressWarnings("javadoc")
public class CommandTestingApplication implements AutoCloseable {
private final ConsoleTestApplication application;
private final ConsoleApplication application;
private final Thread th;
private final PipedConsoleManager manager;
/** @throws IOException if the streams cannot be build */
public CommandTestingApplication() throws IOException {
manager = new PipedConsoleManager();
application = new ConsoleTestApplication(manager);
application = new ConsoleApplication(manager, "", "");
new ConsoleTestApplication().attach(application);
th = new Thread(new Runnable() {
@SuppressWarnings("synthetic-access")
@@ -93,7 +94,7 @@ public class CommandTestingApplication implements AutoCloseable {
}
/** @return the application */
public ConsoleTestApplication getApplication() {
public ConsoleApplication getApplication() {
return application;
}

View File

@@ -72,7 +72,7 @@ public class ConsoleApplicationTest {
public void test() {
try (PipedConsoleManager manager = new PipedConsoleManager()) {
ConsoleTestApplication app = new ConsoleTestApplication(manager);
ConsoleApplication app = new ConsoleApplication(manager, "", "");
app.exit();
} catch (IOException e) {
fail("System Console Manager failed");
@@ -85,7 +85,7 @@ public class ConsoleApplicationTest {
try (CommandTestingApplication application = new CommandTestingApplication()) {
// remove welcome
assertEquals(application.getApplication().getHeader(),
assertEquals(application.getApplication().header,
application.readNextLine());
// Remove first prompt
assertNull(application.readNextLine());
@@ -133,7 +133,7 @@ public class ConsoleApplicationTest {
assertNull(application.readNextLine());
application.sendCommand("exit");
assertEquals(application.getApplication().getFooter(),
assertEquals(application.getApplication().footer,
application.readNextLine());
assertFalse(application.getApplication().isRunning());
} catch (IOException e1) {

View File

@@ -41,12 +41,11 @@ import fr.bigeon.gclc.command.ExitCommand;
import fr.bigeon.gclc.command.HelpExecutor;
import fr.bigeon.gclc.exception.CommandRunException;
import fr.bigeon.gclc.exception.InvalidCommandName;
import fr.bigeon.gclc.manager.ConsoleManager;
/** A test-purpose application
*
* @author Emmanuel Bigeon */
public class ConsoleTestApplication extends ConsoleApplication {
public class ConsoleTestApplication implements ApplicationAttachement {
/** Exit command */
public static final String EXIT = "exit"; //$NON-NLS-1$
@@ -54,14 +53,14 @@ public class ConsoleTestApplication extends ConsoleApplication {
protected static final long TWO_SECONDS = 2000;
/** @param manager the manager */
@Override
@SuppressWarnings("nls")
public ConsoleTestApplication(final ConsoleManager manager) {
super(manager, "Welcome to the test application. Type help or test.",
"See you");
public void attach(final ConsoleApplication application) {
try {
add(new ExitCommand(EXIT, this));
add(new HelpExecutor("help", manager, this.getRoot()));
add(new Command("test") {
application.add(new ExitCommand(EXIT, application));
application.add(new HelpExecutor("help", application.manager,
application.root));
application.add(new Command("test") {
@Override
public String tip() {
@@ -71,14 +70,14 @@ public class ConsoleTestApplication extends ConsoleApplication {
@Override
public void execute(String... args) throws CommandRunException {
try {
manager.println("Test command ran fine");
application.manager.println("Test command ran fine");
} catch (IOException e) {
throw new CommandRunException("manager closed", e,
this);
}
}
});
add(new Command("long") {
application.add(new Command("long") {
@Override
public String tip() {
@@ -88,9 +87,9 @@ public class ConsoleTestApplication extends ConsoleApplication {
@Override
public void execute(String... args) throws CommandRunException {
try {
manager.println("Waita minute");
application.manager.println("Waita minute");
Thread.sleep(TWO_SECONDS);
manager.println("done!");
application.manager.println("done!");
} catch (IOException e) {
throw new CommandRunException("manager closed", e,
this);
@@ -100,7 +99,7 @@ public class ConsoleTestApplication extends ConsoleApplication {
}
}
});
add(new Command("failingCmd") {
application.add(new Command("failingCmd") {
@Override
public String tip() {

View File

@@ -578,9 +578,16 @@ public class ParametrizedCommandTest {
@Override
public void run() {
try {
assertEquals(str1, test.readNextLine());
assertEquals("value of " + str1 + "? ",
test.readNextLine());
test.type("");
assertEquals(str1, test.readNextLine());
assertEquals(
"value of " + str1 + "? (cannot be empty) ",
test.readNextLine());
test.type("");
assertEquals(
"value of " + str1 + "? (cannot be empty) ",
test.readNextLine());
test.type(str2);
} catch (IOException e) {
assertNull(e);
@@ -598,7 +605,8 @@ public class ParametrizedCommandTest {
@Override
public void run() {
try {
assertEquals(str1, test.readNextLine());
assertEquals("value of " + str1 + "? ",
test.readNextLine());
test.type(str2);
} catch (IOException e) {
assertNull(e);

View File

@@ -47,6 +47,7 @@ import java.nio.charset.Charset;
import org.junit.Test;
import fr.bigeon.gclc.ConsoleApplication;
import fr.bigeon.gclc.ConsoleTestApplication;
import fr.bigeon.gclc.exception.CommandRunException;
import fr.bigeon.gclc.exception.CommandRunExceptionType;
@@ -75,8 +76,9 @@ public class ScriptExecutionTest {
assertNotNull(e2);
return;
}
ConsoleTestApplication app = new ConsoleTestApplication(
test);
ConsoleApplication app = new ConsoleApplication(
test, "", "");
new ConsoleTestApplication().attach(app);
ScriptExecution exec = new ScriptExecution("script", app, "#", //$NON-NLS-1$ //$NON-NLS-2$
Charset.forName("UTF-8"));
try {