Added junit dependency, added input contract

Signed-off-by: Emmanuel Bigeon <emmanuel@bigeon.fr>
This commit is contained in:
Emmanuel Bigeon 2018-11-30 12:18:16 -05:00
parent 9c64c708eb
commit 143eb7036a
2 changed files with 42 additions and 0 deletions

View File

@ -51,6 +51,11 @@
<artifactId>gclc</artifactId> <artifactId>gclc</artifactId>
<version>2.0.12</version> <version>2.0.12</version>
</dependency> </dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies> </dependencies>
<reporting> <reporting>
<plugins> <plugins>

View File

@ -0,0 +1,37 @@
/**
*
*/
package net.bigeon.gclc.test;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import java.io.IOException;
import java.util.function.Supplier;
import net.bigeon.gclc.manager.ConsoleInput;
/**
* @author Emmanuel Bigeon
*
*/
public final class InputContract {
public void testInputContract(final Supplier<ConsoleInput> inputs)
throws IOException {
// Test close contract
final ConsoleInput input = inputs.get();
assertFalse("An input should not initially be closed", input.isClosed());
input.close();
assertTrue("An input should close", input.isClosed());
input.close();
assertTrue("A closed input should stay closed", input.isClosed());
try {
input.prompt();
fail("Closed input prompting should fail");
} catch (final IOException e) {
// ok
}
}
}