From 02e2ff955954ffcecffc150f91058ada2e1a3e32 Mon Sep 17 00:00:00 2001 From: Tatu Saloranta Date: Wed, 5 Jun 2019 20:40:38 -0700 Subject: [PATCH] Add failing test for #164 --- .../jackson/dataformat/avro/AvroMapper.java | 1 - .../avro/failing/POJOEvolution164Test.java | 58 +++++++++++++++++++ 2 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 avro/src/test/java/com/fasterxml/jackson/dataformat/avro/failing/POJOEvolution164Test.java diff --git a/avro/src/main/java/com/fasterxml/jackson/dataformat/avro/AvroMapper.java b/avro/src/main/java/com/fasterxml/jackson/dataformat/avro/AvroMapper.java index 9e439a722..1cdfd2f26 100644 --- a/avro/src/main/java/com/fasterxml/jackson/dataformat/avro/AvroMapper.java +++ b/avro/src/main/java/com/fasterxml/jackson/dataformat/avro/AvroMapper.java @@ -147,7 +147,6 @@ public static AvroMapper.Builder xmlBuilder() { /** * @since 2.10 */ - @SuppressWarnings("unchecked") public static AvroMapper.Builder builder() { return new AvroMapper.Builder(new AvroMapper()); } diff --git a/avro/src/test/java/com/fasterxml/jackson/dataformat/avro/failing/POJOEvolution164Test.java b/avro/src/test/java/com/fasterxml/jackson/dataformat/avro/failing/POJOEvolution164Test.java new file mode 100644 index 000000000..9633304dd --- /dev/null +++ b/avro/src/test/java/com/fasterxml/jackson/dataformat/avro/failing/POJOEvolution164Test.java @@ -0,0 +1,58 @@ +package com.fasterxml.jackson.dataformat.avro.failing; + +import com.fasterxml.jackson.dataformat.avro.AvroMapper; +import com.fasterxml.jackson.dataformat.avro.AvroSchema; +import com.fasterxml.jackson.dataformat.avro.AvroTestBase; + +public class POJOEvolution164Test extends AvroTestBase +{ + static class MyClass { + public String stringField; + public long longField; + } + + private final AvroMapper MAPPER = getMapper(); + + public void testBase() throws Exception + { + final String WRITER_SCHEMA_SRC = "{\n" + + " \"type\": \"record\",\n" + + " \"name\": \"MyClass\",\n" + + " \"fields\": [\n" + + " { \"name\": \"longField\", \"type\": \"long\"\n },\n" + + " { \"name\": \"stringField\",\n" + + " \"type\": [\n" + + " \"null\",\n" + + " \"string\"\n" + + " ]\n" + + " }\n" + + " ]\n" + + "}"; + final String READER_SCHEMA_SRC = "{\n" + + " \"type\": \"record\",\n" + + " \"name\": \"MyClass\",\n" + + " \"fields\": [\n" + + " {\"name\": \"stringField\",\n" + + " \"type\": [\n" + + " \"null\",\n" + + " \"string\"\n" + + " ]\n" + + " }\n" + + " ]\n" + + "}"; + + final AvroSchema readerSchema = MAPPER.schemaFrom(READER_SCHEMA_SRC); + final AvroSchema writerSchema = MAPPER.schemaFrom(WRITER_SCHEMA_SRC); + + MyClass aClass = new MyClass(); + aClass.stringField = "String value"; + aClass.longField = 42; + byte[] avro = MAPPER.writer() + .with(writerSchema) + .writeValueAsBytes(aClass); + MyClass result = MAPPER.readerFor(MyClass.class) + .with(readerSchema) + .readValue(avro); + assertEquals(aClass.stringField, result.stringField); + } +}