mirror of https://github.com/apache/lucene.git
SOLR-9782: for json.nl expand test coverage and comments w.r.t. NamedList(null=null)
This commit is contained in:
parent
3c4315c566
commit
f42cc2a8c3
|
@ -188,10 +188,10 @@ class JSONWriter extends TextResponseWriter {
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Represents a NamedList directly as a JSON Object (essentially a Map)
|
/** Represents a NamedList directly as a JSON Object (essentially a Map)
|
||||||
* repeating any keys if they are repeated in the NamedList. null is mapped
|
* repeating any keys if they are repeated in the NamedList.
|
||||||
* to "".
|
* null key is mapped to "".
|
||||||
*/
|
*/
|
||||||
// NamedList("a"=1,"bar"="foo",null=3) => {"a":1,"bar":"foo","":3}
|
// NamedList("a"=1,"bar"="foo",null=3,null=null) => {"a":1,"bar":"foo","":3,"":null}
|
||||||
protected void writeNamedListAsMapWithDups(String name, NamedList val) throws IOException {
|
protected void writeNamedListAsMapWithDups(String name, NamedList val) throws IOException {
|
||||||
int sz = val.size();
|
int sz = val.size();
|
||||||
writeMapOpener(sz);
|
writeMapOpener(sz);
|
||||||
|
@ -214,7 +214,7 @@ class JSONWriter extends TextResponseWriter {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Represents a NamedList directly as an array of JSON objects...
|
// Represents a NamedList directly as an array of JSON objects...
|
||||||
// NamedList("a"=1,"b"=2,null=3) => [{"a":1},{"b":2},3]
|
// NamedList("a"=1,"b"=2,null=3,null=null) => [{"a":1},{"b":2},3,null]
|
||||||
protected void writeNamedListAsArrMap(String name, NamedList val) throws IOException {
|
protected void writeNamedListAsArrMap(String name, NamedList val) throws IOException {
|
||||||
int sz = val.size();
|
int sz = val.size();
|
||||||
indent();
|
indent();
|
||||||
|
@ -249,7 +249,7 @@ class JSONWriter extends TextResponseWriter {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Represents a NamedList directly as an array of JSON objects...
|
// Represents a NamedList directly as an array of JSON objects...
|
||||||
// NamedList("a"=1,"b"=2,null=3) => [["a",1],["b",2],[null,3]]
|
// NamedList("a"=1,"b"=2,null=3,null=null) => [["a",1],["b",2],[null,3],[null,null]]
|
||||||
protected void writeNamedListAsArrArr(String name, NamedList val) throws IOException {
|
protected void writeNamedListAsArrArr(String name, NamedList val) throws IOException {
|
||||||
int sz = val.size();
|
int sz = val.size();
|
||||||
indent();
|
indent();
|
||||||
|
@ -293,7 +293,7 @@ class JSONWriter extends TextResponseWriter {
|
||||||
|
|
||||||
// Represents a NamedList directly as an array with keys/values
|
// Represents a NamedList directly as an array with keys/values
|
||||||
// interleaved.
|
// interleaved.
|
||||||
// NamedList("a"=1,"b"=2,null=3) => ["a",1,"b",2,null,3]
|
// NamedList("a"=1,"b"=2,null=3,null=null) => ["a",1,"b",2,null,3,null,null]
|
||||||
protected void writeNamedListAsFlat(String name, NamedList val) throws IOException {
|
protected void writeNamedListAsFlat(String name, NamedList val) throws IOException {
|
||||||
int sz = val.size();
|
int sz = val.size();
|
||||||
writeArrayOpener(sz*2);
|
writeArrayOpener(sz*2);
|
||||||
|
@ -676,7 +676,7 @@ class JSONWriter extends TextResponseWriter {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Writes NamedLists directly as an array of NamedValuePair JSON objects...
|
* Writes NamedLists directly as an array of NamedValuePair JSON objects...
|
||||||
* NamedList("a"=1,"b"=2,null=3) => [{"name":"a","int":1},{"name":"b","int":2},{"int":3}]
|
* NamedList("a"=1,"b"=2,null=3,null=null) => [{"name":"a","int":1},{"name":"b","int":2},{"int":3},{"null":null}]
|
||||||
* NamedList("a"=1,"bar"="foo",null=3.4f) => [{"name":"a","int":1},{"name":"bar","str":"foo"},{"float":3.4}]
|
* NamedList("a"=1,"bar"="foo",null=3.4f) => [{"name":"a","int":1},{"name":"bar","str":"foo"},{"float":3.4}]
|
||||||
*/
|
*/
|
||||||
class ArrayOfNamedValuePairJSONWriter extends JSONWriter {
|
class ArrayOfNamedValuePairJSONWriter extends JSONWriter {
|
||||||
|
|
|
@ -98,6 +98,7 @@ public class JSONWriterTest extends SolrTestCaseJ4 {
|
||||||
NamedList nl = new NamedList();
|
NamedList nl = new NamedList();
|
||||||
nl.add("data1", "he\u2028llo\u2029!"); // make sure that 2028 and 2029 are both escaped (they are illegal in javascript)
|
nl.add("data1", "he\u2028llo\u2029!"); // make sure that 2028 and 2029 are both escaped (they are illegal in javascript)
|
||||||
nl.add(null, 42);
|
nl.add(null, 42);
|
||||||
|
nl.add(null, null);
|
||||||
rsp.add("nl", nl);
|
rsp.add("nl", nl);
|
||||||
|
|
||||||
rsp.add("byte", Byte.valueOf((byte)-3));
|
rsp.add("byte", Byte.valueOf((byte)-3));
|
||||||
|
@ -108,15 +109,15 @@ public class JSONWriterTest extends SolrTestCaseJ4 {
|
||||||
|
|
||||||
final String expectedNLjson;
|
final String expectedNLjson;
|
||||||
if (namedListStyle == JSONWriter.JSON_NL_FLAT) {
|
if (namedListStyle == JSONWriter.JSON_NL_FLAT) {
|
||||||
expectedNLjson = "\"nl\":[\"data1\",\"he\\u2028llo\\u2029!\",null,42]";
|
expectedNLjson = "\"nl\":[\"data1\",\"he\\u2028llo\\u2029!\",null,42,null,null]";
|
||||||
} else if (namedListStyle == JSONWriter.JSON_NL_MAP) {
|
} else if (namedListStyle == JSONWriter.JSON_NL_MAP) {
|
||||||
expectedNLjson = "\"nl\":{\"data1\":\"he\\u2028llo\\u2029!\",\"\":42}";
|
expectedNLjson = "\"nl\":{\"data1\":\"he\\u2028llo\\u2029!\",\"\":42,\"\":null}";
|
||||||
} else if (namedListStyle == JSONWriter.JSON_NL_ARROFARR) {
|
} else if (namedListStyle == JSONWriter.JSON_NL_ARROFARR) {
|
||||||
expectedNLjson = "\"nl\":[[\"data1\",\"he\\u2028llo\\u2029!\"],[null,42]]";
|
expectedNLjson = "\"nl\":[[\"data1\",\"he\\u2028llo\\u2029!\"],[null,42],[null,null]]";
|
||||||
} else if (namedListStyle == JSONWriter.JSON_NL_ARROFMAP) {
|
} else if (namedListStyle == JSONWriter.JSON_NL_ARROFMAP) {
|
||||||
expectedNLjson = "\"nl\":[{\"data1\":\"he\\u2028llo\\u2029!\"},42]";
|
expectedNLjson = "\"nl\":[{\"data1\":\"he\\u2028llo\\u2029!\"},42,null]";
|
||||||
} else if (namedListStyle == JSONWriter.JSON_NL_ARROFNVP) {
|
} else if (namedListStyle == JSONWriter.JSON_NL_ARROFNVP) {
|
||||||
expectedNLjson = "\"nl\":[{\"name\":\"data1\",\"str\":\"he\\u2028llo\\u2029!\"},{\"int\":42}]";
|
expectedNLjson = "\"nl\":[{\"name\":\"data1\",\"str\":\"he\\u2028llo\\u2029!\"},{\"int\":42},{\"null\":null}]";
|
||||||
} else {
|
} else {
|
||||||
expectedNLjson = null;
|
expectedNLjson = null;
|
||||||
fail("unexpected namedListStyle="+namedListStyle);
|
fail("unexpected namedListStyle="+namedListStyle);
|
||||||
|
|
Loading…
Reference in New Issue