63 lines
1.7 KiB
Kotlin
63 lines
1.7 KiB
Kotlin
import kotlinx.coroutines.test.runTest
|
|
import net.sergeych.lyng.eval
|
|
import kotlin.test.Test
|
|
|
|
class OOTest {
|
|
@Test
|
|
fun testClassProps() = runTest {
|
|
eval("""
|
|
import lyng.time
|
|
|
|
class Point(x,y) {
|
|
static val origin = Point(0,0)
|
|
static var center = origin
|
|
}
|
|
assertEquals(Point(0,0), Point.origin)
|
|
assertEquals(Point(0,0), Point.center)
|
|
Point.center = Point(1,2)
|
|
assertEquals(Point(0,0), Point.origin)
|
|
assertEquals(Point(1,2), Point.center)
|
|
|
|
""".trimIndent())
|
|
}
|
|
@Test
|
|
fun testClassMethods() = runTest {
|
|
eval("""
|
|
import lyng.time
|
|
|
|
class Point(x,y) {
|
|
private static var data = null
|
|
|
|
static fun getData() { data }
|
|
static fun setData(value) {
|
|
data = value
|
|
callFrom()
|
|
}
|
|
static fun callFrom() {
|
|
data = data + "!"
|
|
}
|
|
}
|
|
assertEquals(Point(0,0), Point(0,0) )
|
|
assertEquals(null, Point.getData() )
|
|
Point.setData("foo")
|
|
assertEquals( "foo!", Point.getData() )
|
|
""".trimIndent())
|
|
}
|
|
|
|
// @Test
|
|
fun testDynamic() = runTest {
|
|
eval("""
|
|
println("0")
|
|
class DynamicTest : Dynamic {
|
|
|
|
fun getDynamic(name) {
|
|
if (name == "foo") "bar" else null
|
|
}
|
|
}
|
|
println("1")
|
|
val d = DynamicTest()
|
|
println(d)
|
|
println("2")
|
|
""".trimIndent())
|
|
}
|
|
} |