[Complete tests] Class,Interface,Enum normal, extends, implements

This commit is contained in:
jeffcheasey88 2024-01-03 16:44:08 +01:00
parent 9ca80258a1
commit ad22bc03c5
6 changed files with 152 additions and 5 deletions

View file

@ -968,7 +968,7 @@ public class JavaParser extends Parser<JavaElement> {
(bag, token) -> bag.set("implement", bag.<Token>get("implement").concat(token)))).then(clazz_implement_name); (bag, token) -> bag.set("implement", bag.<Token>get("implement").concat(token)))).then(clazz_implement_name);
clazz_implement_name.then((validator) -> validator.validate((token) -> token.getValue().equals("{"))) clazz_implement_name.then((validator) -> validator.validate((token) -> token.getValue().equals("{")))
.<JavaElement>end((parent, bag) -> { .<JavaElement>end((parent, bag) -> {
Class current = new Class((((AnnotableBuffer)parent).getAnnotationBuffer()), bag.get("name"), bag.get("extend"), bag.get("implements")); Class current = new Class((((AnnotableBuffer)parent).getAnnotationBuffer()), bag.get("name"), bag.get("extend"), bag.get("implement"));
if(parent instanceof ClassContainer) ((ClassContainer)parent).addClass(current); if(parent instanceof ClassContainer) ((ClassContainer)parent).addClass(current);
return current; return current;
}) })
@ -979,7 +979,7 @@ public class JavaParser extends Parser<JavaElement> {
.then(new RedirectStateTree<>(type, (global, local) -> global.set("extend", local.get()))); .then(new RedirectStateTree<>(type, (global, local) -> global.set("extend", local.get())));
clazz_extend.then((validator) -> validator.validate((token) -> token.getValue().equals("{"))) clazz_extend.then((validator) -> validator.validate((token) -> token.getValue().equals("{")))
.<JavaElement>end((parent, bag) -> { .<JavaElement>end((parent, bag) -> {
Class current = new Class((((AnnotableBuffer)parent).getAnnotationBuffer()), bag.get("name"), bag.get("extend"), bag.get("implements")); Class current = new Class((((AnnotableBuffer)parent).getAnnotationBuffer()), bag.get("name"), bag.get("extend"), bag.get("implement"));
if(parent instanceof ClassContainer) ((ClassContainer)parent).addClass(current); if(parent instanceof ClassContainer) ((ClassContainer)parent).addClass(current);
return current; return current;
}) })
@ -1001,7 +1001,7 @@ public class JavaParser extends Parser<JavaElement> {
(bag, token) -> bag.set("name", token))); (bag, token) -> bag.set("name", token)));
StateTree<JavaElement> interface_start = interface_base.then((validator) -> validator.validate((token) -> token.getValue().equals("{"))); StateTree<JavaElement> interface_start = interface_base.then((validator) -> validator.validate((token) -> token.getValue().equals("{")));
interface_start.<JavaElement>end((parent,bag) -> { interface_start.<JavaElement>end((parent,bag) -> {
Interface current = new Interface((((AnnotableBuffer)parent).getAnnotationBuffer()), bag.get("name")); Interface current = new Interface((((AnnotableBuffer)parent).getAnnotationBuffer()), bag.get("name"), bag.get("extend"));
if(parent instanceof ClassContainer) ((ClassContainer)parent).addClass(current); if(parent instanceof ClassContainer) ((ClassContainer)parent).addClass(current);
return current; return current;
}) })
@ -1009,7 +1009,7 @@ public class JavaParser extends Parser<JavaElement> {
.unique((validator) -> validator.validate((token) -> token.getValue().equals("}"))).end((a,b) -> a); .unique((validator) -> validator.validate((token) -> token.getValue().equals("}"))).end((a,b) -> a);
interface_base.then((validator) -> validator.validate((token) -> token.getValue().equals("extends"))) interface_base.then((validator) -> validator.validate((token) -> token.getValue().equals("extends")))
.then(new RedirectStateTree<>(type, (global, local) -> global.set(null))) .then(new RedirectStateTree<>(type, (global, local) -> global.set("extend", local.get())))
.then(interface_start); .then(interface_start);
StateTree<JavaElement> interface_mod = clazz_.then(new RedirectStateTree<>(modifier, (global, local) -> global.set("modifier", local))); StateTree<JavaElement> interface_mod = clazz_.then(new RedirectStateTree<>(modifier, (global, local) -> global.set("modifier", local)));
@ -1029,7 +1029,7 @@ public class JavaParser extends Parser<JavaElement> {
StateTree<JavaElement> enum_start = enum_base.then((validator) -> validator.validate((token) -> token.getValue().equals("{"))); StateTree<JavaElement> enum_start = enum_base.then((validator) -> validator.validate((token) -> token.getValue().equals("{")));
enum_start.<JavaElement>end((parent,bag) -> { enum_start.<JavaElement>end((parent,bag) -> {
Enumeration current = new Enumeration((((AnnotableBuffer)parent).getAnnotationBuffer()), bag.get("name")); Enumeration current = new Enumeration((((AnnotableBuffer)parent).getAnnotationBuffer()), bag.get("name"), bag.get("implement"));
if(parent instanceof ClassContainer) ((ClassContainer)parent).addClass(current); if(parent instanceof ClassContainer) ((ClassContainer)parent).addClass(current);
return current; return current;
}) })

View file

@ -0,0 +1,29 @@
package dev.peerat.parser.java.element.clazz;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.junit.jupiter.api.Assertions.assertEquals;
import dev.peerat.parser.java.Class;
import dev.peerat.parser.java.ClassBase;
import dev.peerat.parser.java.element.BaseElementTests;
public class ClazzWithExtend extends BaseElementTests{
{
register(
() -> "package be.jeffcheasey88;"
+ ""
+ "public class Test extends MyTest{}",
(javafile) -> {
ClassBase clazzb = javafile.getMainClass();
assertNotNull(clazzb);
assertTrue(clazzb instanceof Class);
Class clazz = (Class)clazzb;
assertEquals("Test", clazz.getName().getValue());
assertEquals(0, clazz.getElements().size());
assertEquals("MyTest", clazz.getExtension().getValue());
});
}
}

View file

@ -0,0 +1,30 @@
package dev.peerat.parser.java.element.clazz;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.junit.jupiter.api.Assertions.assertEquals;
import dev.peerat.parser.java.Class;
import dev.peerat.parser.java.ClassBase;
import dev.peerat.parser.java.element.BaseElementTests;
public class ClazzWithExtendsAndImplements extends BaseElementTests{
{
register(
() -> "package be.jeffcheasey88;"
+ ""
+ "public class Test extends MyBigTest implements MyTest{}",
(javafile) -> {
ClassBase clazzb = javafile.getMainClass();
assertNotNull(clazzb);
assertTrue(clazzb instanceof Class);
Class clazz = (Class)clazzb;
assertEquals("Test", clazz.getName().getValue());
assertEquals(0, clazz.getElements().size());
assertEquals("MyBigTest", clazz.getExtension().getValue());
assertEquals("MyTest", clazz.getImplementations().getValue()); //where pouvoir en récuperer plusieurs ?
});
}
}

View file

@ -0,0 +1,29 @@
package dev.peerat.parser.java.element.clazz;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.junit.jupiter.api.Assertions.assertEquals;
import dev.peerat.parser.java.Class;
import dev.peerat.parser.java.ClassBase;
import dev.peerat.parser.java.element.BaseElementTests;
public class ClazzWithImplements extends BaseElementTests{
{
register(
() -> "package be.jeffcheasey88;"
+ ""
+ "public class Test implements MyTest{}",
(javafile) -> {
ClassBase clazzb = javafile.getMainClass();
assertNotNull(clazzb);
assertTrue(clazzb instanceof Class);
Class clazz = (Class)clazzb;
assertEquals("Test", clazz.getName().getValue());
assertEquals(0, clazz.getElements().size());
assertEquals("MyTest", clazz.getImplementations().getValue()); //where pouvoir en récuperer plusieurs ?
});
}
}

View file

@ -0,0 +1,30 @@
package dev.peerat.parser.java.element.clazz;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.junit.jupiter.api.Assertions.assertEquals;
import dev.peerat.parser.java.Class;
import dev.peerat.parser.java.ClassBase;
import dev.peerat.parser.java.Enumeration;
import dev.peerat.parser.java.element.BaseElementTests;
public class EnumWithImplements extends BaseElementTests{
{
register(
() -> "package be.jeffcheasey88;"
+ ""
+ "public enum Test implements MyTest{}",
(javafile) -> {
ClassBase clazzb = javafile.getMainClass();
assertNotNull(clazzb);
assertTrue(clazzb instanceof Enumeration);
Enumeration clazz = (Enumeration)clazzb;
assertEquals("Test", clazz.getName().getValue());
assertEquals(0, clazz.getElements().size());
assertEquals("MyTest", clazz.getExtension().getValue());
});
}
}

View file

@ -0,0 +1,29 @@
package dev.peerat.parser.java.element.clazz;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.junit.jupiter.api.Assertions.assertEquals;
import dev.peerat.parser.java.ClassBase;
import dev.peerat.parser.java.Interface;
import dev.peerat.parser.java.element.BaseElementTests;
public class InterfaceWithExtends extends BaseElementTests{
{
register(
() -> "package be.jeffcheasey88;"
+ ""
+ "public interface Test extends MyTest{}",
(javafile) -> {
ClassBase clazzb = javafile.getMainClass();
assertNotNull(clazzb);
assertTrue(clazzb instanceof Interface);
Interface clazz = (Interface)clazzb;
assertEquals("Test", clazz.getName().getValue());
assertEquals(0, clazz.getElements().size());
assertEquals("MyTest", clazz.getExtension().getValue());
});
}
}