From ed3bc27501def46da77947254fce07c49eadd092 Mon Sep 17 00:00:00 2001 From: Dominic Fox <40790090+distributedleetravis@users.noreply.github.com> Date: Wed, 12 Dec 2018 16:17:20 +0000 Subject: [PATCH] CORDA-2313 Add test for (de-)evolution where new parameter is of unknown type (#4406) --- .../internal/amqp/EvolvabilityTests.kt | 22 ++++++++++++++++++ .../EvolvabilityTests.evolutionWithCarpentry | Bin 0 -> 644 bytes 2 files changed, 22 insertions(+) create mode 100644 serialization/src/test/resources/net/corda/serialization/internal/amqp/EvolvabilityTests.evolutionWithCarpentry 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 0000000000000000000000000000000000000000..00400229b2174caca07e2765ed55677f96230c2e GIT binary patch literal 644 zcmYe!FG@*dWME)uIGO|`85kHZFfcIX0vXHkx3ECZwJblUEHNoFC$pq7B(=DtSOqMSn&RLJw~P6J8WS-dbU09l za0JT%QTBzbX?egPS;$sgQk0pO?&{#+=ma;F_B;0=?qal)@2u6%A NWHf@ya~@=5008HQ$-)2t literal 0 HcmV?d00001