123, 'name' => 'Test document', 'categories' => array(1,2,3) ); protected function setUp() { $this->_doc = new Solarium_Document_ReadWrite($this->_fields); } public function testConstructorWithFieldsAndBoosts() { $fields = array('id' => 1, 'name' => 'testname'); $boosts = array('name' => 2.7); $doc = new Solarium_Document_ReadWrite($fields, $boosts); $this->assertEquals( $fields, $doc->getFields() ); $this->assertEquals( 2.7, $doc->getFieldBoost('name') ); } public function testAddFieldNoBoost() { $this->_doc->addField('myfield', 'myvalue'); $expectedFields = $this->_fields; $expectedFields['myfield'] = 'myvalue'; $this->assertEquals( $expectedFields, $this->_doc->getFields() ); } public function testAddFieldWithBoost() { $this->_doc->addField('myfield', 'myvalue', 2.3); $expectedFields = $this->_fields; $expectedFields['myfield'] = 'myvalue'; $this->assertEquals( $expectedFields, $this->_doc->getFields() ); $this->assertEquals( 2.3, $this->_doc->getFieldBoost('myfield') ); } public function testAddFieldMultivalue() { $this->_doc->addField('myfield', 'myvalue'); $expectedFields = $this->_fields; $expectedFields['myfield'] = 'myvalue'; $this->assertEquals( $expectedFields, $this->_doc->getFields() ); $this->_doc->addField('myfield', 'mysecondvalue'); $expectedFields['myfield'] = array('myvalue','mysecondvalue'); $this->assertEquals( $expectedFields, $this->_doc->getFields() ); } public function testSetField() { $this->_doc->setField('name', 'newname'); $expectedFields = $this->_fields; $expectedFields['name'] = 'newname'; $this->assertEquals( $expectedFields, $this->_doc->getFields() ); } public function testSetFieldWithFalsyValue() { $falsy_value = ''; $this->_doc->setField('name', $falsy_value); $expectedFields = $this->_fields; $expectedFields['name'] = $falsy_value; $this->assertEquals( $expectedFields, $this->_doc->getFields() ); } public function testRemoveField() { $this->_doc->removeField('name'); $expectedFields = $this->_fields; unset($expectedFields['name']); $this->assertEquals( $expectedFields, $this->_doc->getFields() ); } public function testRemoveFieldBySettingToNull() { $this->_doc->setField('name', NULL); $expectedFields = $this->_fields; unset($expectedFields['name']); $this->assertEquals( $expectedFields, $this->_doc->getFields() ); } public function testRemoveFieldBoostRemoval() { $this->_doc->setFieldBoost('name',3.2); $this->_doc->removeField('name'); $this->assertEquals( null, $this->_doc->getFieldBoost('name') ); } public function testRemoveInvalidField() { $this->_doc->removeField('invalidname'); //should silently continue... $this->assertEquals( $this->_fields, $this->_doc->getFields() ); } public function testSetAndGetFieldBoost() { $this->_doc->setFieldBoost('name',2.5); $this->assertEquals( 2.5, $this->_doc->getFieldBoost('name') ); } public function testGetInvalidFieldBoost() { $this->assertEquals( null, $this->_doc->getFieldBoost('invalidname') ); } public function testSetAndGetBoost() { $this->_doc->setBoost(2.5); $this->assertEquals( 2.5, $this->_doc->getBoost() ); } public function testSetAndGetFieldByProperty() { $this->_doc->name = 'new name'; $this->assertEquals( 'new name', $this->_doc->name ); } public function testSetAndGetMultivalueFieldByProperty() { $values = array('test1', 'test2', 'test3'); $this->_doc->multivaluefield = $values; $this->assertEquals( $values, $this->_doc->multivaluefield ); } public function testSetAndGetMultivalueFieldByPropertyOverwrite() { $values = array('test1', 'test2', 'test3'); $this->_doc->name = $values; $this->assertEquals( $values, $this->_doc->name ); } public function testUnsetFieldByProperty() { unset($this->_doc->name); $expectedFields = $this->_fields; unset($expectedFields['name']); $this->assertEquals( $expectedFields, $this->_doc->getFields() ); } public function testSetFieldAsArray() { $this->_doc['name'] = 'newname'; $expectedFields = $this->_fields; $expectedFields['name'] = 'newname'; $this->assertEquals( $expectedFields, $this->_doc->getFields() ); } public function testRemoveFieldAsArray() { unset($this->_doc['name']); $expectedFields = $this->_fields; unset($expectedFields['name']); $this->assertEquals( $expectedFields, $this->_doc->getFields() ); } public function testClearFields() { $this->_doc->clear(); $expectedFields = array(); $this->assertEquals( $expectedFields, $this->_doc->getFields() ); } public function testClearFieldsBoostRemoval() { $this->_doc->setFieldBoost('name', 3.2); $this->_doc->clear(); $expectedFields = array(); $this->assertEquals( null, $this->_doc->getFieldBoost('name') ); } }