Skip to content

Commit 27352ae

Browse files
committed
revisit tests
1 parent f099a03 commit 27352ae

2 files changed

Lines changed: 65 additions & 7 deletions

File tree

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
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+
}
Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,32 @@
11
import com.strumenta.kolasu.parsing.toStream
22
import com.strumenta.rpgtojava.intermediateast.*
33
import com.strumenta.rpgtojava.transformRpgToIntermediate
4-
import com.strumenta.rpgtojava.transpileRpgToJava
5-
import org.junit.jupiter.api.Assertions
64
import org.junit.jupiter.api.Test
75
import org.junit.jupiter.api.Assertions.*
86

97
class RpgToIntermediateTest {
108

119
@Test
1210
fun simpleGlobalVariable() {
13-
val program = transformRpgToIntermediate(""" D NBR S 8 0""".toStream(), "Test")
14-
assertEquals(GProgram("Test", globalVariables = mutableListOf(GGlobalVariable("NBR", GIntegerType))), program)
11+
val actualGProgram = transformRpgToIntermediate(""" D NBR S 8 0""".toStream(), "Test")
12+
assertEquals(GProgram("Test", globalVariables = mutableListOf(GGlobalVariable("NBR", GIntegerType))), actualGProgram)
1513
}
1614

1715
@Test
18-
fun simpleFunctions() {
19-
val program = transformRpgToIntermediate(""" C FIB BEGSR
16+
fun simpleStatement() {
17+
val actualGProgram = transformRpgToIntermediate(""" D NBR S 8 0
18+
C EVAL NBR = 123""".toStream(), "Test")
19+
val expectedGProgram = GProgram("Test",
20+
globalVariables = mutableListOf(GGlobalVariable("NBR", GIntegerType)))
21+
expectedGProgram.mainFunction.body.add(GAssignment(GGlobalVariableTarget(expectedGProgram.globalVariables[0]), GIntegerLiteral(123L)))
22+
assertEquals(expectedGProgram, actualGProgram)
23+
}
24+
25+
@Test
26+
fun emptySupportFunction() {
27+
val actualGProgram = transformRpgToIntermediate(""" C FIB BEGSR
2028
C ENDSR""".toStream(), "Test")
21-
assertEquals(GProgram("Test", otherFunctions = mutableListOf(GFunction("FIB"))), program)
29+
assertEquals(GProgram("Test", otherFunctions = mutableListOf(GFunction("FIB"))), actualGProgram)
2230
}
2331

2432
}

0 commit comments

Comments
 (0)