diff --git a/src/test/java/ch/unibas/dmi/dbis/cs108/casono/common/tokenizer/StateTest.java b/src/test/java/ch/unibas/dmi/dbis/cs108/casono/common/tokenizer/StateTest.java new file mode 100644 index 0000000..db0b4fe --- /dev/null +++ b/src/test/java/ch/unibas/dmi/dbis/cs108/casono/common/tokenizer/StateTest.java @@ -0,0 +1,60 @@ +package ch.unibas.dmi.dbis.cs108.casono.common.tokenizer; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.junit.jupiter.api.Test; + +class StateTest { + @Test + void testConstructor() { + String input = "hello"; + State state = new State(input); + assertEquals(input, state.input); + assertEquals(0, state.pos); + assertEquals(1, state.line); + assertEquals(1, state.column); + assertTrue(state.tokens.isEmpty()); + } + + @Test + void testCurrent() { + String input = "abc"; + State state = new State(input); + assertEquals('a', state.current()); + state.advance(); + assertEquals('b', state.current()); + } + + @Test + void testPeek() { + String input = "abc"; + State state = new State(input); + assertEquals('b', state.peek()); + state.advance(); + assertEquals('c', state.peek()); + state.advance(); + assertEquals('\0', state.peek()); // End of input + } + + @Test + void testAdvance() { + String input = "abc"; + State state = new State(input); + assertEquals(0, state.pos); + assertEquals(1, state.column); + state.advance(); + assertEquals(1, state.pos); + assertEquals(2, state.column); + } + + @Test + void testIsEof() { + String input = "a"; + State state = new State(input); + assertFalse(state.isEof()); + state.advance(); + assertTrue(state.isEof()); + } +}