Skip to content

Commit 8ec822c

Browse files
committed
stleary#748 - PR comments - follow convention of configuration builder.
1 parent c05d705 commit 8ec822c

2 files changed

Lines changed: 27 additions & 9 deletions

File tree

src/main/java/org/json/XMLParserConfiguration.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -320,8 +320,9 @@ public XMLParserConfiguration withMaxNestingDepth(int maxNestingDepth) {
320320
* @return same instance of configuration with empty tag config updated
321321
*/
322322
public XMLParserConfiguration withCloseEmptyTag(boolean closeEmptyTag){
323-
this.closeEmptyTag = closeEmptyTag;
324-
return this;
323+
XMLParserConfiguration clonedConfiguration = this.clone();
324+
clonedConfiguration.closeEmptyTag = closeEmptyTag;
325+
return clonedConfiguration;
325326
}
326327

327328
public boolean isCloseEmptyTag() {

src/test/java/org/json/junit/XMLConfigurationTest.java

Lines changed: 24 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,6 @@
44
Public Domain.
55
*/
66

7-
import static org.junit.Assert.assertEquals;
8-
import static org.junit.Assert.assertNotEquals;
9-
import static org.junit.Assert.assertTrue;
10-
import static org.junit.Assert.fail;
11-
127
import java.io.File;
138
import java.io.FileReader;
149
import java.io.FileWriter;
@@ -27,6 +22,8 @@
2722
import org.junit.Test;
2823
import org.junit.rules.TemporaryFolder;
2924

25+
import static org.junit.Assert.*;
26+
3027

3128
/**
3229
* Tests for JSON-Java XML.java with XMLParserConfiguration.java
@@ -564,8 +561,28 @@ public void shouldHandleEmptyNodeValue()
564561
inputJSON.put("Emptyness", "");
565562
String expectedXmlWithoutExplicitEndTag = "<Emptyness/>";
566563
String expectedXmlWithExplicitEndTag = "<Emptyness></Emptyness>";
567-
assertEquals(expectedXmlWithoutExplicitEndTag, XML.toString(inputJSON, null, new XMLParserConfiguration().withCloseEmptyTag(false)));
568-
assertEquals(expectedXmlWithExplicitEndTag, XML.toString(inputJSON, null, new XMLParserConfiguration().withCloseEmptyTag(true)));
564+
assertEquals(expectedXmlWithoutExplicitEndTag, XML.toString(inputJSON, null,
565+
new XMLParserConfiguration().withCloseEmptyTag(false)));
566+
assertEquals(expectedXmlWithExplicitEndTag, XML.toString(inputJSON, null,
567+
new XMLParserConfiguration().withCloseEmptyTag(true)));
568+
}
569+
570+
@Test
571+
public void shouldKeepConfigurationIntactAndUpdateCloseEmptyTagChoice()
572+
{
573+
XMLParserConfiguration keepStrings = XMLParserConfiguration.KEEP_STRINGS;
574+
XMLParserConfiguration keepStringsAndCloseEmptyTag = keepStrings.withCloseEmptyTag(true);
575+
XMLParserConfiguration keepDigits = keepStringsAndCloseEmptyTag.withKeepStrings(false);
576+
XMLParserConfiguration keepDigitsAndNoCloseEmptyTag = keepDigits.withCloseEmptyTag(false);
577+
assertTrue(keepStrings.isKeepStrings());
578+
assertFalse(keepStrings.isCloseEmptyTag());
579+
assertTrue(keepStringsAndCloseEmptyTag.isKeepStrings());
580+
assertTrue(keepStringsAndCloseEmptyTag.isCloseEmptyTag());
581+
assertFalse(keepDigits.isKeepStrings());
582+
assertTrue(keepDigits.isCloseEmptyTag());
583+
assertFalse(keepDigitsAndNoCloseEmptyTag.isKeepStrings());
584+
assertFalse(keepDigitsAndNoCloseEmptyTag.isCloseEmptyTag());
585+
569586
}
570587

571588
/**

0 commit comments

Comments
 (0)