/** * Method to test create(). * * @return void * * @covers Windwalker\DataMapper\AbstractDataMapper::create */ public function testCreate() { // Create from array $dataset = array(array('title' => 'Sakura'), array('title' => 'Peony'), array('title' => 'Sunflower', 'anim' => 'bird')); $returns = $this->instance->create($dataset); $newDataset = $this->loadToDataset('SELECT * FROM ww_flower ORDER BY id DESC LIMIT 3'); $this->assertEquals(array('Sunflower', 'Peony', 'Sakura'), $newDataset->title); $this->assertEquals(86, $returns[0]->id, 'Inserted id not matched.'); $this->assertInstanceOf('Windwalker\\Data\\Data', $returns[0], 'Return not Data object.'); // Create from DataSet $dataset = new DataSet(array(new Data(array('title' => 'Sakura2')), new Data(array('title' => 'Peony2')), new Data(array('title' => 'Sunflower2')))); $returns = $this->instance->create($dataset); $newDataset = $this->loadToDataset('SELECT * FROM ww_flower ORDER BY id DESC LIMIT 3'); $this->assertEquals(array('Sunflower2', 'Peony2', 'Sakura2'), $newDataset->title); $this->assertEquals(89, $returns[0]->id, 'Inserted id not matched.'); $this->assertInstanceOf('Windwalker\\Data\\Data', $returns[0], 'Return not Data object.'); }
/** * Create records by data set. * * @param mixed $dataset The data set contains data we want to store. * * @throws \UnexpectedValueException * @throws \InvalidArgumentException * @return mixed|DataSet Data set data with inserted id. */ public function create($dataset) { $this->observers->update('onBeforeCreate', array(&$dataset)); $dataset = parent::create($dataset); $this->observers->update('onAfterCreate', array(&$dataset)); return $dataset; }