205 lines
5.4 KiB
Java
205 lines
5.4 KiB
Java
package be.jeffcheasey88.peeratcode.parser.java;
|
|
|
|
import static org.junit.Assert.assertNull;
|
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
import static org.junit.jupiter.api.Assertions.fail;
|
|
|
|
import java.util.Arrays;
|
|
import java.util.List;
|
|
|
|
import org.junit.jupiter.api.BeforeAll;
|
|
import org.junit.jupiter.api.Test;
|
|
import org.junit.jupiter.api.TestInstance;
|
|
import org.junit.jupiter.api.TestInstance.Lifecycle;
|
|
|
|
import be.jeffcheasey88.peeratcode.parser.java.CleanerPool.Cleaner;
|
|
import be.jeffcheasey88.peeratcode.parser.java.Variable.Value;
|
|
|
|
@TestInstance(Lifecycle.PER_CLASS)
|
|
class VariableTest{
|
|
|
|
//int i = 4;
|
|
//int i,j,k,l=1;
|
|
//int lm ;
|
|
//public static int l;
|
|
//Test<Test>t;
|
|
//Test<Test,K,L> j = new Test().schedule(p -> { return true;});
|
|
//int i =j=k=l=4;
|
|
|
|
private CleanerPool cleaner;
|
|
|
|
@BeforeAll
|
|
void init(){
|
|
this.cleaner = new CleanerPool();
|
|
}
|
|
|
|
@Test
|
|
void case1(){
|
|
try {
|
|
Variable variable = new Variable();
|
|
variable.parse(cleaner.clean(" int i = 4 ; "), cleaner);
|
|
|
|
assertEquals(0, variable.getModifier());
|
|
assertEquals("int", variable.getType());
|
|
assertEquals("i", variable.getName());
|
|
assertEquals("4", ((Value)variable.getValue()).value());
|
|
}catch(Exception e){
|
|
fail(e);
|
|
}
|
|
}
|
|
|
|
@Test
|
|
void case2(){
|
|
try {
|
|
Variable variable = new Variable();
|
|
variable.parse(cleaner.clean("public static int l ; "), cleaner);
|
|
|
|
assertEquals(JavaParser.getModifier("public")+JavaParser.getModifier("static"), variable.getModifier());
|
|
assertEquals("int", variable.getType());
|
|
assertEquals("l", variable.getName());
|
|
assertNull(variable.getValue());
|
|
}catch(Exception e){
|
|
fail(e);
|
|
}
|
|
}
|
|
|
|
@Test
|
|
void case3(){
|
|
try {
|
|
Variable variable = new Variable();
|
|
variable.parse(cleaner.clean(" int lm ; "), cleaner);
|
|
|
|
assertEquals(0, variable.getModifier());
|
|
assertEquals("int", variable.getType());
|
|
assertEquals("lm", variable.getName());
|
|
assertNull(variable.getValue());
|
|
}catch(Exception e){
|
|
fail(e);
|
|
}
|
|
}
|
|
|
|
@Test
|
|
void case4(){
|
|
try {
|
|
Variable variable = new Variable();
|
|
variable.parse(cleaner.clean("Test0< List< Map< Test1, List< Test2 >, Test3>> >t; "), cleaner);
|
|
|
|
assertEquals(0, variable.getModifier());
|
|
assertEquals("Test0<List<Map<Test1,List<Test2>,Test3>>>", variable.getType());
|
|
assertEquals("t", variable.getName());
|
|
assertNull(variable.getValue());
|
|
}catch(Exception e){
|
|
fail(e);
|
|
}
|
|
}
|
|
|
|
@Test
|
|
void case5(){
|
|
try {
|
|
Variable variable = new Variable();
|
|
variable.parse(cleaner.clean(" int i,j,k,l=1; "), cleaner);
|
|
|
|
assertEquals(0, variable.getModifier());
|
|
assertEquals("int", variable.getType());
|
|
assertEquals("i", variable.getName());
|
|
assertNull(variable.getValue());
|
|
}catch(Exception e){
|
|
fail(e);
|
|
}
|
|
}
|
|
|
|
@Test
|
|
void case6(){
|
|
try {
|
|
Class clazz = new Class();
|
|
clazz.parse(cleaner.clean("public class Test{ int i ,j,k,l=1; } "), cleaner);
|
|
|
|
List<Variable> vars = clazz.getVariables();
|
|
assertEquals(4, vars.size());
|
|
for(int i = 0; i < 3; i++){
|
|
Variable v = vars.get(i);
|
|
assertEquals(0, v.getModifier());
|
|
assertEquals("int", v.getType());
|
|
assertEquals((char)('i'+i), v.getName().charAt(0));
|
|
assertNull(v.getValue());
|
|
}
|
|
Variable v = vars.get(3);
|
|
assertEquals(0, v.getModifier());
|
|
assertEquals("int", v.getType());
|
|
assertEquals('l', v.getName().charAt(0));
|
|
assertEquals("1", ((Value)v.getValue()).value());
|
|
}catch(Exception e){
|
|
fail(e);
|
|
}
|
|
}
|
|
|
|
@Test
|
|
void case7(){
|
|
try {
|
|
Class clazz = new Class();
|
|
clazz.parse(cleaner.clean("public class Test{ int i ,j,k; int l=i=k=l=4; } "), new CleanerPool());
|
|
|
|
List<Variable> vars = clazz.getVariables();
|
|
assertEquals(4, vars.size());
|
|
for(int i = 0; i < 4; i++){
|
|
Variable v = vars.get(i);
|
|
assertEquals(0, v.getModifier());
|
|
assertEquals("int", v.getType());
|
|
assertEquals((char)('i'+i), v.getName().charAt(0));
|
|
}
|
|
}catch(Exception e){
|
|
fail(e);
|
|
}
|
|
}
|
|
|
|
@Test
|
|
void case8(){
|
|
try {
|
|
Variable variable = new Variable();
|
|
variable.parse(cleaner.clean("int[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]t; "), cleaner);
|
|
|
|
assertEquals(0, variable.getModifier());
|
|
assertEquals("int[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]", variable.getType());
|
|
assertEquals("t", variable.getName());
|
|
assertNull(variable.getValue());
|
|
}catch(Exception e){
|
|
fail(e);
|
|
}
|
|
}
|
|
|
|
@Test
|
|
void case9(){
|
|
try {
|
|
Class clazz = new Class();
|
|
clazz.parse(cleaner.clean("public class Test{ int i ,j,k,l; } "), cleaner);
|
|
|
|
List<Variable> vars = clazz.getVariables();
|
|
assertEquals(vars.size(), 4);
|
|
for(int i = 0; i < 3; i++){
|
|
Variable v = vars.get(i);
|
|
assertEquals(0, v.getModifier());
|
|
assertEquals("int", v.getType());
|
|
assertEquals((char)('i'+i), v.getName().charAt(0));
|
|
assertNull(v.getValue());
|
|
}
|
|
}catch(Exception e){
|
|
fail(e);
|
|
}
|
|
}
|
|
|
|
@Test
|
|
void case10(){
|
|
try {
|
|
Variable variable = new Variable();
|
|
variable.parse(cleaner.clean(" boolean i = j << 3==0 ; "), cleaner);
|
|
|
|
assertEquals(0, variable.getModifier());
|
|
assertEquals("boolean", variable.getType());
|
|
assertEquals("i", variable.getName());
|
|
assertEquals("j << 3 == 0", ((Value)variable.getValue()).value());
|
|
}catch(Exception e){
|
|
fail(e);
|
|
}
|
|
}
|
|
|
|
}
|