upgrade test to avoid memory leaks

This commit is contained in:
Emmanuel Bigeon 2016-12-06 14:23:31 -05:00
parent ae55ebea29
commit 25904c907d
3 changed files with 33 additions and 18 deletions

View File

@ -35,7 +35,7 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>gclc</artifactId> <artifactId>gclc</artifactId>
<version>1.3.5-SNAPSHOT</version> <version>1.3.6-SNAPSHOT</version>
<packaging>jar</packaging> <packaging>jar</packaging>
<url>http://www.bigeon.fr/emmanuel</url> <url>http://www.bigeon.fr/emmanuel</url>
<properties> <properties>
@ -83,6 +83,6 @@
<scm> <scm>
<developerConnection>scm:git:gogs@git.code.bigeon.net:emmanuel/gclc.git</developerConnection> <developerConnection>scm:git:gogs@git.code.bigeon.net:emmanuel/gclc.git</developerConnection>
<tag>HEAD</tag> <tag>gclc-1.3.5</tag>
</scm> </scm>
</project> </project>

View File

@ -43,6 +43,7 @@ import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull; import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import java.io.IOException; import java.io.IOException;
@ -55,7 +56,6 @@ import fr.bigeon.gclc.exception.CommandRunExceptionType;
import fr.bigeon.gclc.exception.InvalidCommandName; import fr.bigeon.gclc.exception.InvalidCommandName;
import fr.bigeon.gclc.i18n.Messages; import fr.bigeon.gclc.i18n.Messages;
import fr.bigeon.gclc.manager.ConsoleManager; import fr.bigeon.gclc.manager.ConsoleManager;
import fr.bigeon.gclc.manager.SystemConsoleManager;
import fr.bigeon.gclc.manager.PipedConsoleManager; import fr.bigeon.gclc.manager.PipedConsoleManager;
/** Test class for ConsoleApplication /** Test class for ConsoleApplication
@ -70,9 +70,14 @@ public class ConsoleApplicationTest {
/** Test the base of a console application */ /** Test the base of a console application */
@Test @Test
public void test() { public void test() {
ConsoleTestApplication app = new ConsoleTestApplication(
new SystemConsoleManager()); try (PipedConsoleManager manager = new PipedConsoleManager()) {
app.exit(); ConsoleTestApplication app = new ConsoleTestApplication(manager);
app.exit();
} catch (IOException e) {
fail("System Console Manager failed");
}
} }
@Test @Test
@ -156,7 +161,10 @@ public class ConsoleApplicationTest {
manager.type("exit"); manager.type("exit");
th.join(); th.join();
} catch (IOException | InvalidCommandName | InterruptedException e) { } catch (IOException | InvalidCommandName |
InterruptedException e) {
assertNull(e); assertNull(e);
} }

View File

@ -65,13 +65,12 @@ public class SystemConsoleManagerTest {
@Test @Test
public final void testPrompt() { public final void testPrompt() {
try { final String test = "test";
PipedOutputStream outStream = new PipedOutputStream(); try (PipedOutputStream outStream = new PipedOutputStream();
InputStream in = new PipedInputStream(outStream); InputStream in = new PipedInputStream(outStream);
final PrintStream out = new PrintStream(outStream); final PrintStream out = new PrintStream(outStream);
final String test = "test"; SystemConsoleManager manager = new SystemConsoleManager(System.out,
SystemConsoleManager manager = new SystemConsoleManager(System.out, in, Charset.forName("UTF-8"))) {
in, Charset.forName("UTF-8"));
Thread th = new Thread(new Runnable() { Thread th = new Thread(new Runnable() {
@ -95,10 +94,18 @@ public class SystemConsoleManagerTest {
* {@link fr.bigeon.gclc.manager.SystemConsoleManager#setPrompt(java.lang.String)}. */ * {@link fr.bigeon.gclc.manager.SystemConsoleManager#setPrompt(java.lang.String)}. */
@Test @Test
public final void testSetPrompt() { public final void testSetPrompt() {
SystemConsoleManager manager = new SystemConsoleManager(); try (PipedOutputStream outStream = new PipedOutputStream();
String prt = "++"; InputStream in = new PipedInputStream(outStream);
manager.setPrompt(prt); final PrintStream out = new PrintStream(outStream);
assertEquals(prt, manager.getPrompt()); SystemConsoleManager manager = new SystemConsoleManager(System.out,
in, Charset.forName("UTF-8"))) {
String prt = "++";
manager.setPrompt(prt);
assertEquals(prt, manager.getPrompt());
} catch (IOException e) {
assertNull(e);
}
} }
/** Test method for /** Test method for