@Override
    public GenericRecordBuilder newRecordBuilder() {
        return new AvroRecordBuilderImpl(this);
    }
@Test
    public void testDecodeWithMultiVersioningSupport() {
        MultiVersionSchemaInfoProvider provider = mock(MultiVersionSchemaInfoProvider.class);
        readerSchema.setSchemaInfoProvider(provider);
        when(provider.getSchemaByVersion(any(byte[].class)))
            .thenReturn(CompletableFuture.completedFuture(writerSchema.getSchemaInfo()));
        GenericRecord dataForWriter = writerSchema.newRecordBuilder()
            .set("field1", SchemaTestUtils.TEST_MULTI_VERSION_SCHEMA_STRING)
            .set("field3", 0)
            .build();
        GenericRecord record = readerSchema.decode(writerSchema.encode(dataForWriter), new byte[10]);
        Assert.assertEquals(SchemaTestUtils.TEST_MULTI_VERSION_SCHEMA_STRING, record.getField("field1"));
        Assert.assertEquals(0, record.getField("field3"));
        Assert.assertEquals(SchemaTestUtils.TEST_MULTI_VERSION_SCHEMA_DEFAULT_STRING, record.getField("fieldUnableNull"));
    }