Kotlin Serialization Snippets
Konsist can be used to guard the consistency of classes related to the [Kotlin Serialization](https://kotlinlang. org/docs/serialization.html) library.
1. Classes Annotated With Serializable Have All Properties Annotated With SerialName
Serializable Have All Properties Annotated With SerialName@Test
fun `classes annotated with 'Serializable' have all properties annotated with 'SerialName'`() {
Konsist
.scopeFromProject()
.classes()
.withAnnotationOf(Serializable::class)
.properties()
.assertTrue {
it.hasAnnotationOf(SerialName::class)
}
}2. Enum Classes Annotated With Serializable Have All Enum Constants Annotated With SerialName
Serializable Have All Enum Constants Annotated With SerialName@Test
fun `enum classes annotated with 'Serializable' have all enum constants annotated with 'SerialName'`() {
Konsist.scopeFromProject()
.classes()
.withEnumModifier()
.withAnnotationOf(Serializable::class)
.enumConstants
.assertTrue { it.hasAnnotationOf(SerialName::class) }
}3. All Models Are Serializable
@Test
fun `all models are serializable`() {
Konsist
.scopeFromPackage("com.myapp.model..")
.classes()
.assertTrue {
it.hasAnnotationOf(Serializable::class)
}
}Last updated