fix(serialize-xml): correct hasNext for concise tags
ci/woodpecker/push/woodpecker Pipeline was successful Details

This commit is contained in:
Johannes Frohnmeyer 2024-04-13 20:35:26 +02:00
parent 0507254c30
commit 006424fb00
Signed by: Johannes
GPG Key ID: E76429612C2929F4
2 changed files with 34 additions and 1 deletions

View File

@ -185,7 +185,7 @@ public class BaseXmlReader implements Closeable {
if (p == PEEKED_NONE) {
p = doPeek();
}
return p != PEEKED_EOF && p != PEEKED_END_TAG;
return p != PEEKED_EOF && p != PEEKED_END_TAG && p != PEEKED_END_TAG_CONCISE;
}
public XmlToken peek() throws IOException {

View File

@ -135,6 +135,39 @@ public final class BaseXmlReaderTest {
assertThat(reader.hasNext()).isFalse();
}
@Test
public void testReadEmptyArrayWithWhitespace() throws IOException {
BaseXmlReader reader = new BaseXmlReader(reader("<array> </array>"));
assertThat(reader.hasNext()).isTrue();
reader.beginTag();
assertThat(reader.hasNext()).isFalse();
reader.endTag();
assertThat(reader.peek()).isEqualTo(XmlToken.EOF);
assertThat(reader.hasNext()).isFalse();
}
@Test
public void testReadEmptyArrayWithComment() throws IOException {
BaseXmlReader reader = new BaseXmlReader(reader("<array><!-- comment --></array>"));
assertThat(reader.hasNext()).isTrue();
reader.beginTag();
assertThat(reader.hasNext()).isFalse();
reader.endTag();
assertThat(reader.peek()).isEqualTo(XmlToken.EOF);
assertThat(reader.hasNext()).isFalse();
}
@Test
public void testReadConciseEmptyArray() throws IOException {
BaseXmlReader reader = new BaseXmlReader(reader("<array/>"));
assertThat(reader.hasNext()).isTrue();
reader.beginTag();
assertThat(reader.hasNext()).isFalse();
reader.endTag();
assertThat(reader.peek()).isEqualTo(XmlToken.EOF);
assertThat(reader.hasNext()).isFalse();
}
// @Test
// public void testHelloWorld() throws IOException {
// String json =