Konsist can be used to guard the consistency of classes related to the [Kotlin Serialization](https://kotlinlang. org/docs/serialization.html) library.
@Test
fun `classes annotated with 'Serializable' have all properties annotated with 'SerialName'`() {
Konsist
.scopeFromProject()
.classes()
.withAnnotationOf(Serializable::class)
.properties()
.assertTrue {
it.hasAnnotationOf(SerialName::class)
}
}
@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) }
}
@Test
fun `all models are serializable`() {
Konsist
.scopeFromPackage("com.myapp.model..")
.classes()
.assertTrue {
it.hasAnnotationOf(Serializable::class)
}
}