From 8f84c00978dc05007873a9fe1de6a18511dc3cf8 Mon Sep 17 00:00:00 2001 From: Jan Tuomi Date: Tue, 28 Jun 2016 21:09:43 +0300 Subject: Restructure project for use with maven --- src/test/com/jantuomi/borker/MainTest.java | 52 ++++++++++++++++++++++ .../core/CommandLineArgumentContainerTest.java | 24 ++++++++++ .../jantuomi/borker/core/parser/ParserTest.java | 30 +++++++++++++ .../borker/core/tokenizer/TokenizerTest.java | 26 +++++++++++ .../com/jantuomi/borker/resources/funcdef.bork | 8 ++++ .../com/jantuomi/borker/resources/program.bork | 13 ++++++ src/test/com/jantuomi/borker/resources/test.file | 4 ++ 7 files changed, 157 insertions(+) create mode 100644 src/test/com/jantuomi/borker/MainTest.java create mode 100644 src/test/com/jantuomi/borker/core/CommandLineArgumentContainerTest.java create mode 100644 src/test/com/jantuomi/borker/core/parser/ParserTest.java create mode 100644 src/test/com/jantuomi/borker/core/tokenizer/TokenizerTest.java create mode 100644 src/test/com/jantuomi/borker/resources/funcdef.bork create mode 100644 src/test/com/jantuomi/borker/resources/program.bork create mode 100644 src/test/com/jantuomi/borker/resources/test.file (limited to 'src/test') diff --git a/src/test/com/jantuomi/borker/MainTest.java b/src/test/com/jantuomi/borker/MainTest.java new file mode 100644 index 0000000..e0342a4 --- /dev/null +++ b/src/test/com/jantuomi/borker/MainTest.java @@ -0,0 +1,52 @@ +package com.jantuomi.borker; + +import com.jantuomi.borker.exception.InterpreterException; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +/** + * Created by jan on 10.6.2016. + */ +public class MainTest { + + private final ByteArrayOutputStream out = new ByteArrayOutputStream(); + private PrintStream originalOut; + + @Before + public void setupStreams() { + originalOut = System.out; + System.setOut(new PrintStream(out)); + } + + @After + public void cleanStreams() { + System.setOut(originalOut); + } + + @Test + public void testParseArguments1() { + String[] notAnArgument = {"--not-an-argument"}; + assertFalse(Main.parseArguments(notAnArgument)); + } + + @Test + public void testParseArguments2() { + String[] fileTestArgument = {"-f", "test.file"}; + assertTrue(Main.parseArguments(fileTestArgument)); + } + + @Test + public void testWholeProcedure() throws InterpreterException { + String input = "- + 2 5 1"; + + Main.run(input); + assertTrue(out.toString().contains("6")); + } +} \ No newline at end of file diff --git a/src/test/com/jantuomi/borker/core/CommandLineArgumentContainerTest.java b/src/test/com/jantuomi/borker/core/CommandLineArgumentContainerTest.java new file mode 100644 index 0000000..0bc4c04 --- /dev/null +++ b/src/test/com/jantuomi/borker/core/CommandLineArgumentContainerTest.java @@ -0,0 +1,24 @@ +package com.jantuomi.borker.core; + +import com.jantuomi.borker.utils.Utilities; +import org.junit.Test; + +import java.io.File; + +import static org.junit.Assert.assertTrue; + +/** + * Created by jan on 10.6.2016. + */ +public class CommandLineArgumentContainerTest { + @Test + public void getSourceFileContents() throws Exception { + CommandLineArgumentContainer c = CommandLineArgumentContainer.getInstance(); + File basePath = new File(Utilities.getBasePath()); + c.setFile(new File(basePath, "src/test/com/jantuomi/borker/resources/test.file")); + String contents = c.getSourceFileContents(); + System.out.println(contents); + assertTrue(contents.contains("###")); + } + +} \ No newline at end of file diff --git a/src/test/com/jantuomi/borker/core/parser/ParserTest.java b/src/test/com/jantuomi/borker/core/parser/ParserTest.java new file mode 100644 index 0000000..964be76 --- /dev/null +++ b/src/test/com/jantuomi/borker/core/parser/ParserTest.java @@ -0,0 +1,30 @@ +package com.jantuomi.borker.core.parser; + +import com.jantuomi.borker.core.tokenizer.token.Token; +import com.jantuomi.borker.core.tokenizer.token.types.AdditionToken; +import com.jantuomi.borker.core.tokenizer.token.types.IntegerLiteralToken; +import org.junit.Test; + +import java.util.Arrays; +import java.util.List; + +/** + * Created by jan on 12.6.2016. + */ +public class ParserTest { + + @Test + public void testParseAddition() throws Exception { + List tokens = Arrays.asList( + new IntegerLiteralToken("1"), + new IntegerLiteralToken("2"), + new AdditionToken() + ); + + Parser parser = Parser.getInstance(); + List sequence = parser.parse(tokens); + for (Token t : sequence) { + parser.printTree(t); + } + } +} \ No newline at end of file diff --git a/src/test/com/jantuomi/borker/core/tokenizer/TokenizerTest.java b/src/test/com/jantuomi/borker/core/tokenizer/TokenizerTest.java new file mode 100644 index 0000000..fdaa022 --- /dev/null +++ b/src/test/com/jantuomi/borker/core/tokenizer/TokenizerTest.java @@ -0,0 +1,26 @@ +package com.jantuomi.borker.core.tokenizer; + +import com.jantuomi.borker.core.tokenizer.token.Token; +import com.jantuomi.borker.core.tokenizer.token.types.IntegerLiteralToken; +import com.jantuomi.borker.exception.InterpreterException; +import org.junit.Test; + +import java.util.List; + +import static org.junit.Assert.assertTrue; + +/** + * Created by jan on 10.6.2016. + */ +public class TokenizerTest { + + @Test + public void testAddition() throws InterpreterException { + String testString = "1 2 +"; + List list = Tokenizer.getInstance().tokenize(testString); + + System.out.println(String.format("test string:\n%s", testString)); + Tokenizer.printTokens(list); + assertTrue(list.contains(new IntegerLiteralToken("2"))); + } +} \ No newline at end of file diff --git a/src/test/com/jantuomi/borker/resources/funcdef.bork b/src/test/com/jantuomi/borker/resources/funcdef.bork new file mode 100644 index 0000000..8412129 --- /dev/null +++ b/src/test/com/jantuomi/borker/resources/funcdef.bork @@ -0,0 +1,8 @@ +/* kommentti juu jee */ + +func my_func x y as + + x 1 + - y x +end + +my_func(1 2) \ No newline at end of file diff --git a/src/test/com/jantuomi/borker/resources/program.bork b/src/test/com/jantuomi/borker/resources/program.bork new file mode 100644 index 0000000..7034625 --- /dev/null +++ b/src/test/com/jantuomi/borker/resources/program.bork @@ -0,0 +1,13 @@ +/* get an integer from the user */ +decl lhs decl rhs +set lhs in("give an integer: ") +set rhs in("give another: ") + +/* add the inputs together */ +decl sum +set sum + as_int(lhs) as_int(rhs) + +/* print the sum */ +out( concat(lhs " + " rhs " = " sum) ) + +"done" \ No newline at end of file diff --git a/src/test/com/jantuomi/borker/resources/test.file b/src/test/com/jantuomi/borker/resources/test.file new file mode 100644 index 0000000..3b723c0 --- /dev/null +++ b/src/test/com/jantuomi/borker/resources/test.file @@ -0,0 +1,4 @@ +### +This test file starts and +ends in three # symbols +### \ No newline at end of file -- cgit v1.3