public function testAddAndGetDocuments() { $doc1 = new Solarium_Document_ReadWrite(array('id' => 1)); $doc2 = new Solarium_Document_ReadWrite(array('id' => 2)); $this->_query->addDocuments(array($doc1, $doc2)); $this->assertEquals(array($doc1, $doc2), $this->_query->getDocuments()); }
public function testGetRawData() { // this doc tests data escaping $doc1 = new Solarium_Document_ReadWrite(array('id' => 1, 'name' => 'doc1', 'cat' => 'my > cat')); // this doc tests a multivalue field $doc2 = new Solarium_Document_ReadWrite(array('id' => 2, 'name' => 'doc2', 'cat' => array(1, 2, 3))); $this->_query->addDocuments(array($doc1, $doc2)); $this->assertEquals('<docs><doc><field name="id">1</field><field name="name">doc1</field><field name="cat">my > cat</field></doc><doc><field name="id">2</field><field name="name">doc2</field><field name="cat">1</field><field name="cat">2</field><field name="cat">3</field></doc></docs>', $this->_builder->getRawData($this->_query)); }
/** * Create the raw post data (xml) * * @param Solarium_Query_Analysis_Document $query * @return string */ public function getRawData($query) { $xml = '<docs>'; foreach ($query->getDocuments() as $doc) { $xml .= '<doc>'; foreach ($doc->getFields() as $name => $value) { if (is_array($value)) { foreach ($value as $multival) { $xml .= $this->_buildFieldXml($name, $multival); } } else { $xml .= $this->_buildFieldXml($name, $value); } } $xml .= '</doc>'; } $xml .= '</docs>'; return $xml; }