}
@Test
public void testSolrDocuments() throws IOException {
SolrQueryRequest req = req("q","*:*");
SolrQueryResponse rsp = new SolrQueryResponse();
QueryResponseWriter w = new PHPSerializedResponseWriter();
StringWriter buf = new StringWriter();
SolrDocument d = new SolrDocument();
SolrDocument d1 = d;
d.addField("id","1");
d.addField("data1","hello");
d.addField("data2",42);
d.addField("data3",true);
// multivalued fields:
// extremely odd edge case: value is a map
// we use LinkedHashMap because we are doing a string comparison
// later and we need predictible ordering
LinkedHashMap<String,String> nl = new LinkedHashMap<String,String>();
nl.put("data4.1", "hashmap");
nl.put("data4.2", "hello");
d.addField("data4",nl);
// array value
d.addField("data5",Arrays.asList("data5.1", "data5.2", "data5.3"));
// adding one more document to test array indexes
d = new SolrDocument();
SolrDocument d2 = d;
d.addField("id","2");
SolrDocumentList sdl = new SolrDocumentList();
sdl.add(d1);
sdl.add(d2);
rsp.add("response", sdl);
w.write(buf, req, rsp);
assertEquals("a:1:{s:8:\"response\";a:3:{s:8:\"numFound\";i:0;s:5:\"start\";i:0;s:4:\"docs\";a:2:{i:0;a:6:{s:2:\"id\";s:1:\"1\";s:5:\"data1\";s:5:\"hello\";s:5:\"data2\";i:42;s:5:\"data3\";b:1;s:5:\"data4\";a:2:{s:7:\"data4.1\";s:7:\"hashmap\";s:7:\"data4.2\";s:5:\"hello\";}s:5:\"data5\";a:3:{i:0;s:7:\"data5.1\";i:1;s:7:\"data5.2\";i:2;s:7:\"data5.3\";}}i:1;a:1:{s:2:\"id\";s:1:\"2\";}}}}",
buf.toString());
req.close();
}