Example #1
0
 /**
  * allow to change data before return for founded key using closure
  *
  * @param mixed $first
  * @param mixed $second
  *
  * @dataProvider baseDataProvider
  * @requires baseDataProvider
  */
 public function testDataPreparationOnReturn($first, $second)
 {
     $object = new Object();
     $object->putReturnCallback('#data_[\\w]+#', function ($key, $value) {
         if ($key === 'data_second') {
             return 'second';
         }
         $value .= '_modified';
         return $value;
     });
     $this->assertTrue($object->returnReturnCallback()['#data_[\\w]+#'] instanceof \Closure);
     $object->stopOutputPreparation();
     $object->setDataFirst($first);
     $this->assertEquals($first, $object->getDataFirst());
     $object->startOutputPreparation();
     $object->setDataFirst($first);
     $object->setDataSecond($second);
     $this->assertEquals($first . '_modified', $object->getDataFirst());
     $this->assertEquals('second', $object->toArray('data_second'));
     $object->removeReturnCallback();
     $this->assertEmpty($object->returnReturnCallback('#data_[\\w]+#'));
 }