11/*
22 * The MIT License (MIT)
33 *
4- * Copyright 2015-2024 Valentyn Kolesnikov
4+ * Copyright 2015-2025 Valentyn Kolesnikov
55 *
66 * Permission is hereby granted, free of charge, to any person obtaining a copy
77 * of this software and associated documentation files (the "Software"), to deal
@@ -411,9 +411,9 @@ void set() {
411411 assertEquals (
412412 "d" ,
413413 U .<String >set (
414- (Map <String , Object >) U .fromJson ("{\" a\" :[{\" b\" :{\" c\" :\" d\" }}]}" ),
415- "a[0].b.c" ,
416- "e" ));
414+ (Map <String , Object >) U .fromJson ("{\" a\" :[{\" b\" :{\" c\" :\" d\" }}]}" ),
415+ "a[0].b.c" ,
416+ "e" ));
417417 assertEquals (
418418 "{b={c=d}}" ,
419419 U .set (
@@ -615,24 +615,25 @@ void fetchGet() {
615615 "https://support.oneskyapp.com/hc/en-us/article_attachments/202761627/example_1.json" );
616616 result .json ();
617617 result .jsonMap ();
618- assertEquals ("{ \n "
619- + " \" fruit \" : \" Apple \" , \n "
620- + " \" size \" : \" Large \" ,\n "
621- + " \" color \" : \" Red \" \n "
622- + "}" ,
623- result . text ());
624- assertEquals ( "Apple" ,
625- U .get ((Map <String , Object >) result .json (), "fruit" ));
618+ assertEquals (
619+ "{ \n "
620+ + " \" fruit \" : \" Apple \" ,\n "
621+ + " \" size \" : \" Large \" , \n "
622+ + " \" color \" : \" Red \" \n "
623+ + "}" ,
624+ result . text ());
625+ assertEquals ( "Apple" , U .get ((Map <String , Object >) result .json (), "fruit" ));
626626 U .Chain <?> resultChain =
627627 U .chain (
628628 "https://support.oneskyapp.com/hc/en-us/article_attachments/202761627/example_1.json" )
629629 .fetch ();
630- assertEquals ("{\n "
631- + " \" fruit\" : \" Apple\" ,\n "
632- + " \" size\" : \" Large\" ,\n "
633- + " \" color\" : \" Red\" \n "
634- + "}" ,
635- resultChain .item ());
630+ assertEquals (
631+ "{\n "
632+ + " \" fruit\" : \" Apple\" ,\n "
633+ + " \" size\" : \" Large\" ,\n "
634+ + " \" color\" : \" Red\" \n "
635+ + "}" ,
636+ resultChain .item ());
636637 U .chain (
637638 "https://support.oneskyapp.com/hc/en-us/article_attachments/202761627/example_1.json" )
638639 .fetch ();
@@ -665,12 +666,13 @@ void fetchGetWithTimeouts() {
665666 "https://support.oneskyapp.com/hc/en-us/article_attachments/202761627/example_1.json" ,
666667 30000 ,
667668 30000 );
668- assertEquals ("{\n "
669- + " \" fruit\" : \" Apple\" ,\n "
670- + " \" size\" : \" Large\" ,\n "
671- + " \" color\" : \" Red\" \n "
672- + "}" ,
673- result .text ());
669+ assertEquals (
670+ "{\n "
671+ + " \" fruit\" : \" Apple\" ,\n "
672+ + " \" size\" : \" Large\" ,\n "
673+ + " \" color\" : \" Red\" \n "
674+ + "}" ,
675+ result .text ());
674676 }
675677
676678 @ Test
@@ -730,7 +732,7 @@ void fetchPut() {
730732 + " \" fireBreath\" : 10"
731733 + " }"
732734 + "}" );
733- assertEquals (403 , result .getStatus ());
735+ assertEquals (403 , result .getStatus ());
734736 U .FetchResponse result2 =
735737 U .fetch (
736738 "https://support.oneskyapp.com/hc/en-us/article_attachments/202761627/example_1.json" ,
@@ -760,13 +762,15 @@ void fetchPut() {
760762 + " \" fireBreath\" : 10"
761763 + " }"
762764 + "}" );
763- assertEquals ("<html>\n "
764- + "<head><title>301 Moved Permanently</title></head>\n "
765- + "<body>\n "
766- + "<center><h1>301 Moved Permanently</h1></center>\n "
767- + "<hr><center>cloudflare</center>\n "
768- + "</body>\n "
769- + "</html>\n " , resultChain .item ().replace ("\r \n " , "\n " ));
765+ assertEquals (
766+ "<html>\n "
767+ + "<head><title>301 Moved Permanently</title></head>\n "
768+ + "<body>\n "
769+ + "<center><h1>301 Moved Permanently</h1></center>\n "
770+ + "<hr><center>cloudflare</center>\n "
771+ + "</body>\n "
772+ + "</html>\n " ,
773+ resultChain .item ().replace ("\r \n " , "\n " ));
770774 }
771775
772776 @ Test
@@ -1029,15 +1033,15 @@ void xmpToJson4() {
10291033
10301034 @ Test
10311035 void xmpToJson5 () {
1032- assertEquals ("{\n "
1036+ assertEquals (
1037+ "{\n "
10331038 + " \" Comment\" : {\n "
10341039 + " \" -stringValue\" : \" ============================\" ,\n "
10351040 + " \" -self-closing\" : \" true\" \n "
10361041 + " },\n "
10371042 + " \" #omit-xml-declaration\" : \" yes\" \n "
10381043 + "}" ,
1039- U .xmlToJson (
1040- "<Comment stringValue=\" ============================\" />" ));
1044+ U .xmlToJson ("<Comment stringValue=\" ============================\" />" ));
10411045 }
10421046
10431047 @ Test
@@ -1054,15 +1058,13 @@ void xmlToJsonMinimum() {
10541058 + "}" ,
10551059 U .xmlToJsonMinimum ("<root><element>1</element><element>2</element><a/></root>" ));
10561060 assertEquals (
1057- "[\n "
1058- + " \" a\" ,\n "
1059- + " \" b\" \n "
1060- + "]" ,
1061- U .xmlToJsonMinimum ("<?xml version=\" 1.0\" encoding=\" UTF-8\" ?>\n "
1062- + "<root>\n "
1063- + " <element>a</element>\n "
1064- + " <element>b</element>\n "
1065- + "</root>" ));
1061+ "[\n " + " \" a\" ,\n " + " \" b\" \n " + "]" ,
1062+ U .xmlToJsonMinimum (
1063+ "<?xml version=\" 1.0\" encoding=\" UTF-8\" ?>\n "
1064+ + "<root>\n "
1065+ + " <element>a</element>\n "
1066+ + " <element>b</element>\n "
1067+ + "</root>" ));
10661068 }
10671069
10681070 @ Test
@@ -1104,6 +1106,66 @@ void xmlOrJsonToXml() {
11041106 assertEquals ("" , U .xmlOrJsonToXml ("" ));
11051107 }
11061108
1109+ @ Test
1110+ void mergeXmlsOrJsonsToJson () {
1111+ assertEquals (
1112+ "{\n "
1113+ + " \" a\" : {\n "
1114+ + " \" -self-closing\" : \" true\" \n "
1115+ + " },\n "
1116+ + " \" #omit-xml-declaration\" : \" yes\" \n "
1117+ + "}" ,
1118+ U .mergeXmlsOrJsonsToJson (List .of ("<a/>" )));
1119+ assertEquals (
1120+ "{\n "
1121+ + " \" a\" : {\n "
1122+ + " \" -self-closing\" : \" true\" \n "
1123+ + " },\n "
1124+ + " \" #omit-xml-declaration\" : \" yes\" ,\n "
1125+ + " \" b\" : {\n "
1126+ + " \" -self-closing\" : \" true\" \n "
1127+ + " }\n "
1128+ + "}" ,
1129+ U .mergeXmlsOrJsonsToJson (List .of ("<a/>" , "<b/>" )));
1130+ assertEquals (
1131+ "{\n "
1132+ + " \" value\" : [\n "
1133+ + " ]\n "
1134+ + "}" ,
1135+ U .mergeXmlsOrJsonsToJson (
1136+ List .of ("<?xml version=\" 1.0\" encoding=\" UTF-8\" ?>\n "
1137+ + "<root empty-array=\" true\" ></root>" )));
1138+ assertEquals ("{\n \" a\" : 1\n }" , U .mergeXmlsOrJsonsToJson (List .of ("{\" a\" :1}" )));
1139+ assertEquals ("{\n "
1140+ + " \" value\" : [\n "
1141+ + " ]\n "
1142+ + "}" , U .mergeXmlsOrJsonsToJson (List .of ("[]" )));
1143+ assertEquals ("" , U .mergeXmlsOrJsonsToJson (List .of ("" )));
1144+ }
1145+
1146+ @ Test
1147+ void mergeXmlsOrJsonsToXml () {
1148+ assertEquals ("<a/>" , U .mergeXmlsOrJsonsToXml (List .of ("<a/>" )));
1149+ assertEquals ("<root>\n "
1150+ + " <a/>\n "
1151+ + " <b/>\n "
1152+ + "</root>" , U .mergeXmlsOrJsonsToXml (List .of ("<a/>" , "<b/>" )));
1153+ assertEquals (
1154+ "<?xml version=\" 1.0\" encoding=\" UTF-8\" ?>\n "
1155+ + "<value empty-array=\" true\" ></value>" ,
1156+ U .mergeXmlsOrJsonsToXml (
1157+ List .of ("<?xml version=\" 1.0\" encoding=\" UTF-8\" ?>\n "
1158+ + "<root empty-array=\" true\" ></root>" )));
1159+ assertEquals (
1160+ "<?xml version=\" 1.0\" encoding=\" UTF-8\" ?>\n <a number=\" true\" >1</a>" ,
1161+ U .mergeXmlsOrJsonsToXml (List .of ("{\" a\" :1}" )));
1162+ assertEquals (
1163+ "<?xml version=\" 1.0\" encoding=\" UTF-8\" ?>\n "
1164+ + "<value empty-array=\" true\" ></value>" ,
1165+ U .mergeXmlsOrJsonsToXml (List .of ("[]" )));
1166+ assertEquals ("" , U .mergeXmlsOrJsonsToXml (List .of ("" )));
1167+ }
1168+
11071169 @ Test
11081170 void removeMapKey () {
11091171 Map <String , Object > map = new LinkedHashMap <>();
@@ -1357,13 +1419,13 @@ void jsonToXml() {
13571419
13581420 @ Test
13591421 void jsonToXmlMinimum () {
1360- assertEquals ("<a></a>" ,
1361- U . jsonToXmlMinimum ( "{ \n \" a \" : { \n } \n }" ));
1362- assertEquals ( "<a></a>" ,
1422+ assertEquals ("<a></a>" , U . jsonToXmlMinimum ( "{ \n \" a \" : { \n } \n }" ));
1423+ assertEquals (
1424+ "<a></a>" ,
13631425 U .jsonToXmlMinimum ("{\n \" a\" : {\n }\n }" , Xml .XmlStringBuilder .Step .TWO_SPACES ));
1364- assertEquals ("<root empty-array=\" true\" ></root>" ,
1365- U . jsonToXmlMinimum ( "[]" ));
1366- assertEquals ( "<root>\n "
1426+ assertEquals ("<root empty-array=\" true\" ></root>" , U . jsonToXmlMinimum ( "[]" ));
1427+ assertEquals (
1428+ "<root>\n "
13671429 + " <a>\n "
13681430 + " <b>1</b>\n "
13691431 + " </a>\n "
0 commit comments