Skip to content

Commit d18f111

Browse files
committed
Add a test for partition key rename
1 parent 15df5a1 commit d18f111

File tree

2 files changed

+40
-0
lines changed

2 files changed

+40
-0
lines changed

hll/dynamodb-mapper/dynamodb-mapper-schema-generator-plugin/src/test/kotlin/aws/sdk/kotlin/hll/dynamodbmapper/plugins/SchemaGeneratorPluginTest.kt

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -552,4 +552,28 @@ class SchemaGeneratorPluginTest {
552552
val testResult = runner.withArguments("test").build()
553553
assertContains(setOf(TaskOutcome.SUCCESS, TaskOutcome.UP_TO_DATE), testResult.task(":test")?.outcome)
554554
}
555+
556+
@Test
557+
fun testRenamedPartitionKey() {
558+
createClassFile("RenamedPartitionKey")
559+
560+
val result = runner.build()
561+
assertContains(setOf(TaskOutcome.SUCCESS, TaskOutcome.UP_TO_DATE), result.task(":build")?.outcome)
562+
563+
val schemaFile = File(testProjectDir, "build/generated/ksp/main/kotlin/org/example/dynamodbmapper/generatedschemas/RenamedPartitionKeySchema.kt")
564+
assertTrue(schemaFile.exists())
565+
566+
val schemaContents = schemaFile.readText()
567+
568+
// Schema should use the renamed partition key
569+
assertContains(
570+
schemaContents,
571+
"""
572+
object RenamedPartitionKeySchema : ItemSchema.PartitionKey<RenamedPartitionKey, Int> {
573+
override val converter : RenamedPartitionKeyConverter = RenamedPartitionKeyConverter
574+
override val partitionKey: KeySpec<Number> = aws.sdk.kotlin.hll.dynamodbmapper.items.KeySpec.Number("user_id")
575+
}
576+
""".trimIndent(),
577+
)
578+
}
555579
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package org.example
2+
3+
import aws.sdk.kotlin.hll.dynamodbmapper.DynamoDbAttribute
4+
import aws.sdk.kotlin.hll.dynamodbmapper.DynamoDbItem
5+
import aws.sdk.kotlin.hll.dynamodbmapper.DynamoDbPartitionKey
6+
7+
@DynamoDbItem
8+
public data class RenamedPartitionKey(
9+
@DynamoDbPartitionKey
10+
@DynamoDbAttribute("user_id")
11+
var id: Int,
12+
13+
@DynamoDbAttribute("fName") var givenName: String,
14+
@DynamoDbAttribute("lName") var surname: String,
15+
var age: Int,
16+
)

0 commit comments

Comments
 (0)