_command = new Solarium_Query_Update_Command_Add; } public function testGetType() { $this->assertEquals( Solarium_Query_Update::COMMAND_ADD, $this->_command->getType() ); } public function testAddDocument() { $doc = new Solarium_Document_ReadWrite(array('id' => 1)); $this->_command->addDocument($doc); $this->assertEquals( array($doc), $this->_command->getDocuments() ); } public function testAddDocuments() { $doc1 = new Solarium_Document_ReadWrite(array('id' => 1)); $doc2 = new Solarium_Document_ReadWrite(array('id' => 2)); $this->_command->addDocuments(array($doc1, $doc2)); $this->assertEquals( array($doc1, $doc2), $this->_command->getDocuments() ); } public function testAddDocumentsMultipleTimes() { $doc1 = new Solarium_Document_ReadWrite(array('id' => 1)); $doc2 = new Solarium_Document_ReadWrite(array('id' => 2)); $this->_command->addDocuments(array($doc1, $doc2)); $doc3 = new Solarium_Document_ReadWrite(array('id' => 3)); $doc4 = new Solarium_Document_ReadWrite(array('id' => 4)); $this->_command->addDocuments(array($doc3, $doc4)); $this->assertEquals( array($doc1, $doc2, $doc3, $doc4), $this->_command->getDocuments() ); } public function testAddDocumentsIteration() { $doc1 = new Solarium_Document_ReadWrite(array('id' => 1)); $doc2 = new Solarium_Document_ReadWrite(array('id' => 2)); $it = new ArrayIterator(array($doc1, $doc2)); $this->_command->addDocuments($it); if ($this->_command->getDocuments() instanceof Traversable) { $command_documents = iterator_to_array($this->_command->getDocuments()); } else { $command_documents = $this->_command->getDocuments(); } $this->assertEquals( array($doc1, $doc2), $command_documents, 'checking first two documents are added correctly' ); $doc3 = new Solarium_Document_ReadWrite(array('id' => 3)); $doc4 = new Solarium_Document_ReadWrite(array('id' => 4)); $doc5 = new Solarium_Document_ReadWrite(array('id' => 5)); $it2 = new ArrayIterator(array($doc3, $doc4, $doc5)); $this->_command->addDocuments($it2); if ($this->_command->getDocuments() instanceof Traversable) { $command_documents = iterator_to_array($this->_command->getDocuments()); } else { $command_documents = $this->_command->getDocuments(); } $this->assertEquals( array($doc1, $doc2, $doc3, $doc4, $doc5), $command_documents, 'checking second three documents are added correctly to first two' ); } /** * @depends testAddDocumentsIteration */ public function testAddDocumentToIteration() { $doc1 = new Solarium_Document_ReadWrite(array('id' => 1)); $doc2 = new Solarium_Document_ReadWrite(array('id' => 2)); $this->_command->addDocuments(new ArrayIterator(array($doc1, $doc2))); $doc3 = new Solarium_Document_ReadWrite(array('id' => 3)); $this->_command->addDocument($doc3); if ($this->_command->getDocuments() instanceof Traversable) { $command_documents = iterator_to_array($this->_command->getDocuments()); } else { $command_documents = $this->_command->getDocuments(); } $this->assertEquals( array($doc1, $doc2, $doc3), $command_documents ); } public function testGetAndSetOverwrite() { $this->_command->setOverwrite(false); $this->assertEquals( false, $this->_command->getOverwrite() ); } public function testGetAndSetCommitWithin() { $this->_command->setCommitWithin(100); $this->assertEquals( 100, $this->_command->getCommitWithin() ); } }