From 47091df4f76cb866b3661e11779738041cb2a457 Mon Sep 17 00:00:00 2001 From: Brahim AMAIRI Date: Tue, 29 Oct 2019 12:05:27 +0100 Subject: [PATCH] fix(void element is a simple element) example of void element : Co-authored-by: Brahim Amairi Co-authored-by: Farid Chetouani --- .../atom/core/ExtensionElementAdapter.java | 5 +++-- .../atom/core/ExtensionElementAdapterTest.java | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/main/java/fr/vidal/oss/jaxb/atom/core/ExtensionElementAdapter.java b/src/main/java/fr/vidal/oss/jaxb/atom/core/ExtensionElementAdapter.java index 53d2e1a..0040f1b 100644 --- a/src/main/java/fr/vidal/oss/jaxb/atom/core/ExtensionElementAdapter.java +++ b/src/main/java/fr/vidal/oss/jaxb/atom/core/ExtensionElementAdapter.java @@ -109,8 +109,9 @@ private ExtensionElement extensionElement(Node node) { } private boolean isSimpleElementNode(Node node) { - return node.getChildNodes().getLength() == 1 - && isTextualNode(node.getFirstChild()); + return (node.getChildNodes().getLength() == 1 + && isTextualNode(node.getFirstChild())) + || node.getChildNodes().getLength() == 0; } private boolean isTextualNode(Node node) { diff --git a/src/test/java/fr/vidal/oss/jaxb/atom/core/ExtensionElementAdapterTest.java b/src/test/java/fr/vidal/oss/jaxb/atom/core/ExtensionElementAdapterTest.java index f62b6a7..0406e63 100644 --- a/src/test/java/fr/vidal/oss/jaxb/atom/core/ExtensionElementAdapterTest.java +++ b/src/test/java/fr/vidal/oss/jaxb/atom/core/ExtensionElementAdapterTest.java @@ -87,6 +87,24 @@ public void unmarshal_single_simple_element() throws Exception { .build()); } + @Test + public void unmarshal_single_simple_void_element() throws Exception { + String xml = "\n" + + "\n" + + " \n" + + ""; + + ExtensionElement result = unmarshalElement(xml); + + assertThat(result).isEqualTo(ExtensionElements.simpleElement("element", "") + .withNamespace(ANY_NAMESPACE) + .addAttribute(XMLNS_ATTRIBUTE) + .addAttribute(Attribute.builder("any", "http://foo.bar.net/-/any/") + .withNamespace(XMLNS_NAMESPACE) + .build()) + .build()); + } + @Test public void unmarshal_structured_element_with_single_child() throws Exception { String xml = "\n" +