Skip to content

Commit 5b57711

Browse files
committed
Merge branch 'release/0.0.9'
2 parents d884a58 + 19ec16d commit 5b57711

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+221
-130
lines changed

_build/parent/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<groupId>io.toolisticon.kotlin.generation._</groupId>
77
<artifactId>kotlin-code-generation-root</artifactId>
8-
<version>0.0.8</version>
8+
<version>0.0.9</version>
99
<relativePath>../../pom.xml</relativePath>
1010
</parent>
1111

_build/report-generator/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<groupId>io.toolisticon.kotlin.generation._</groupId>
77
<artifactId>kotlin-code-generation-parent</artifactId>
8-
<version>0.0.8</version>
8+
<version>0.0.9</version>
99
<relativePath>../parent/pom.xml</relativePath>
1010
</parent>
1111

_itest/builder-itest/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<groupId>io.toolisticon.kotlin.generation._</groupId>
77
<artifactId>kotlin-code-generation-itest-root</artifactId>
8-
<version>0.0.8</version>
8+
<version>0.0.9</version>
99
</parent>
1010

1111
<groupId>io.toolisticon.kotlin.generation.itest</groupId>

_itest/builder-itest/src/test/kotlin/DelegateStringListITest.kt

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@ import com.tschuchort.compiletesting.KotlinCompilation
55
import io.toolisticon.kotlin.generation.KotlinCodeGeneration
66
import io.toolisticon.kotlin.generation.itest.KotlinCodeGenerationITestConfig.ROOT_PACKAGE
77
import io.toolisticon.kotlin.generation.spec.toFileSpec
8-
import io.toolisticon.kotlin.generation.test.KotlinCodeGenerationTest
9-
import io.toolisticon.kotlin.generation.test.model.KotlinCompilationCommand
8+
import io.toolisticon.kotlin.generation.test.KotlinCodeGenerationTest.compile
9+
import io.toolisticon.kotlin.generation.test.callPrimaryConstructor
10+
import io.toolisticon.kotlin.generation.test.model.requireOk
1011
import org.assertj.core.api.Assertions.assertThat
1112
import org.jetbrains.kotlin.compiler.plugin.ExperimentalCompilerApi
1213
import org.junit.jupiter.api.Test
1314
import kotlin.reflect.KClass
14-
import kotlin.reflect.full.primaryConstructor
1515
import io.toolisticon.kotlin.generation.test.KotlinCodeGenerationTest.assertThat as compileAssertThat
1616

1717
@Suppress("UNCHECKED_CAST")
@@ -20,21 +20,20 @@ internal class DelegateStringListITest {
2020

2121
@Test
2222
fun `create and use string list`() {
23-
val list = KotlinCodeGeneration.buildDelegateListValueClass(ROOT_PACKAGE, "StringList", String::class) {
23+
val listSpec = KotlinCodeGeneration.buildDelegateListValueClass(ROOT_PACKAGE, "StringList", String::class) {
2424
propertyName("list")
2525
}.toFileSpec()
2626

27-
val result = KotlinCodeGenerationTest.compile(KotlinCompilationCommand(list))
28-
27+
val result = compile(listSpec).requireOk()
2928

3029
compileAssertThat(result).errorMessages().isEmpty()
3130
compileAssertThat(result).hasExitCode(KotlinCompilation.ExitCode.OK)
3231

33-
val klass: KClass<out Any> = result.loadClass(list.className)
32+
val klass: KClass<out Any> = result.loadClass(listSpec.className)
3433

3534
val values = listOf("a", "b", "c")
3635

37-
val instance: List<String> = klass.primaryConstructor!!.call(values) as List<String>
36+
val instance: List<String> = klass.callPrimaryConstructor(values)
3837

3938
assertThat(instance).hasToString("StringList(list=[a, b, c])")
4039
}

_itest/builder-itest/src/test/kotlin/DelegateStringLongMapITest.kt

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@ import com.tschuchort.compiletesting.KotlinCompilation
66
import io.toolisticon.kotlin.generation.KotlinCodeGeneration
77
import io.toolisticon.kotlin.generation.itest.KotlinCodeGenerationITestConfig.ROOT_PACKAGE
88
import io.toolisticon.kotlin.generation.spec.toFileSpec
9-
import io.toolisticon.kotlin.generation.test.KotlinCodeGenerationTest
10-
import io.toolisticon.kotlin.generation.test.model.KotlinCompilationCommand
9+
import io.toolisticon.kotlin.generation.test.KotlinCodeGenerationTest.compile
10+
import io.toolisticon.kotlin.generation.test.callPrimaryConstructor
11+
import io.toolisticon.kotlin.generation.test.model.requireOk
1112
import org.assertj.core.api.Assertions.assertThat
1213
import org.jetbrains.kotlin.compiler.plugin.ExperimentalCompilerApi
1314
import org.junit.jupiter.api.Test
1415
import kotlin.reflect.KClass
15-
import kotlin.reflect.full.primaryConstructor
1616
import io.toolisticon.kotlin.generation.test.KotlinCodeGenerationTest.assertThat as compileAssertThat
1717

1818
@Suppress("UNCHECKED_CAST")
@@ -21,23 +21,23 @@ internal class DelegateStringLongMapITest {
2121

2222
@Test
2323
fun `create and use string long map`() {
24-
val map = KotlinCodeGeneration.buildDelegateMapValueClass(
24+
val mapSpec = KotlinCodeGeneration.buildDelegateMapValueClass(
2525
packageName = ROOT_PACKAGE,
2626
simpleName = "StringLongMap",
2727
valueType = Long::class.asTypeName()
2828
) {
2929
propertyName("map")
3030
}.toFileSpec()
3131

32-
val result = KotlinCodeGenerationTest.compile(KotlinCompilationCommand(map))
32+
val result = compile(mapSpec).requireOk()
3333
compileAssertThat(result).errorMessages().isEmpty()
3434
compileAssertThat(result).hasExitCode(KotlinCompilation.ExitCode.OK)
3535

36-
val klass: KClass<out Any> = result.loadClass(map.className)
36+
val klass: KClass<out Any> = result.loadClass(mapSpec.className)
3737

3838
val values = mapOf("a" to 1, "b" to 2, "c" to 3)
3939

40-
val instance: Map<String, Long> = klass.primaryConstructor!!.call(values) as Map<String, Long>
40+
val instance: Map<String, Long> = klass.callPrimaryConstructor(values)
4141

4242
assertThat(instance).hasToString("StringLongMap(map={a=1, b=2, c=3})")
4343
}
Lines changed: 7 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,17 @@
11
package io.toolisticon.kotlin.generation.itest
22

33
import com.squareup.kotlinpoet.ExperimentalKotlinPoetApi
4-
import com.tschuchort.compiletesting.KotlinCompilation
54
import io.toolisticon.kotlin.generation.KotlinCodeGeneration.buildRuntimeExceptionClass
65
import io.toolisticon.kotlin.generation.itest.KotlinCodeGenerationITestConfig.ROOT_PACKAGE
76
import io.toolisticon.kotlin.generation.spec.toFileSpec
8-
import io.toolisticon.kotlin.generation.test.KotlinCodeGenerationTest
9-
import io.toolisticon.kotlin.generation.test.model.KotlinCompilationCommand
7+
import io.toolisticon.kotlin.generation.test.KotlinCodeGenerationTest.compile
8+
import io.toolisticon.kotlin.generation.test.callPrimaryConstructor
9+
import io.toolisticon.kotlin.generation.test.getFieldValue
10+
import io.toolisticon.kotlin.generation.test.model.requireOk
1011
import org.assertj.core.api.Assertions.assertThat
1112
import org.jetbrains.kotlin.compiler.plugin.ExperimentalCompilerApi
1213
import org.junit.jupiter.api.Test
1314
import kotlin.reflect.KClass
14-
import kotlin.reflect.KProperty1
15-
import kotlin.reflect.full.memberProperties
16-
import kotlin.reflect.full.primaryConstructor
17-
import io.toolisticon.kotlin.generation.test.KotlinCodeGenerationTest.assertThat as compileAssertThat
1815

1916
@OptIn(ExperimentalKotlinPoetApi::class, ExperimentalCompilerApi::class)
2017
internal class DummyExceptionITest {
@@ -28,25 +25,16 @@ internal class DummyExceptionITest {
2825
includeCause()
2926
}.toFileSpec()
3027

31-
32-
val result = KotlinCodeGenerationTest.compile(KotlinCompilationCommand(exceptionFile))
33-
34-
compileAssertThat(result).errorMessages().isEmpty()
35-
compileAssertThat(result).hasExitCode(KotlinCompilation.ExitCode.OK)
28+
val result = compile(exceptionFile).requireOk()
3629

3730
val c: KClass<out Any> = result.loadClass(exceptionFile.className)
3831

3932
val cause = IllegalStateException("foo")
40-
val e: RuntimeException = c.primaryConstructor!!.call(true, "false", cause) as RuntimeException
33+
val e: RuntimeException = c.callPrimaryConstructor(true, "false", cause)
4134

4235
assertThat(e.localizedMessage).isEqualTo("Dummy exception: expected: true, actual: 'false'.")
4336

44-
// TODO try to get value via pure kotlin without falling back to java
45-
val expectedProperty: KProperty1<out Any, *> = c.memberProperties.single { it.name == "expected" }
46-
val field = c.java.getDeclaredField("expected").apply { isAccessible = true }
47-
48-
val expectedValue = field.get(e) as Boolean
49-
37+
val expectedValue: Boolean = e.getFieldValue("expected")
5038
assertThat(expectedValue).isTrue()
5139
}
5240
}

_itest/builder-itest/src/test/kotlin/HelloWorldExampleITest.kt

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
package io.toolisticon.kotlin.generation.itest
32

43
import com.squareup.kotlinpoet.ClassName
@@ -8,7 +7,8 @@ import io.toolisticon.kotlin.generation.KotlinCodeGeneration.buildClass
87
import io.toolisticon.kotlin.generation.KotlinCodeGeneration.buildFile
98
import io.toolisticon.kotlin.generation.KotlinCodeGeneration.buildFun
109
import io.toolisticon.kotlin.generation.test.KotlinCodeGenerationTest
11-
import io.toolisticon.kotlin.generation.test.model.KotlinCompilationCommand
10+
import io.toolisticon.kotlin.generation.test.KotlinCodeGenerationTest.compile
11+
import io.toolisticon.kotlin.generation.test.model.requireOk
1212
import org.assertj.core.api.Assertions.assertThat
1313
import org.jetbrains.kotlin.compiler.plugin.ExperimentalCompilerApi
1414
import org.junit.jupiter.api.Test
@@ -37,9 +37,7 @@ internal class HelloWorldExampleITest {
3737

3838
assertThat(file.packageName).isEqualTo("foo.bar")
3939

40-
val result = KotlinCodeGenerationTest.compile(cmd = KotlinCompilationCommand(fileSpec = file))
41-
42-
println(result)
40+
val result = compile(file).requireOk()
4341

4442
KotlinCodeGenerationTest.assertThat(result).hasExitCode(KotlinCompilation.ExitCode.OK)
4543
}

_itest/builder-itest/src/test/kotlin/KotlinDataClassSpecITest.kt

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
package io.toolisticon.kotlin.generation.itest
32

43
import com.squareup.kotlinpoet.ClassName
@@ -7,12 +6,12 @@ import com.squareup.kotlinpoet.asTypeName
76
import com.tschuchort.compiletesting.KotlinCompilation
87
import io.toolisticon.kotlin.generation.KotlinCodeGeneration.buildDataClass
98
import io.toolisticon.kotlin.generation.spec.toFileSpec
10-
import io.toolisticon.kotlin.generation.test.KotlinCodeGenerationTest
11-
import io.toolisticon.kotlin.generation.test.model.KotlinCompilationCommand
9+
import io.toolisticon.kotlin.generation.test.KotlinCodeGenerationTest.compile
10+
import io.toolisticon.kotlin.generation.test.callPrimaryConstructor
11+
import io.toolisticon.kotlin.generation.test.model.requireOk
1212
import org.assertj.core.api.Assertions.assertThat
1313
import org.jetbrains.kotlin.compiler.plugin.ExperimentalCompilerApi
1414
import org.junit.jupiter.api.Test
15-
import kotlin.reflect.full.primaryConstructor
1615
import io.toolisticon.kotlin.generation.test.KotlinCodeGenerationTest.assertThat as compileAssertThat
1716

1817
@OptIn(ExperimentalKotlinPoetApi::class, ExperimentalCompilerApi::class)
@@ -29,14 +28,13 @@ internal class KotlinDataClassSpecITest {
2928

3029
val file = spec.toFileSpec()
3130

32-
val result = KotlinCodeGenerationTest.compile(KotlinCompilationCommand(file))
31+
val result = compile(file).requireOk()
3332

3433
compileAssertThat(result).errorMessages().isEmpty()
3534
compileAssertThat(result).hasExitCode(KotlinCompilation.ExitCode.OK)
3635

3736
val klass = result.loadClass(className)
38-
assertThat(klass.primaryConstructor!!.call("hello world", 25))
37+
assertThat(klass.callPrimaryConstructor<Any>("hello world", 25))
3938
.hasToString("Bar(name=hello world, age=25)")
4039
}
41-
4240
}

_itest/builder-itest/src/test/kotlin/MyCustomAnnotationSpecITest.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
package io.toolisticon.kotlin.generation.itest
32

43
import com.squareup.kotlinpoet.ClassName
@@ -42,8 +41,8 @@ internal class MyCustomAnnotationSpecITest {
4241

4342
val klass: KClass<out Any> = result.loadClass(name)
4443
assertThat(klass.asClassName()).isEqualTo(name)
45-
assertThat(klass.annotations).hasSize(1)
46-
val annotation: Annotation = klass.annotations[0]
44+
assertThat(klass.java.annotations).hasSize(2) // 2 because Meta is included
45+
val annotation: Annotation = klass.java.annotations[0]
4746
assertThat(annotation).hasToString("@io.toolisticon.kotlin.generation.itest.created.MyCustomAnnotation(\"hello\")")
4847
}
4948
}

_itest/builder-itest/src/test/kotlin/support/GeneratedAnnotationITest.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
21
package io.toolisticon.kotlin.generation.itest.support
32

43
import com.squareup.kotlinpoet.ExperimentalKotlinPoetApi
54
import io.toolisticon.kotlin.generation.KotlinCodeGeneration.buildDataClass
65
import io.toolisticon.kotlin.generation.spec.toFileSpec
76
import io.toolisticon.kotlin.generation.support.GeneratedAnnotation
8-
import io.toolisticon.kotlin.generation.test.KotlinCodeGenerationTest
7+
import io.toolisticon.kotlin.generation.test.KotlinCodeGenerationTest.assertThat
8+
import io.toolisticon.kotlin.generation.test.KotlinCodeGenerationTest.compile
99
import io.toolisticon.kotlin.generation.test.model.KotlinCompilationCommand
1010
import io.toolisticon.kotlin.generation.test.model.KotlinCompilationResult
1111
import org.jetbrains.kotlin.compiler.plugin.ExperimentalCompilerApi
@@ -21,7 +21,7 @@ internal class GeneratedAnnotationITest {
2121
addAnnotation(GeneratedAnnotation())
2222
}.toFileSpec()
2323

24-
val result: KotlinCompilationResult = KotlinCodeGenerationTest.compile(cmd = KotlinCompilationCommand(file))
25-
KotlinCodeGenerationTest.assertThat(result).errorMessages().isEmpty()
24+
val result: KotlinCompilationResult = compile(cmd = KotlinCompilationCommand(file))
25+
assertThat(result).errorMessages().isEmpty()
2626
}
2727
}

0 commit comments

Comments
 (0)