Ejemplo n.º 1
0
 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;
 }
Ejemplo n.º 3
0
 /**
  * {@inheritdoc}
  */
 public function generateShortTexts($limit)
 {
     return $this->generateFrom($this->data->getShortTexts(), $limit);
 }
Ejemplo n.º 4
0
 public function withData(DataInterface $data)
 {
     $new = clone $this;
     $new->add($data->export());
     return $new;
 }
Ejemplo n.º 5
0
 /**
  * {@inheritdoc}
  */
 public function importData(DataInterface $data, $clobber = true)
 {
     $this->import($data->export(), $clobber);
 }