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 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 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 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 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 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 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 list;" + "}", (javafile) -> { Class clazz = checkClass(javafile); List 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", variable.getType().getValue()); assertEquals("list", variable.getName().getValue()); assertNull(variable.getValue()); }); } }