diff --git a/serialization/src/test/kotlin/net/corda/serialization/internal/amqp/EvolvabilityTests.kt b/serialization/src/test/kotlin/net/corda/serialization/internal/amqp/EvolvabilityTests.kt index 23b8b3e10b..288a220281 100644 --- a/serialization/src/test/kotlin/net/corda/serialization/internal/amqp/EvolvabilityTests.kt +++ b/serialization/src/test/kotlin/net/corda/serialization/internal/amqp/EvolvabilityTests.kt @@ -689,4 +689,26 @@ class EvolvabilityTests { assertEquals(4, deserializedC.d) assertEquals(5, deserializedC.e) } + + // Class as it was serialized, with additional enum field. + // enum class NewEnum { ONE, TWO, BUCKLE_MY_SHOE } + // data class Evolved(val fnord: String, val newEnum: NewEnum) + + // Class before evolution + data class Evolved(val fnord: String) + + @Test + fun evolutionWithCarpentry() { + val resource = "EvolvabilityTests.evolutionWithCarpentry" + val sf = testDefaultFactory() + // Uncomment to recreate + // File(URI("$localPath/$resource")).writeBytes(SerializationOutput(sf).serialize(Evolved("dronf", NewEnum.BUCKLE_MY_SHOE)).bytes) + + val url = EvolvabilityTests::class.java.getResource(resource) + + val sc2 = url.readBytes() + val deserialized = DeserializationInput(sf).deserialize(SerializedBytes(sc2)) + + assertEquals("dronf", deserialized.fnord) + } } diff --git a/serialization/src/test/resources/net/corda/serialization/internal/amqp/EvolvabilityTests.evolutionWithCarpentry b/serialization/src/test/resources/net/corda/serialization/internal/amqp/EvolvabilityTests.evolutionWithCarpentry new file mode 100644 index 0000000000..00400229b2 Binary files /dev/null and b/serialization/src/test/resources/net/corda/serialization/internal/amqp/EvolvabilityTests.evolutionWithCarpentry differ