CORDA-1497 replace missing validation (#4349)

This commit is contained in:
Dominic Fox
2018-12-04 10:11:07 +00:00
committed by GitHub
parent 9232b3637b
commit c2986ca31d
2 changed files with 45 additions and 7 deletions

View File

@ -51,6 +51,36 @@ class EnumTransformationTests {
}
}
@CordaSerializationTransformRenames(
CordaSerializationTransformRename(from = "P", to = "Q"),
CordaSerializationTransformRename(from = "Q", to = "R")
)
enum class DanglingRenames { A, B, C }
@Test
fun renameCycleDoesNotTerminateInConstant() {
assertFailsWith<InvalidEnumTransformsException> {
EnumTransforms.build(
TransformsAnnotationProcessor.getTransformsSchema(DanglingRenames::class.java),
DanglingRenames::class.java.constants)
}
}
@CordaSerializationTransformRenames(
CordaSerializationTransformRename(from = "P", to = "Q"),
CordaSerializationTransformRename(from = "Q", to = "R")
)
enum class RenamesExisting { Q, R, S }
@Test
fun renamesRenameExistingConstant() {
assertFailsWith<InvalidEnumTransformsException> {
EnumTransforms.build(
TransformsAnnotationProcessor.getTransformsSchema(RenamesExisting::class.java),
RenamesExisting::class.java.constants)
}
}
private val Class<*>.constants: Map<String, Int> get() =
enumConstants.asSequence().mapIndexed { index, constant -> constant.toString() to index }.toMap()
}