Convert a few terminal tests to kotlin
This commit is contained in:
		
							parent
							
								
									1901b7f251
								
							
						
					
					
						commit
						d902328a56
					
				@ -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());
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										37
									
								
								src/test/kotlin/terminal/TerminalConfigurationTest.kt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								src/test/kotlin/terminal/TerminalConfigurationTest.kt
									
									
									
									
									
										Normal 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())
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -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");
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										133
									
								
								src/test/kotlin/terminal/TerminalHistoryTest.kt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										133
									
								
								src/test/kotlin/terminal/TerminalHistoryTest.kt
									
									
									
									
									
										Normal 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")
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user