protected function runSampleDataTests(DataInterface $data) { $this->assertEquals('A', $data->get('a')); $this->assertEquals('B', $data->get('b.b')); $this->assertEquals(array('C1', 'C2', 'C3'), $data->get('b.c')); $this->assertEquals('D3', $data->get('b.d.d3')); $this->assertEquals(array('c1', 'c2', 'c3'), $data->get('c')); $this->assertNull($data->get('foo'), 'Foo should not exist'); $this->assertNull($data->get('f.g.h.i')); $this->assertEquals($data->get('foo', 'default-value-1'), 'default-value-1', 'Return default value'); $this->assertEquals($data->get('f.g.h.i', 'default-value-2'), 'default-value-2'); }
/** * @param DataInterface $data * @param bool $overwrite * @return $this * @throws MemberAccessException */ public function merge(DataInterface $data, $overwrite = false) { //! get host members $hostMembers = $this->getMembers(); //! get guest members $guestMembers = $data->getMembers(); //! this iterates over the guest members and checks //! if the member does not already exists on the host foreach ($guestMembers as $member => $value) { if (!array_key_exists($member, $hostMembers) || $overwrite) { //! merge the guest member to the host $this->members[$member] = $value; } else { //! the member already exist; crash :) throw new MemberAccessException(sprintf(MemberAccessException::PROPERTY_ALREADY_EXISTS, $member, get_class($this), get_class($data))); } } //! chaining return $this; }
/** * {@inheritdoc} */ public function generateShortTexts($limit) { return $this->generateFrom($this->data->getShortTexts(), $limit); }
public function withData(DataInterface $data) { $new = clone $this; $new->add($data->export()); return $new; }
/** * {@inheritdoc} */ public function importData(DataInterface $data, $clobber = true) { $this->import($data->export(), $clobber); }