/** * Method to test update(). * * @return void * * @covers Windwalker\DataMapper\AbstractDataMapper::update */ public function testUpdate() { // Update from array $dataset = array(array('id' => 1, 'state' => 1), array('id' => 2, 'state' => 1), array('id' => 3, 'state' => 1)); $returns = $this->instance->update($dataset, 'id'); $updateDataset = $this->loadToDataset('SELECT * FROM ww_flower LIMIT 3'); $this->assertEquals(array(1, 1, 1), $updateDataset->state); $this->assertInstanceOf('Windwalker\\Data\\Data', $returns[0], 'Return not Data object.'); // Use from DataSet $dataset = new DataSet(array(new Data(array('id' => 1, 'state' => 0)), new Data(array('id' => 2, 'state' => 0)), new Data(array('id' => 3, 'state' => 0)))); $returns = $this->instance->update($dataset, 'id'); $updateDataset = $this->loadToDataset('SELECT * FROM ww_flower LIMIT 3'); $this->assertEquals(array(0, 0, 0), $updateDataset->state); $this->assertInstanceOf('Windwalker\\Data\\Data', $returns[0], 'Return not Data object.'); // TODO: Test Update Nulls }
/** * Update records by data set. Every data depend on this table's primary key to update itself. * * @param mixed $dataset Data set contain data we want to update. * @param array $condFields The where condition tell us record exists or not, if not set, * will use primary key instead. * @param bool $updateNulls Update empty fields or not. * * @return mixed|DataSet */ public function update($dataset, $condFields = null, $updateNulls = false) { $this->observers->update('onBeforeUpdate', array(&$dataset, &$condFields, &$updateNulls)); $dataset = parent::update($dataset, $condFields, $updateNulls); $this->observers->update('onAfterUpdate', array(&$dataset)); return $dataset; }