diff --git a/src/test-jdk17/java/com/fasterxml/jackson/dataformat/xml/records/failing/XmlRecordDeser734Test.java b/src/test-jdk17/java/com/fasterxml/jackson/dataformat/xml/records/tofix/XmlRecordDeser735Test.java similarity index 86% rename from src/test-jdk17/java/com/fasterxml/jackson/dataformat/xml/records/failing/XmlRecordDeser734Test.java rename to src/test-jdk17/java/com/fasterxml/jackson/dataformat/xml/records/tofix/XmlRecordDeser735Test.java index be9ffd3b..1c6d9b1d 100644 --- a/src/test-jdk17/java/com/fasterxml/jackson/dataformat/xml/records/failing/XmlRecordDeser734Test.java +++ b/src/test-jdk17/java/com/fasterxml/jackson/dataformat/xml/records/tofix/XmlRecordDeser735Test.java @@ -1,4 +1,4 @@ -package com.fasterxml.jackson.dataformat.xml.records.failing; +package com.fasterxml.jackson.dataformat.xml.records.tofix; import org.junit.jupiter.api.Test; @@ -9,8 +9,8 @@ import static org.junit.jupiter.api.Assertions.*; -// [dataformat-xml#734] -public class XmlRecordDeser734Test extends XmlTestUtil +// [dataformat-xml#735] +public class XmlRecordDeser735Test extends XmlTestUtil { record Amount(@JacksonXmlText String value, @JacksonXmlProperty(isAttribute = true, localName = "Ccy") String currency) {} diff --git a/src/test-jdk17/java/com/fasterxml/jackson/dataformat/xml/records/failing/XmlWrapperRecord517Test.java b/src/test-jdk17/java/com/fasterxml/jackson/dataformat/xml/records/tofix/XmlWrapperRecord517Test.java similarity index 96% rename from src/test-jdk17/java/com/fasterxml/jackson/dataformat/xml/records/failing/XmlWrapperRecord517Test.java rename to src/test-jdk17/java/com/fasterxml/jackson/dataformat/xml/records/tofix/XmlWrapperRecord517Test.java index aa632fe6..efe469eb 100644 --- a/src/test-jdk17/java/com/fasterxml/jackson/dataformat/xml/records/failing/XmlWrapperRecord517Test.java +++ b/src/test-jdk17/java/com/fasterxml/jackson/dataformat/xml/records/tofix/XmlWrapperRecord517Test.java @@ -1,4 +1,4 @@ -package com.fasterxml.jackson.dataformat.xml.records.failing; +package com.fasterxml.jackson.dataformat.xml.records.tofix; import java.util.List; diff --git a/src/test/java/com/fasterxml/jackson/dataformat/xml/deser/XmlClassDeser735Test.java b/src/test/java/com/fasterxml/jackson/dataformat/xml/deser/XmlClassDeser735Test.java new file mode 100644 index 00000000..492f220d --- /dev/null +++ b/src/test/java/com/fasterxml/jackson/dataformat/xml/deser/XmlClassDeser735Test.java @@ -0,0 +1,50 @@ +package com.fasterxml.jackson.dataformat.xml.deser; + +import com.fasterxml.jackson.dataformat.xml.XmlMapper; +import com.fasterxml.jackson.dataformat.xml.XmlTestUtil; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlText; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +// [dataformat-xml#735] +public class XmlClassDeser735Test extends XmlTestUtil +{ + public static class Amount { + @JacksonXmlText + private String value; + + @JacksonXmlProperty(isAttribute = true, localName = "Ccy") + private String currency; + + // Need default constructor for deserialization (failure without it) + public Amount() { + + } + + public Amount(String value, String currency) { + this.value = value; + this.currency = currency; + } + + public String getValue() { + return value; + } + + public String getCurrency() { + return currency; + } + } + + private final String XML = + a2q("1"); + + @Test + public void testDeser() throws Exception { + XmlMapper mapper = new XmlMapper(); + Amount amt = mapper.readValue(XML, Amount.class); + assertEquals("1", amt.value); + assertEquals("EUR", amt.currency); + } +}