From 740fb7eaa5e30456aebdf4cba05021a0c4acecdc Mon Sep 17 00:00:00 2001 From: Nils Bohland Date: Wed, 17 Apr 2024 07:30:06 +0200 Subject: [PATCH] implemented reader tests --- .../lexer/LexerTest.java | 20 ------------------ .../reader/ReaderTest.java | 21 +++++++++++++++---- 2 files changed, 17 insertions(+), 24 deletions(-) diff --git a/src/test/java/com/auberer/compilerdesignlectureproject/lexer/LexerTest.java b/src/test/java/com/auberer/compilerdesignlectureproject/lexer/LexerTest.java index 42150d8..89d41bd 100644 --- a/src/test/java/com/auberer/compilerdesignlectureproject/lexer/LexerTest.java +++ b/src/test/java/com/auberer/compilerdesignlectureproject/lexer/LexerTest.java @@ -10,28 +10,10 @@ public class LexerTest { - private final Path filePath = Path.of("lexer-test.txt"); - private void init() { - try { - Files.deleteIfExists(filePath); - Files.createFile(filePath); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - - private void cleanUp() { - try { - Files.delete(filePath); - } catch (IOException e) { - throw new RuntimeException(e); - } - } @Test public void testLexer() throws Exception { - init(); Reader reader = new Reader(new File("src/test/resources/test.txt")); Lexer lexer = new Lexer(reader); @@ -59,7 +41,5 @@ public void testLexer() throws Exception { lexer.expect(TokenType.TOK_EOF); assert lexer.isEOF(); - - cleanUp(); } } \ No newline at end of file diff --git a/src/test/java/com/auberer/compilerdesignlectureproject/reader/ReaderTest.java b/src/test/java/com/auberer/compilerdesignlectureproject/reader/ReaderTest.java index e6f167e..da9dc07 100644 --- a/src/test/java/com/auberer/compilerdesignlectureproject/reader/ReaderTest.java +++ b/src/test/java/com/auberer/compilerdesignlectureproject/reader/ReaderTest.java @@ -1,5 +1,6 @@ package com.auberer.compilerdesignlectureproject.reader; +import lombok.Locked; import org.junit.Test; import java.io.File; @@ -12,31 +13,43 @@ public class ReaderTest { @Test public void testGetChar() throws FileNotFoundException { Reader reader = new Reader(testFile); - reader.getChar(); + reader.advance(); + assert reader.getChar() == 'i'; + } @Test public void testGetCodeLoc() throws FileNotFoundException { Reader reader = new Reader(testFile); - reader.getCodeLoc(); + assertCodeLocCorrect(reader, 1L, 1L); } @Test public void testAdvance() throws FileNotFoundException { Reader reader = new Reader(testFile); reader.advance(); + assertCodeLocCorrect(reader, 1L ,2L); + reader.advance(); + assertCodeLocCorrect(reader, 1L, 3L); } @Test public void testExpect() throws FileNotFoundException { Reader reader = new Reader(testFile); - reader.expect('a'); + reader.advance(); + reader.expect('i'); } @Test public void testIsEOF() throws FileNotFoundException { Reader reader = new Reader(testFile); - reader.isEOF(); + do{reader.advance();} + while (reader.getChar() != (char) -1); + assert reader.isEOF(); + } + + private static void assertCodeLocCorrect(Reader reader, Long line, Long column){ + assert reader.getCodeLoc().toString().equals(new CodeLoc(line, column).toString()); } }