Skip to content

Commit 93a1e9f

Browse files
committed
Add Kotlin usage tests
1 parent 3b9721c commit 93a1e9f

2 files changed

Lines changed: 69 additions & 0 deletions

File tree

build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
plugins {
22
id 'java'
3+
id 'org.jetbrains.kotlin.jvm' version '2.3.20'
34
id 'signing'
45
id 'maven-publish'
56
}
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
package com.ladybugdb
2+
3+
import org.junit.jupiter.api.Assertions.assertEquals
4+
import org.junit.jupiter.api.Assertions.assertFalse
5+
import org.junit.jupiter.api.Assertions.assertTrue
6+
import org.junit.jupiter.api.Test
7+
8+
class KotlinUsageTest : TestBase() {
9+
@Test
10+
fun queryResultCanBeReadFromKotlin() {
11+
val result = TestHelper.getConnection().query("MATCH (p:person) RETURN p.fName ORDER BY p.ID LIMIT 2")
12+
try {
13+
assertTrue(result.isSuccess)
14+
assertEquals(1, result.numColumns)
15+
assertEquals("p.fName", result.getColumnName(0))
16+
17+
val names = mutableListOf<String>()
18+
while (result.hasNext()) {
19+
val tuple = result.next
20+
names += tuple.getValue(0).getValue<String>()
21+
}
22+
23+
assertEquals(listOf("Alice", "Bob"), names)
24+
} finally {
25+
result.close()
26+
}
27+
}
28+
29+
@Test
30+
fun preparedStatementCanBeExecutedFromKotlin() {
31+
val statement = TestHelper.getConnection()
32+
.prepare("MATCH (p:person) WHERE p.fName = \$name RETURN COUNT(*)")
33+
try {
34+
assertTrue(statement.isSuccess)
35+
36+
val params = mapOf("name" to Value("Alice"))
37+
val result = TestHelper.getConnection().execute(statement, params)
38+
try {
39+
assertTrue(result.isSuccess)
40+
assertTrue(result.hasNext())
41+
assertEquals(1L, result.next.getValue(0).getValue<Long>())
42+
} finally {
43+
params.values.forEach { it.close() }
44+
result.close()
45+
}
46+
} finally {
47+
statement.close()
48+
}
49+
}
50+
51+
@Test
52+
fun valuesAndDataTypesAreUsableFromKotlin() {
53+
val value = Value(42L)
54+
try {
55+
assertFalse(value.isNull)
56+
assertEquals(42L, value.getValue<Long>())
57+
58+
val dataType = value.dataType
59+
try {
60+
assertEquals(DataTypeID.INT64, dataType.id)
61+
} finally {
62+
dataType.close()
63+
}
64+
} finally {
65+
value.close()
66+
}
67+
}
68+
}

0 commit comments

Comments
 (0)