[Complete tests] Base Variable in Class & add check method for getting class, interface and enum
This commit is contained in:
parent
90ec4ae478
commit
3533966afd
3 changed files with 275 additions and 24 deletions
|
@ -1,5 +1,8 @@
|
||||||
package dev.peerat.parser.java.element;
|
package dev.peerat.parser.java.element;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertNotNull;
|
||||||
|
import static org.junit.Assert.assertTrue;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
@ -8,6 +11,10 @@ import java.util.function.Supplier;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
import dev.peerat.parser.Parser;
|
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.Interface;
|
||||||
import dev.peerat.parser.java.JavaElement;
|
import dev.peerat.parser.java.JavaElement;
|
||||||
import dev.peerat.parser.java.JavaFile;
|
import dev.peerat.parser.java.JavaFile;
|
||||||
import dev.peerat.parser.java.JavaParser;
|
import dev.peerat.parser.java.JavaParser;
|
||||||
|
@ -35,4 +42,24 @@ public class BaseElementTests{
|
||||||
System.out.println("passed "+size+" tests");
|
System.out.println("passed "+size+" tests");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Class checkClass(JavaFile javafile){
|
||||||
|
ClassBase clazzb = javafile.getMainClass();
|
||||||
|
assertNotNull(clazzb);
|
||||||
|
assertTrue(clazzb instanceof Class);
|
||||||
|
return (Class)clazzb;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Interface checkInterface(JavaFile javafile){
|
||||||
|
ClassBase clazzb = javafile.getMainClass();
|
||||||
|
assertNotNull(clazzb);
|
||||||
|
assertTrue(clazzb instanceof Interface);
|
||||||
|
return (Interface)clazzb;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Enumeration checkEnum(JavaFile javafile){
|
||||||
|
ClassBase clazzb = javafile.getMainClass();
|
||||||
|
assertNotNull(clazzb);
|
||||||
|
assertTrue(clazzb instanceof Enumeration);
|
||||||
|
return (Enumeration)clazzb;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,6 +13,8 @@ import dev.peerat.parser.TokenType;
|
||||||
import dev.peerat.parser.java.Annotation;
|
import dev.peerat.parser.java.Annotation;
|
||||||
import dev.peerat.parser.java.Class;
|
import dev.peerat.parser.java.Class;
|
||||||
import dev.peerat.parser.java.ClassBase;
|
import dev.peerat.parser.java.ClassBase;
|
||||||
|
import dev.peerat.parser.java.Enumeration;
|
||||||
|
import dev.peerat.parser.java.Interface;
|
||||||
import dev.peerat.parser.java.Value;
|
import dev.peerat.parser.java.Value;
|
||||||
import dev.peerat.parser.java.element.BaseElementTests;
|
import dev.peerat.parser.java.element.BaseElementTests;
|
||||||
|
|
||||||
|
@ -25,10 +27,7 @@ public class ClazzAnnotation extends BaseElementTests{
|
||||||
+ "@Test "
|
+ "@Test "
|
||||||
+ "public static class Test{}",
|
+ "public static class Test{}",
|
||||||
(javafile) -> {
|
(javafile) -> {
|
||||||
ClassBase clazzb = javafile.getMainClass();
|
Class clazz = checkClass(javafile);
|
||||||
assertNotNull(clazzb);
|
|
||||||
assertTrue(clazzb instanceof Class);
|
|
||||||
Class clazz = (Class)clazzb;
|
|
||||||
List<Annotation> annotations = clazz.getAnnotations();
|
List<Annotation> annotations = clazz.getAnnotations();
|
||||||
assertNotNull(annotations);
|
assertNotNull(annotations);
|
||||||
assertEquals(1, annotations.size());
|
assertEquals(1, annotations.size());
|
||||||
|
@ -43,10 +42,7 @@ public class ClazzAnnotation extends BaseElementTests{
|
||||||
+ "@be.jeffcheasey88.Test "
|
+ "@be.jeffcheasey88.Test "
|
||||||
+ "public static class Test{}",
|
+ "public static class Test{}",
|
||||||
(javafile) -> {
|
(javafile) -> {
|
||||||
ClassBase clazzb = javafile.getMainClass();
|
Class clazz = checkClass(javafile);
|
||||||
assertNotNull(clazzb);
|
|
||||||
assertTrue(clazzb instanceof Class);
|
|
||||||
Class clazz = (Class)clazzb;
|
|
||||||
List<Annotation> annotations = clazz.getAnnotations();
|
List<Annotation> annotations = clazz.getAnnotations();
|
||||||
assertNotNull(annotations);
|
assertNotNull(annotations);
|
||||||
assertEquals(1, annotations.size());
|
assertEquals(1, annotations.size());
|
||||||
|
@ -61,10 +57,7 @@ public class ClazzAnnotation extends BaseElementTests{
|
||||||
+ "@Test() "
|
+ "@Test() "
|
||||||
+ "public static class Test{}",
|
+ "public static class Test{}",
|
||||||
(javafile) -> {
|
(javafile) -> {
|
||||||
ClassBase clazzb = javafile.getMainClass();
|
Class clazz = checkClass(javafile);
|
||||||
assertNotNull(clazzb);
|
|
||||||
assertTrue(clazzb instanceof Class);
|
|
||||||
Class clazz = (Class)clazzb;
|
|
||||||
List<Annotation> annotations = clazz.getAnnotations();
|
List<Annotation> annotations = clazz.getAnnotations();
|
||||||
assertNotNull(annotations);
|
assertNotNull(annotations);
|
||||||
assertEquals(1, annotations.size());
|
assertEquals(1, annotations.size());
|
||||||
|
@ -79,10 +72,7 @@ public class ClazzAnnotation extends BaseElementTests{
|
||||||
+ "@Test(\"Hello\") "
|
+ "@Test(\"Hello\") "
|
||||||
+ "public static class Test{}",
|
+ "public static class Test{}",
|
||||||
(javafile) -> {
|
(javafile) -> {
|
||||||
ClassBase clazzb = javafile.getMainClass();
|
Class clazz = checkClass(javafile);
|
||||||
assertNotNull(clazzb);
|
|
||||||
assertTrue(clazzb instanceof Class);
|
|
||||||
Class clazz = (Class)clazzb;
|
|
||||||
List<Annotation> annotations = clazz.getAnnotations();
|
List<Annotation> annotations = clazz.getAnnotations();
|
||||||
assertNotNull(annotations);
|
assertNotNull(annotations);
|
||||||
assertEquals(1, annotations.size());
|
assertEquals(1, annotations.size());
|
||||||
|
@ -103,10 +93,7 @@ public class ClazzAnnotation extends BaseElementTests{
|
||||||
+ "@Test(offset=8) "
|
+ "@Test(offset=8) "
|
||||||
+ "public static class Test{}",
|
+ "public static class Test{}",
|
||||||
(javafile) -> {
|
(javafile) -> {
|
||||||
ClassBase clazzb = javafile.getMainClass();
|
Class clazz = checkClass(javafile);
|
||||||
assertNotNull(clazzb);
|
|
||||||
assertTrue(clazzb instanceof Class);
|
|
||||||
Class clazz = (Class)clazzb;
|
|
||||||
List<Annotation> annotations = clazz.getAnnotations();
|
List<Annotation> annotations = clazz.getAnnotations();
|
||||||
assertNotNull(annotations);
|
assertNotNull(annotations);
|
||||||
assertEquals(1, annotations.size());
|
assertEquals(1, annotations.size());
|
||||||
|
@ -125,10 +112,7 @@ public class ClazzAnnotation extends BaseElementTests{
|
||||||
+ "@Test(offset=8,concat=\",\") "
|
+ "@Test(offset=8,concat=\",\") "
|
||||||
+ "public static class Test{}",
|
+ "public static class Test{}",
|
||||||
(javafile) -> {
|
(javafile) -> {
|
||||||
ClassBase clazzb = javafile.getMainClass();
|
Class clazz = checkClass(javafile);
|
||||||
assertNotNull(clazzb);
|
|
||||||
assertTrue(clazzb instanceof Class);
|
|
||||||
Class clazz = (Class)clazzb;
|
|
||||||
List<Annotation> annotations = clazz.getAnnotations();
|
List<Annotation> annotations = clazz.getAnnotations();
|
||||||
assertNotNull(annotations);
|
assertNotNull(annotations);
|
||||||
assertEquals(1, annotations.size());
|
assertEquals(1, annotations.size());
|
||||||
|
@ -137,6 +121,42 @@ public class ClazzAnnotation extends BaseElementTests{
|
||||||
assertNotNull(annotation.getParameters());
|
assertNotNull(annotation.getParameters());
|
||||||
assertEquals(2, annotation.getParameters().size());
|
assertEquals(2, annotation.getParameters().size());
|
||||||
});
|
});
|
||||||
|
|
||||||
|
register(
|
||||||
|
() -> "package be.jeffcheasey88;"
|
||||||
|
+ ""
|
||||||
|
+ "@Test "
|
||||||
|
+ "public static interface Test{}",
|
||||||
|
(javafile) -> {
|
||||||
|
ClassBase clazzb = javafile.getMainClass();
|
||||||
|
assertNotNull(clazzb);
|
||||||
|
assertTrue(clazzb instanceof Interface);
|
||||||
|
Interface clazz = (Interface)clazzb;
|
||||||
|
List<Annotation> annotations = clazz.getAnnotations();
|
||||||
|
assertNotNull(annotations);
|
||||||
|
assertEquals(1, annotations.size());
|
||||||
|
Annotation annotation = annotations.get(0);
|
||||||
|
assertEquals("Test", annotation.getName().getValue());
|
||||||
|
assertNull(annotation.getParameters());
|
||||||
|
});
|
||||||
|
|
||||||
|
register(
|
||||||
|
() -> "package be.jeffcheasey88;"
|
||||||
|
+ ""
|
||||||
|
+ "@Test "
|
||||||
|
+ "public static enum Test{}",
|
||||||
|
(javafile) -> {
|
||||||
|
ClassBase clazzb = javafile.getMainClass();
|
||||||
|
assertNotNull(clazzb);
|
||||||
|
assertTrue(clazzb instanceof Enumeration);
|
||||||
|
Enumeration clazz = (Enumeration)clazzb;
|
||||||
|
List<Annotation> annotations = clazz.getAnnotations();
|
||||||
|
assertNotNull(annotations);
|
||||||
|
assertEquals(1, annotations.size());
|
||||||
|
Annotation annotation = annotations.get(0);
|
||||||
|
assertEquals("Test", annotation.getName().getValue());
|
||||||
|
assertNull(annotation.getParameters());
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,204 @@
|
||||||
|
package dev.peerat.parser.java.element.variable;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertNotNull;
|
||||||
|
import static org.junit.Assert.assertNull;
|
||||||
|
import static org.junit.Assert.assertTrue;
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
|
||||||
|
import java.lang.reflect.Modifier;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import dev.peerat.parser.java.Class;
|
||||||
|
import dev.peerat.parser.java.JavaElement;
|
||||||
|
import dev.peerat.parser.java.Variable;
|
||||||
|
import dev.peerat.parser.java.element.BaseElementTests;
|
||||||
|
|
||||||
|
public class VariableInClass extends BaseElementTests{
|
||||||
|
|
||||||
|
{
|
||||||
|
register(
|
||||||
|
() -> "package be.jeffcheasey88;"
|
||||||
|
+ ""
|
||||||
|
+ "public static final class Test{ "
|
||||||
|
+ " int i;"
|
||||||
|
+ "}",
|
||||||
|
(javafile) -> {
|
||||||
|
Class clazz = checkClass(javafile);
|
||||||
|
List<JavaElement> elements = clazz.getElements();
|
||||||
|
assertNotNull(elements);
|
||||||
|
assertEquals(1, elements.size());
|
||||||
|
JavaElement element = elements.get(0);
|
||||||
|
assertNotNull(element);
|
||||||
|
assertTrue(element instanceof Variable);
|
||||||
|
Variable variable = (Variable) element;
|
||||||
|
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{ "
|
||||||
|
+ " private int i;"
|
||||||
|
+ "}",
|
||||||
|
(javafile) -> {
|
||||||
|
Class clazz = checkClass(javafile);
|
||||||
|
List<JavaElement> elements = clazz.getElements();
|
||||||
|
assertNotNull(elements);
|
||||||
|
assertEquals(1, elements.size());
|
||||||
|
JavaElement element = elements.get(0);
|
||||||
|
assertNotNull(element);
|
||||||
|
assertTrue(element instanceof Variable);
|
||||||
|
Variable variable = (Variable) element;
|
||||||
|
assertEquals(Modifier.PRIVATE, variable.getModifier());
|
||||||
|
assertEquals("int", variable.getType().getValue());
|
||||||
|
assertEquals("i", variable.getName().getValue());
|
||||||
|
assertNull(variable.getValue());
|
||||||
|
});
|
||||||
|
|
||||||
|
register(
|
||||||
|
() -> "package be.jeffcheasey88;"
|
||||||
|
+ ""
|
||||||
|
+ "public static final class Test{ "
|
||||||
|
+ " private final int i;"
|
||||||
|
+ "}",
|
||||||
|
(javafile) -> {
|
||||||
|
Class clazz = checkClass(javafile);
|
||||||
|
List<JavaElement> elements = clazz.getElements();
|
||||||
|
assertNotNull(elements);
|
||||||
|
assertEquals(1, elements.size());
|
||||||
|
JavaElement element = elements.get(0);
|
||||||
|
assertNotNull(element);
|
||||||
|
assertTrue(element instanceof Variable);
|
||||||
|
Variable variable = (Variable) element;
|
||||||
|
assertEquals(Modifier.PRIVATE+Modifier.FINAL, variable.getModifier());
|
||||||
|
assertEquals("int", variable.getType().getValue());
|
||||||
|
assertEquals("i", variable.getName().getValue());
|
||||||
|
assertNull(variable.getValue());
|
||||||
|
});
|
||||||
|
|
||||||
|
register(
|
||||||
|
() -> "package be.jeffcheasey88;"
|
||||||
|
+ ""
|
||||||
|
+ "public static final class Test{ "
|
||||||
|
+ " private final int i = 4;"
|
||||||
|
+ "}",
|
||||||
|
(javafile) -> {
|
||||||
|
Class clazz = checkClass(javafile);
|
||||||
|
List<JavaElement> elements = clazz.getElements();
|
||||||
|
assertNotNull(elements);
|
||||||
|
assertEquals(1, elements.size());
|
||||||
|
JavaElement element = elements.get(0);
|
||||||
|
assertNotNull(element);
|
||||||
|
assertTrue(element instanceof Variable);
|
||||||
|
Variable variable = (Variable) element;
|
||||||
|
assertEquals(Modifier.PRIVATE+Modifier.FINAL, 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{ "
|
||||||
|
+ " private final int i = 4, j;"
|
||||||
|
+ "}",
|
||||||
|
(javafile) -> {
|
||||||
|
Class clazz = checkClass(javafile);
|
||||||
|
List<JavaElement> elements = clazz.getElements();
|
||||||
|
assertNotNull(elements);
|
||||||
|
assertEquals(2, elements.size());
|
||||||
|
JavaElement element = elements.get(0);
|
||||||
|
assertNotNull(element);
|
||||||
|
assertTrue(element instanceof Variable);
|
||||||
|
Variable variable = (Variable) element;
|
||||||
|
assertEquals(Modifier.PRIVATE+Modifier.FINAL, variable.getModifier());
|
||||||
|
assertEquals("int", variable.getType().getValue());
|
||||||
|
assertEquals("i", variable.getName().getValue());
|
||||||
|
assertEquals("4", variable.getValue().getToken().getValue());
|
||||||
|
|
||||||
|
element = elements.get(1);
|
||||||
|
assertNotNull(element);
|
||||||
|
assertTrue(element instanceof Variable);
|
||||||
|
variable = (Variable) element;
|
||||||
|
assertEquals(Modifier.PRIVATE+Modifier.FINAL, variable.getModifier());
|
||||||
|
assertEquals("int", variable.getType().getValue());
|
||||||
|
assertEquals("j", variable.getName().getValue());
|
||||||
|
assertNull(variable.getValue());
|
||||||
|
});
|
||||||
|
|
||||||
|
register(
|
||||||
|
() -> "package be.jeffcheasey88;"
|
||||||
|
+ ""
|
||||||
|
+ "public static final class Test{ "
|
||||||
|
+ " private final int i = 4, j = 6;"
|
||||||
|
+ "}",
|
||||||
|
(javafile) -> {
|
||||||
|
Class clazz = checkClass(javafile);
|
||||||
|
List<JavaElement> elements = clazz.getElements();
|
||||||
|
assertNotNull(elements);
|
||||||
|
assertEquals(2, elements.size());
|
||||||
|
JavaElement element = elements.get(0);
|
||||||
|
assertNotNull(element);
|
||||||
|
assertTrue(element instanceof Variable);
|
||||||
|
Variable variable = (Variable) element;
|
||||||
|
assertEquals(Modifier.PRIVATE+Modifier.FINAL, variable.getModifier());
|
||||||
|
assertEquals("int", variable.getType().getValue());
|
||||||
|
assertEquals("i", variable.getName().getValue());
|
||||||
|
assertEquals("4", variable.getValue().getToken().getValue());
|
||||||
|
|
||||||
|
element = elements.get(1);
|
||||||
|
assertNotNull(element);
|
||||||
|
assertTrue(element instanceof Variable);
|
||||||
|
variable = (Variable) element;
|
||||||
|
assertEquals(Modifier.PRIVATE+Modifier.FINAL, 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{ "
|
||||||
|
+ " private final int i = 4, j = 6;"
|
||||||
|
+ " List<String> list;"
|
||||||
|
+ "}",
|
||||||
|
(javafile) -> {
|
||||||
|
Class clazz = checkClass(javafile);
|
||||||
|
List<JavaElement> elements = clazz.getElements();
|
||||||
|
assertNotNull(elements);
|
||||||
|
assertEquals(3, elements.size());
|
||||||
|
JavaElement element = elements.get(0);
|
||||||
|
assertNotNull(element);
|
||||||
|
assertTrue(element instanceof Variable);
|
||||||
|
Variable variable = (Variable) element;
|
||||||
|
assertEquals(Modifier.PRIVATE+Modifier.FINAL, variable.getModifier());
|
||||||
|
assertEquals("int", variable.getType().getValue());
|
||||||
|
assertEquals("i", variable.getName().getValue());
|
||||||
|
assertEquals("4", variable.getValue().getToken().getValue());
|
||||||
|
|
||||||
|
element = elements.get(1);
|
||||||
|
assertNotNull(element);
|
||||||
|
assertTrue(element instanceof Variable);
|
||||||
|
variable = (Variable) element;
|
||||||
|
assertEquals(Modifier.PRIVATE+Modifier.FINAL, variable.getModifier());
|
||||||
|
assertEquals("int", variable.getType().getValue());
|
||||||
|
assertEquals("j", variable.getName().getValue());
|
||||||
|
assertEquals("6", variable.getValue().getToken().getValue());
|
||||||
|
|
||||||
|
element = elements.get(2);
|
||||||
|
assertNotNull(element);
|
||||||
|
assertTrue(element instanceof Variable);
|
||||||
|
variable = (Variable) element;
|
||||||
|
assertEquals(0, variable.getModifier());
|
||||||
|
assertEquals("List<String>", variable.getType().getValue());
|
||||||
|
assertEquals("list", variable.getName().getValue());
|
||||||
|
assertNull(variable.getValue());
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue