Convert a few terminal tests to kotlin

This commit is contained in:
Mike Cifelli 2018-09-16 09:18:22 -04:00
parent 1901b7f251
commit d902328a56
4 changed files with 170 additions and 178 deletions

View File

@ -1,39 +0,0 @@
package terminal;
import org.junit.Before;
import org.junit.Test;
import stream.LispIOException;
import java.io.IOException;
import java.io.PipedInputStream;
import java.io.PipedOutputStream;
public class TerminalConfigurationTest {
TerminalConfiguration configuration;
private PipedOutputStream createIOExceptionThrowingPipedOutputStream() {
return new PipedOutputStream() {
@Override
public void connect(PipedInputStream inputStream) throws IOException {
throw new IOException();
}
};
}
@Before
public void setUp() {
configuration = new TerminalConfiguration();
}
@Test(expected = LispIOException.class)
public void setInputPairThrowsUncheckedException() {
configuration.setInputPair(createIOExceptionThrowingPipedOutputStream(), new PipedInputStream());
}
@Test(expected = LispIOException.class)
public void setOutputPairThrowsUncheckedException() {
configuration.setOutputPair(createIOExceptionThrowingPipedOutputStream(), new PipedInputStream());
}
}

View File

@ -0,0 +1,37 @@
package terminal
import org.junit.jupiter.api.Assertions.assertThrows
import org.junit.jupiter.api.BeforeEach
import org.junit.jupiter.api.Test
import stream.LispIOException
import java.io.IOException
import java.io.PipedInputStream
import java.io.PipedOutputStream
class TerminalConfigurationTest {
private lateinit var configuration: TerminalConfiguration
private fun createIOExceptionThrowingPipedOutputStream() = object : PipedOutputStream() {
override fun connect(inputStream: PipedInputStream) = throw IOException()
}
@BeforeEach
fun setUp() {
configuration = TerminalConfiguration()
}
@Test
fun setInputPairThrowsUncheckedException() {
assertThrows(LispIOException::class.java) {
configuration.setInputPair(createIOExceptionThrowingPipedOutputStream(), PipedInputStream())
}
}
@Test
fun setOutputPairThrowsUncheckedException() {
assertThrows(LispIOException::class.java) {
configuration.setOutputPair(createIOExceptionThrowingPipedOutputStream(), PipedInputStream())
}
}
}

View File

@ -1,139 +0,0 @@
package terminal;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertThat;
public class TerminalHistoryTest {
private TerminalHistory history;
private void assertAtBeginning() {
assertThat(history.isBeginning(), is(true));
}
private void assertAtEnd() {
assertThat(history.isEnd(), is(true));
}
private void assertPrevious(String expected) {
assertThat(history.getPreviousLine(), is(expected));
}
private void assertNext(String expected) {
assertThat(history.getNextLine(), is(expected));
}
@Before
public void setUp() {
history = new TerminalHistory();
}
@After
public void tearDown() {}
@Test
public void historyStartsWithNoLines() {
assertAtBeginning();
assertAtEnd();
}
@Test
public void addOneLineToHistory() {
history.addLine("test line");
assertPrevious("test line");
assertAtBeginning();
}
@Test
public void currentLineIsEmpty() {
history.addLine("one");
history.getPreviousLine();
assertNext("");
}
@Test
public void moveBackwards() {
history.addLine("one");
history.addLine("two");
assertPrevious("two");
assertPrevious("one");
assertAtBeginning();
}
@Test
public void moveForwards() {
history.addLine("one");
history.addLine("two");
history.getPreviousLine();
history.getPreviousLine();
assertNext("two");
assertNext("");
assertAtEnd();
}
@Test
public void addedLineGoesAtEndOfHistory() {
history.addLine("one");
history.addLine("two");
history.getPreviousLine();
history.getPreviousLine();
history.addLine("three");
assertPrevious("three");
assertPrevious("two");
assertPrevious("one");
assertAtBeginning();
}
@Test
public void currentLineIsUpdated() {
history.addLine("one");
history.updateCurrentLine("purple");
history.getPreviousLine();
assertNext("purple");
}
@Test
public void previousLineIsUpdated() {
history.addLine("one");
history.addLine("two");
history.getPreviousLine();
history.updateCurrentLine("purple");
history.getPreviousLine();
assertNext("purple");
}
@Test
public void goingPastFirstLine_KeepsReturningFirstLine() {
history.addLine("one");
history.addLine("two");
history.getPreviousLine();
history.getPreviousLine();
history.getPreviousLine();
history.getPreviousLine();
history.getPreviousLine();
assertPrevious("one");
}
@Test
public void goingPastLastLine_KeepsReturningLastLine() {
history.updateCurrentLine("current");
history.getNextLine();
history.getNextLine();
history.getNextLine();
history.getNextLine();
assertNext("current");
}
}

View File

@ -0,0 +1,133 @@
package terminal
import org.assertj.core.api.Assertions.assertThat
import org.junit.jupiter.api.BeforeEach
import org.junit.jupiter.api.Test
class TerminalHistoryTest {
private lateinit var history: TerminalHistory
private fun assertAtBeginning() {
assertThat(history.isBeginning()).isTrue()
}
private fun assertAtEnd() {
assertThat(history.isEnd()).isTrue()
}
private fun assertPrevious(expected: String) {
assertThat(history.getPreviousLine()).isEqualTo(expected)
}
private fun assertNext(expected: String) {
assertThat(history.getNextLine()).isEqualTo(expected)
}
@BeforeEach
fun setUp() {
history = TerminalHistory()
}
@Test
fun `history starts with no lines`() {
assertAtBeginning()
assertAtEnd()
}
@Test
fun `add one line to the history`() {
history.addLine("test line")
assertPrevious("test line")
assertAtBeginning()
}
@Test
fun `current line is empty`() {
history.addLine("one")
history.getPreviousLine()
assertNext("")
}
@Test
fun `move backwards`() {
history.addLine("one")
history.addLine("two")
assertPrevious("two")
assertPrevious("one")
assertAtBeginning()
}
@Test
fun `move forwards`() {
history.addLine("one")
history.addLine("two")
history.getPreviousLine()
history.getPreviousLine()
assertNext("two")
assertNext("")
assertAtEnd()
}
@Test
fun `added line goes to the end of the history`() {
history.addLine("one")
history.addLine("two")
history.getPreviousLine()
history.getPreviousLine()
history.addLine("three")
assertPrevious("three")
assertPrevious("two")
assertPrevious("one")
assertAtBeginning()
}
@Test
fun `current line is updated`() {
history.addLine("one")
history.updateCurrentLine("purple")
history.getPreviousLine()
assertNext("purple")
}
@Test
fun `previous line is updated`() {
history.addLine("one")
history.addLine("two")
history.getPreviousLine()
history.updateCurrentLine("purple")
history.getPreviousLine()
assertNext("purple")
}
@Test
fun `going past the first line keeps returning the first line`() {
history.addLine("one")
history.addLine("two")
history.getPreviousLine()
history.getPreviousLine()
history.getPreviousLine()
history.getPreviousLine()
history.getPreviousLine()
assertPrevious("one")
}
@Test
fun `going past the last line keeps returning the last line`() {
history.updateCurrentLine("current")
history.getNextLine()
history.getNextLine()
history.getNextLine()
history.getNextLine()
assertNext("current")
}
}