} else if (compatibility.isCompatibleWithReconfiguredSerializer()) { hasReconfiguredNestedSerializers = true; reconfiguredNestedSerializers[i] = compatibility.getReconfiguredSerializer(); } else if (compatibility.isCompatibleAsIs()) { reconfiguredNestedSerializers[i] = newNestedSerializers[i];
@Test public void testCompatibleWithReconfiguredSerializerPrecedence() throws IOException { final String OUTER_CONFIG = "outer-config"; TypeSerializer<?>[] testNestedSerializers = { new NestedSerializer(TargetCompatibility.COMPATIBLE_AS_IS), new NestedSerializer(TargetCompatibility.COMPATIBLE_WITH_RECONFIGURED_SERIALIZER), new NestedSerializer(TargetCompatibility.COMPATIBLE_AS_IS), }; TypeSerializerSchemaCompatibility<String> compatibility = snapshotCompositeSerializerAndGetSchemaCompatibilityAfterRestore( testNestedSerializers, OUTER_CONFIG, OUTER_CONFIG); Assert.assertTrue(compatibility.isCompatibleWithReconfiguredSerializer()); TestCompositeTypeSerializer reconfiguredSerializer = (TestCompositeTypeSerializer) compatibility.getReconfiguredSerializer(); TypeSerializer<?>[] reconfiguredNestedSerializers = reconfiguredSerializer.getNestedSerializers(); // nested serializer at index 1 should strictly be a ReconfiguredNestedSerializer Assert.assertTrue(reconfiguredNestedSerializers[0].getClass() == NestedSerializer.class); Assert.assertTrue(reconfiguredNestedSerializers[1].getClass() == ReconfiguredNestedSerializer.class); Assert.assertTrue(reconfiguredNestedSerializers[2].getClass() == NestedSerializer.class); }