65 lines
1.8 KiB
Java
65 lines
1.8 KiB
Java
package be.jeffcheasey88.peeratcode.parser.java;
|
|
|
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
|
|
import java.io.BufferedReader;
|
|
import java.io.IOException;
|
|
import java.io.Reader;
|
|
|
|
import org.junit.jupiter.api.Test;
|
|
import org.junit.jupiter.api.TestInstance;
|
|
import org.junit.jupiter.api.TestInstance.Lifecycle;
|
|
|
|
@TestInstance(Lifecycle.PER_CLASS)
|
|
class OperationTest{
|
|
|
|
JavaParser parse(String code) throws Exception{
|
|
BufferedReader reader = new BufferedReader(new Reader(){public int read(char[] cbuf, int off, int len) throws IOException{return 0;}public void close() throws IOException {}}) {
|
|
private boolean read = false;
|
|
@Override
|
|
public String readLine() throws IOException{
|
|
if(read) return null;
|
|
read = true;
|
|
return code;
|
|
}
|
|
};
|
|
|
|
JavaParser parser = new JavaParser(reader);
|
|
parser.parse();
|
|
return parser;
|
|
}
|
|
|
|
@Test
|
|
void ifOperation(){
|
|
try {
|
|
JavaParser parser = parse("package be.jeffcheasey88.peeratcode.parser.java; class Test{ void function(){ int i = 0; if(i == 0) { return i; } return i; } }");
|
|
Class clazz = parser.getClazz();
|
|
|
|
clazz.show(0);
|
|
|
|
assertEquals(1, clazz.getChilds().size());
|
|
Function function = (Function) clazz.getChilds().get(0);
|
|
assertEquals(3, function.getChilds().size());
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
|
|
}
|
|
|
|
@Test
|
|
void ifWithNoneOperation(){
|
|
try {
|
|
JavaParser parser = parse("package be.jeffcheasey88.peeratcode.parser.java; class Test{ void function(){ int i = 0; if(i == 0); return i; } }");
|
|
Class clazz = parser.getClazz();
|
|
|
|
clazz.show(0);
|
|
|
|
assertEquals(1, clazz.getChilds().size());
|
|
Function function = (Function) clazz.getChilds().get(0);
|
|
assertEquals(3, function.getChilds().size());
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
|
|
}
|
|
}
|