1+ import com.github.javaparser.ast.expr.AssignExpr
2+ import com.github.javaparser.ast.expr.FieldAccessExpr
3+ import com.github.javaparser.ast.expr.IntegerLiteralExpr
4+ import com.github.javaparser.ast.expr.ThisExpr
5+ import com.github.javaparser.ast.type.PrimitiveType
6+ import com.strumenta.rpgtojava.intermediateast.*
7+ import com.strumenta.rpgtojava.transformations.transformFromIntermediateToJava
8+ import org.junit.jupiter.api.Assertions.assertEquals
9+ import org.junit.jupiter.api.Test
10+ import com.github.javaparser.ast.CompilationUnit as JavaCU
11+
12+ class IntermediateToJavaTest {
13+
14+ @Test
15+ fun simpleGlobalVariable () {
16+ val intermediateProgram = GProgram (" Test" , globalVariables = mutableListOf (GGlobalVariable (" NBR" , GIntegerType )))
17+ val actualJavaCu = transformFromIntermediateToJava(intermediateProgram)
18+ val expectedJavaCu = JavaCU ()
19+ val expectedJavaClass = expectedJavaCu.addClass(" Test" )
20+ expectedJavaClass.addField(PrimitiveType .longType(), " NBR" ).setPrivate(true )
21+ expectedJavaClass.addMethod(" executeProgram" )
22+ assertEquals(expectedJavaCu, actualJavaCu)
23+ }
24+
25+ @Test
26+ fun simpleStatement () {
27+ val intermediateProgram = GProgram (" Test" ,
28+ globalVariables = mutableListOf (GGlobalVariable (" NBR" , GIntegerType )))
29+ intermediateProgram.mainFunction.body.add(GAssignment (GGlobalVariableTarget (intermediateProgram.globalVariables[0 ]), GIntegerLiteral (123L )))
30+ val actualJavaCu = transformFromIntermediateToJava(intermediateProgram)
31+ val expectedJavaCu = JavaCU ()
32+ val expectedJavaClass = expectedJavaCu.addClass(" Test" )
33+ expectedJavaClass.addField(PrimitiveType .longType(), " NBR" ).setPrivate(true )
34+ val executeProgram = expectedJavaClass.addMethod(" executeProgram" )
35+ executeProgram.body.get().addStatement(AssignExpr (FieldAccessExpr (ThisExpr (), " NBR" ), IntegerLiteralExpr (" 123" ), AssignExpr .Operator .ASSIGN ))
36+ assertEquals(expectedJavaCu, actualJavaCu)
37+ }
38+
39+ @Test
40+ fun emptySupportFunction () {
41+ val intermediateProgram = GProgram (" Test" , otherFunctions = mutableListOf (GFunction (" FIB" )))
42+ val actualJavaCu = transformFromIntermediateToJava(intermediateProgram)
43+ val expectedJavaCu = JavaCU ()
44+ val expectedJavaClass = expectedJavaCu.addClass(" Test" )
45+ expectedJavaClass.addMethod(" executeProgram" )
46+ expectedJavaClass.addMethod(" FIB" )
47+ assertEquals(expectedJavaCu, actualJavaCu)
48+ }
49+
50+ }
0 commit comments