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