From a10bde566e4861dd8a706d936b8cd3f903423f6c Mon Sep 17 00:00:00 2001 From: jeffcheasey88 <66554203+jeffcheasey88@users.noreply.github.com> Date: Fri, 2 Feb 2024 15:04:39 +0100 Subject: [PATCH] [Complete tests] Variable in method --- .../parser/java/element/BaseElementTests.java | 15 ++ .../element/variable/VariableInMethod.java | 164 ++++++++++++++++++ 2 files changed, 179 insertions(+) create mode 100644 test/dev/peerat/parser/java/element/variable/VariableInMethod.java diff --git a/test/dev/peerat/parser/java/element/BaseElementTests.java b/test/dev/peerat/parser/java/element/BaseElementTests.java index a3b4619..75b5f09 100644 --- a/test/dev/peerat/parser/java/element/BaseElementTests.java +++ b/test/dev/peerat/parser/java/element/BaseElementTests.java @@ -14,10 +14,12 @@ import dev.peerat.parser.Parser; import dev.peerat.parser.java.Class; import dev.peerat.parser.java.ClassBase; import dev.peerat.parser.java.Enumeration; +import dev.peerat.parser.java.Function; import dev.peerat.parser.java.Interface; import dev.peerat.parser.java.JavaElement; import dev.peerat.parser.java.JavaFile; import dev.peerat.parser.java.JavaParser; +import dev.peerat.parser.java.Variable; public class BaseElementTests{ @@ -62,4 +64,17 @@ public class BaseElementTests{ assertTrue(clazzb instanceof Enumeration); return (Enumeration)clazzb; } + + public Function checkFunction(JavaElement element){ + assertNotNull(element); + assertTrue(element instanceof Function); + return (Function)element; + } + + public Variable checkVariable(JavaElement element){ + assertNotNull(element); + assertTrue(element instanceof Variable); + return (Variable)element; + } + } diff --git a/test/dev/peerat/parser/java/element/variable/VariableInMethod.java b/test/dev/peerat/parser/java/element/variable/VariableInMethod.java new file mode 100644 index 0000000..ad3499f --- /dev/null +++ b/test/dev/peerat/parser/java/element/variable/VariableInMethod.java @@ -0,0 +1,164 @@ +package dev.peerat.parser.java.element.variable; + +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.util.List; + +import dev.peerat.parser.java.Class; +import dev.peerat.parser.java.Function; +import dev.peerat.parser.java.JavaElement; +import dev.peerat.parser.java.Variable; +import dev.peerat.parser.java.element.BaseElementTests; + +public class VariableInMethod extends BaseElementTests{ + + { + register( + () -> "package be.jeffcheasey88;" + + "" + + "public static final class Test{ " + + " void test(){" + + " int i;" + + "}" + + "}", + (javafile) -> { + Class clazz = checkClass(javafile); + List elements = clazz.getElements(); + assertNotNull(elements); + assertEquals(1, elements.size()); + Function function = checkFunction(elements.get(0)); + elements = function.getElements(); + assertNotNull(elements); + assertEquals(1, elements.size()); + Variable variable = checkVariable(elements.get(0)); + assertEquals(0, variable.getModifier()); + assertEquals("int", variable.getType().getValue()); + assertEquals("i", variable.getName().getValue()); + assertNull(variable.getValue()); + }); + + register( + () -> "package be.jeffcheasey88;" + + "" + + "public static final class Test{ " + + " void test(){" + + " int i = 4;" + + "}" + + "}", + (javafile) -> { + Class clazz = checkClass(javafile); + List elements = clazz.getElements(); + assertNotNull(elements); + assertEquals(1, elements.size()); + Function function = checkFunction(elements.get(0)); + elements = function.getElements(); + assertNotNull(elements); + assertEquals(1, elements.size()); + Variable variable = checkVariable(elements.get(0)); + assertEquals(0, variable.getModifier()); + assertEquals("int", variable.getType().getValue()); + assertEquals("i", variable.getName().getValue()); + assertEquals("4", variable.getValue().getToken().getValue()); + }); + + register( + () -> "package be.jeffcheasey88;" + + "" + + "public static final class Test{ " + + " void test(){" + + " int i = 4, j;" + + "}" + + "}", + (javafile) -> { + Class clazz = checkClass(javafile); + List elements = clazz.getElements(); + assertNotNull(elements); + assertEquals(1, elements.size()); + Function function = checkFunction(elements.get(0)); + elements = function.getElements(); + assertNotNull(elements); + assertEquals(2, elements.size()); + Variable variable = checkVariable(elements.get(0)); + assertEquals(0, variable.getModifier()); + assertEquals("int", variable.getType().getValue()); + assertEquals("i", variable.getName().getValue()); + assertEquals("4", variable.getValue().getToken().getValue()); + + variable = checkVariable(elements.get(1)); + assertEquals(0, variable.getModifier()); + assertEquals("int", variable.getType().getValue()); + assertEquals("j", variable.getName().getValue()); + assertNull(variable.getValue()); + }); + + register( + () -> "package be.jeffcheasey88;" + + "" + + "public static final class Test{ " + + " void test(){" + + " int i = 4, j = 6;" + + "}" + + "}", + (javafile) -> { + Class clazz = checkClass(javafile); + List elements = clazz.getElements(); + assertNotNull(elements); + assertEquals(1, elements.size()); + Function function = checkFunction(elements.get(0)); + elements = function.getElements(); + assertNotNull(elements); + assertEquals(2, elements.size()); + Variable variable = checkVariable(elements.get(0)); + assertEquals(0, variable.getModifier()); + assertEquals("int", variable.getType().getValue()); + assertEquals("i", variable.getName().getValue()); + assertEquals("4", variable.getValue().getToken().getValue()); + + variable = checkVariable(elements.get(1)); + assertEquals(0, variable.getModifier()); + assertEquals("int", variable.getType().getValue()); + assertEquals("j", variable.getName().getValue()); + assertEquals("6", variable.getValue().getToken().getValue()); + }); + + register( + () -> "package be.jeffcheasey88;" + + "" + + "public static final class Test{ " + + " void test(){" + + " int i = 4, j = 6;" + + " List list;" + + "}" + + "}", + (javafile) -> { + Class clazz = checkClass(javafile); + List elements = clazz.getElements(); + assertNotNull(elements); + assertEquals(1, elements.size()); + Function function = checkFunction(elements.get(0)); + elements = function.getElements(); + assertNotNull(elements); + assertEquals(3, elements.size()); + Variable variable = checkVariable(elements.get(0)); + assertEquals(0, variable.getModifier()); + assertEquals("int", variable.getType().getValue()); + assertEquals("i", variable.getName().getValue()); + assertEquals("4", variable.getValue().getToken().getValue()); + + variable = checkVariable(elements.get(1)); + assertEquals(0, variable.getModifier()); + assertEquals("int", variable.getType().getValue()); + assertEquals("j", variable.getName().getValue()); + assertEquals("6", variable.getValue().getToken().getValue()); + + variable = checkVariable(elements.get(2)); + assertEquals(0, variable.getModifier()); + assertEquals("List", variable.getType().getValue()); + assertEquals("list", variable.getName().getValue()); + assertNull(variable.getValue()); + }); + + } +} \ No newline at end of file