Index: /trunk/JavaHelperLibTest/src/de/ugoe/cs/util/console/CommandExecuterTest.java
===================================================================
--- /trunk/JavaHelperLibTest/src/de/ugoe/cs/util/console/CommandExecuterTest.java	(revision 319)
+++ /trunk/JavaHelperLibTest/src/de/ugoe/cs/util/console/CommandExecuterTest.java	(revision 319)
@@ -0,0 +1,116 @@
+package de.ugoe.cs.util.console;
+
+import org.junit.*;
+
+import de.ugoe.cs.util.console.mock.MockOutputListener;
+import static org.junit.Assert.*;
+
+/**
+ * The class <code>CommandExecuterTest</code> contains tests for the class
+ * <code>{@link CommandExecuter}</code>.
+ * 
+ * @author Steffen Herbold
+ * @version 1.0
+ */
+public class CommandExecuterTest {
+
+	@Test(expected=java.security.InvalidParameterException.class)
+	public void testAddCommandPackage_1()
+		throws Exception {
+		CommandExecuter fixture = CommandExecuter.getInstance();
+
+		fixture.addCommandPackage("");
+	}
+
+	@Test(expected=java.security.InvalidParameterException.class)
+	public void testAddCommandPackage_fixtureInstance_2()
+		throws Exception {
+		CommandExecuter fixture = CommandExecuter.getInstance();
+		
+		fixture.addCommandPackage(null);
+	}
+
+	@Test
+	public void testExec_1()
+		throws Exception {
+		CommandExecuter fixture = CommandExecuter.getInstance();
+		MockOutputListener mockListener = new MockOutputListener();
+		Console.getInstance().registerOutputListener(mockListener);
+		fixture.addCommandPackage("de.ugoe.cs.util.console.mock.commands");
+		String command = "mockCommand";
+		String expected = "mock command: run" + System.getProperty("line.separator");
+
+		fixture.exec(command);
+
+		assertEquals(expected, mockListener.getLastOutput());
+	}
+	
+	@Test
+	public void testExec_2()
+		throws Exception {
+		CommandExecuter fixture = CommandExecuter.getInstance();
+		MockOutputListener mockListener = new MockOutputListener();
+		Console.getInstance().registerOutputListener(mockListener);
+		fixture.addCommandPackage("de.ugoe.cs.util.console.mock.commands");
+		String command = "mockCommand param1";
+		String expected = "mock command: help" + System.getProperty("line.separator");
+
+		fixture.exec(command);
+
+		assertEquals(expected, mockListener.getLastOutput());
+	}
+	
+	@Test(expected = java.lang.RuntimeException.class)
+	public void testExec_3()
+		throws Exception {
+		CommandExecuter fixture = CommandExecuter.getInstance();
+		MockOutputListener mockListener = new MockOutputListener();
+		Console.getInstance().registerOutputListener(mockListener);
+		fixture.addCommandPackage("de.ugoe.cs.util.console.mock.commands");
+		String command = "mockCommand param1 param2";
+
+		fixture.exec(command);
+	}
+	
+	@Test
+	public void testExec_4()
+		throws Exception {
+		CommandExecuter fixture = CommandExecuter.getInstance();
+		MockOutputListener mockListener = new MockOutputListener();
+		Console.getInstance().registerOutputListener(mockListener);
+		fixture.addCommandPackage("de.ugoe.cs.util.console.mock.commands");
+		String command = "mockCommandddd";
+		String expected = "Unknown command" + System.getProperty("line.separator");
+		
+		fixture.exec(command);
+		
+		assertEquals(expected, mockListener.getLastOutput());
+	}
+
+	@Test
+	public void testExec_5()
+		throws Exception {
+		CommandExecuter fixture = CommandExecuter.getInstance();
+		MockOutputListener mockListener = new MockOutputListener();
+		Console.getInstance().registerOutputListener(mockListener);
+		fixture.addCommandPackage("de.ugoe.cs.util.console.mock.commands");
+		String command = "mockCommanD";
+		String expected = "Did you mean mockCommand?" + System.getProperty("line.separator");
+		
+		fixture.exec(command);
+		
+		assertEquals(expected, mockListener.getSecondLastOutput());
+	}
+
+	@Test
+	public void testGetInstance_1()
+		throws Exception {
+		CommandExecuter result = CommandExecuter.getInstance();
+
+		assertNotNull(result);
+	}
+
+	public static void main(String[] args) {
+		new org.junit.runner.JUnitCore().run(CommandExecuterTest.class);
+	}
+}
Index: /trunk/JavaHelperLibTest/src/de/ugoe/cs/util/console/ConsoleTest.java
===================================================================
--- /trunk/JavaHelperLibTest/src/de/ugoe/cs/util/console/ConsoleTest.java	(revision 318)
+++ /trunk/JavaHelperLibTest/src/de/ugoe/cs/util/console/ConsoleTest.java	(revision 319)
@@ -2,9 +2,10 @@
 
 import org.junit.*;
-import de.ugoe.cs.util.console.listener.ITraceListener;
-import de.ugoe.cs.util.console.listener.IOutputListener;
-import de.ugoe.cs.util.console.listener.IExceptionListener;
-import de.ugoe.cs.util.console.listener.IErrorListener;
-import de.ugoe.cs.util.console.listener.ICommandListener;
+import de.ugoe.cs.util.console.mock.MockCommandListener;
+import de.ugoe.cs.util.console.mock.MockErrorListener;
+import de.ugoe.cs.util.console.mock.MockExceptionListener;
+import de.ugoe.cs.util.console.mock.MockObserver;
+import de.ugoe.cs.util.console.mock.MockOutputListener;
+import de.ugoe.cs.util.console.mock.MockTraceListener;
 import static org.junit.Assert.*;
 
@@ -19,83 +20,4 @@
 	private static final String ENDLINE = System.getProperty("line.separator");
 	
-	private class MockCommandListener implements ICommandListener {
-		private String lastCommand = null;
-
-		public String getLastCommand() {
-			return lastCommand;
-		}
-
-		@Override
-		public void commandNotification(String command) {
-			lastCommand = command;
-		}
-	}
-	
-	private class MockErrorListener implements IErrorListener {
-		private String lastError = null;
-		public String getLastError() {
-			return lastError;
-		}
-		@Override
-		public void errorMsg(String errMessage) {
-			lastError = errMessage;
-		}
-	}
-	
-	private class MockExceptionListener implements IExceptionListener {
-		
-		private Exception lastException = null;
-		public Exception getLastException() {
-			return lastException;
-		}
-		
-		@Override
-		public void logException(Exception e) {
-			lastException = e;
-		}
-	}
-	
-	private class MockOutputListener implements IOutputListener {
-		private String lastOutput = null;
-		public String getLastOutput() {
-			return lastOutput;
-		}
-		@Override
-		public void outputMsg(String newMessage) {
-			lastOutput = newMessage;	
-		}
-	}
-	
-	private class MockTraceListener implements ITraceListener {
-		private String lastTrace = null;
-		public String getLastTrace() {
-			return lastTrace;
-		}
-		@Override
-		public void traceMsg(String traceMessage) {
-			lastTrace = traceMessage;
-		}
-	}
-	
-	@SuppressWarnings("deprecation")
-	private class MockObserver implements ConsoleObserver {
-		
-		@Override
-		public void commandNotification(String command) {
-		}
-		@Override
-		public void errorMsg(String errMessage) {
-		}
-		@Override
-		public void logException(Exception e) {
-		}
-		@Override
-		public void outputMsg(String newMessage) {	
-		}
-		@Override
-		public void traceMsg(String traceMessage) {
-		}
-	}
-	
 	@Test
 	public void testCommandNotification_1()
Index: /trunk/JavaHelperLibTest/src/de/ugoe/cs/util/console/TestAll.java
===================================================================
--- /trunk/JavaHelperLibTest/src/de/ugoe/cs/util/console/TestAll.java	(revision 318)
+++ /trunk/JavaHelperLibTest/src/de/ugoe/cs/util/console/TestAll.java	(revision 319)
@@ -19,5 +19,6 @@
 	FileOutputListenerTest.class,
 	TextConsoleTest.class,
-	ConsoleTest.class
+	ConsoleTest.class,
+	CommandExecuterTest.class
 })
 public class TestAll {
Index: /trunk/JavaHelperLibTest/src/de/ugoe/cs/util/console/mock/MockCommandListener.java
===================================================================
--- /trunk/JavaHelperLibTest/src/de/ugoe/cs/util/console/mock/MockCommandListener.java	(revision 319)
+++ /trunk/JavaHelperLibTest/src/de/ugoe/cs/util/console/mock/MockCommandListener.java	(revision 319)
@@ -0,0 +1,16 @@
+package de.ugoe.cs.util.console.mock;
+
+import de.ugoe.cs.util.console.listener.ICommandListener;
+
+public class MockCommandListener implements ICommandListener {
+	private String lastCommand = null;
+
+	public String getLastCommand() {
+		return lastCommand;
+	}
+
+	@Override
+	public void commandNotification(String command) {
+		lastCommand = command;
+	}
+}
Index: /trunk/JavaHelperLibTest/src/de/ugoe/cs/util/console/mock/MockErrorListener.java
===================================================================
--- /trunk/JavaHelperLibTest/src/de/ugoe/cs/util/console/mock/MockErrorListener.java	(revision 319)
+++ /trunk/JavaHelperLibTest/src/de/ugoe/cs/util/console/mock/MockErrorListener.java	(revision 319)
@@ -0,0 +1,14 @@
+package de.ugoe.cs.util.console.mock;
+
+import de.ugoe.cs.util.console.listener.IErrorListener;
+
+public class MockErrorListener implements IErrorListener {
+	private String lastError = null;
+	public String getLastError() {
+		return lastError;
+	}
+	@Override
+	public void errorMsg(String errMessage) {
+		lastError = errMessage;
+	}
+}
Index: /trunk/JavaHelperLibTest/src/de/ugoe/cs/util/console/mock/MockExceptionListener.java
===================================================================
--- /trunk/JavaHelperLibTest/src/de/ugoe/cs/util/console/mock/MockExceptionListener.java	(revision 319)
+++ /trunk/JavaHelperLibTest/src/de/ugoe/cs/util/console/mock/MockExceptionListener.java	(revision 319)
@@ -0,0 +1,16 @@
+package de.ugoe.cs.util.console.mock;
+
+import de.ugoe.cs.util.console.listener.IExceptionListener;
+
+public class MockExceptionListener implements IExceptionListener {
+	
+	private Exception lastException = null;
+	public Exception getLastException() {
+		return lastException;
+	}
+	
+	@Override
+	public void logException(Exception e) {
+		lastException = e;
+	}
+}
Index: /trunk/JavaHelperLibTest/src/de/ugoe/cs/util/console/mock/MockObserver.java
===================================================================
--- /trunk/JavaHelperLibTest/src/de/ugoe/cs/util/console/mock/MockObserver.java	(revision 319)
+++ /trunk/JavaHelperLibTest/src/de/ugoe/cs/util/console/mock/MockObserver.java	(revision 319)
@@ -0,0 +1,23 @@
+package de.ugoe.cs.util.console.mock;
+
+import de.ugoe.cs.util.console.ConsoleObserver;
+
+@SuppressWarnings("deprecation") 
+public class MockObserver implements ConsoleObserver {
+	
+	@Override
+	public void commandNotification(String command) {
+	}
+	@Override
+	public void errorMsg(String errMessage) {
+	}
+	@Override
+	public void logException(Exception e) {
+	}
+	@Override
+	public void outputMsg(String newMessage) {	
+	}
+	@Override
+	public void traceMsg(String traceMessage) {
+	}
+}
Index: /trunk/JavaHelperLibTest/src/de/ugoe/cs/util/console/mock/MockOutputListener.java
===================================================================
--- /trunk/JavaHelperLibTest/src/de/ugoe/cs/util/console/mock/MockOutputListener.java	(revision 319)
+++ /trunk/JavaHelperLibTest/src/de/ugoe/cs/util/console/mock/MockOutputListener.java	(revision 319)
@@ -0,0 +1,22 @@
+package de.ugoe.cs.util.console.mock;
+
+import de.ugoe.cs.util.console.listener.IOutputListener;
+
+public class MockOutputListener implements IOutputListener {
+	private String secondLastOutput = null;
+	private String lastOutput = null;
+	public String getLastOutput() {
+		return lastOutput;
+	}
+	public String getSecondLastOutput() {
+		return secondLastOutput;
+	}
+	@Override
+	public void outputMsg(String newMessage) {
+		if( lastOutput!=null ) {
+			secondLastOutput=lastOutput;
+		}
+		lastOutput = newMessage;
+		
+	}
+}
Index: /trunk/JavaHelperLibTest/src/de/ugoe/cs/util/console/mock/MockTraceListener.java
===================================================================
--- /trunk/JavaHelperLibTest/src/de/ugoe/cs/util/console/mock/MockTraceListener.java	(revision 319)
+++ /trunk/JavaHelperLibTest/src/de/ugoe/cs/util/console/mock/MockTraceListener.java	(revision 319)
@@ -0,0 +1,14 @@
+package de.ugoe.cs.util.console.mock;
+
+import de.ugoe.cs.util.console.listener.ITraceListener;
+
+public class MockTraceListener implements ITraceListener {
+	private String lastTrace = null;
+	public String getLastTrace() {
+		return lastTrace;
+	}
+	@Override
+	public void traceMsg(String traceMessage) {
+		lastTrace = traceMessage;
+	}
+}
Index: /trunk/JavaHelperLibTest/src/de/ugoe/cs/util/console/mock/commands/CMDmockCommand.java
===================================================================
--- /trunk/JavaHelperLibTest/src/de/ugoe/cs/util/console/mock/commands/CMDmockCommand.java	(revision 319)
+++ /trunk/JavaHelperLibTest/src/de/ugoe/cs/util/console/mock/commands/CMDmockCommand.java	(revision 319)
@@ -0,0 +1,29 @@
+package de.ugoe.cs.util.console.mock.commands;
+
+import java.security.InvalidParameterException;
+import java.util.List;
+
+import de.ugoe.cs.util.console.Command;
+import de.ugoe.cs.util.console.Console;
+
+public class CMDmockCommand implements Command {
+
+	@Override
+	public void run(List<Object> parameters) {
+		switch (parameters.size()) {
+		case 0:
+			Console.println("mock command: run");
+			break;
+		case 1:
+			throw new InvalidParameterException();
+		default:
+			throw new RuntimeException();
+		}
+	}
+
+	@Override
+	public void help() {
+		Console.println("mock command: help");
+	}
+
+}
