public function testExchangeArrayTestAssetIterator()
 {
     $ar = $this->getMockForAbstractClass(AbstractCollection::class);
     $ar->expects($this->atLeastOnce())->method('validateValue')->withAnyParameters()->willReturn(null);
     $ar->exchangeArray(new ArrayObjectIterator(['foo' => 'bar']));
     // make sure it does what php array object does:
     $ar2 = new \ArrayObject();
     $ar2->exchangeArray(new ArrayObjectIterator(['foo' => 'bar']));
     $this->assertEquals($ar2->getArrayCopy(), $ar->getArrayCopy());
 }
 /**
  * Init constant list by defined and magic constants
  */
 public function initEnvironmentConstants()
 {
     $constants   = array(
         '__DIR__',
         '__FILE__',
         '__LINE__',
         '__CLASS__',
         '__TRAIT__',
         '__METHOD__',
         '__FUNCTION__',
         '__NAMESPACE__',
         '::'
     );
     $constants = array_merge($constants, array_keys(get_defined_constants()), $this->constants->getArrayCopy());
     $this->constants->exchangeArray($constants);
 }
예제 #3
0
 public function testExchangeArrayStringArgumentFail()
 {
     $this->setExpectedException('InvalidArgumentException');
     $ar = new ArrayObject(array('foo' => 'bar'));
     $old = $ar->exchangeArray('Bacon');
 }
예제 #4
0
 /**
  * {@inheritdoc}
  */
 public function exchangeArray($data)
 {
     $oldData = parent::exchangeArray($data);
     try {
         $this->validateData($this->storage);
     } catch (\Exception $e) {
         $this->storage = $oldData;
         throw $e;
     }
     return $oldData;
 }