public function testExtractDataHydratorStrategy() { $this->populateHydratorStrategyForm(); $hydrator = new Hydrator\ObjectProperty(); $hydrator->addStrategy('entities', new TestAsset\HydratorStrategy()); $this->form->setHydrator($hydrator); $model = new TestAsset\HydratorStrategyEntityA(); $this->form->bind($model); $validSet = array('entities' => array(111, 333)); $this->form->setData($validSet); $this->form->isValid(); $data = $this->form->getData(Form::VALUES_AS_ARRAY); $this->assertEquals($validSet, $data); $entities = $model->getEntities(); $this->assertCount(2, $entities); $this->assertEquals(111, $entities[0]->getField1()); $this->assertEquals(333, $entities[1]->getField1()); $this->assertEquals('AAA', $entities[0]->getField2()); $this->assertEquals('CCC', $entities[1]->getField2()); }
<?php require __DIR__ . '/../vendor/autoload.php'; use FUnit as fu; use Zend\Stdlib\Hydrator\ObjectProperty; use Knlv\Zf2\Hydrator\Strategy\MultilineTextStrategy; fu::setup(function () { $hydrator = new ObjectProperty(); $strategy = new MultilineTextStrategy(); $hydrator->addStrategy('items', $strategy); fu::fixture('strategy', $strategy); fu::fixture('hydrator', $hydrator); }); fu::test('Testing hydrate/extract methods', function () { $hydrator = fu::fixture('hydrator'); $object = new stdClass(); $object->name = 'test'; $object->items = array('item1', 'item2', 'item3', 'item4', 'item5'); $expected = array('name' => 'test', 'items' => <<<EOL item1 item2 item3 item4 item5 EOL ); fu::equal($expected, $hydrator->extract($object), 'Assert extract works'); fu::equal($object, $hydrator->hydrate($expected, new stdClass()), 'Assert hydrate works'); });
<?php require __DIR__ . '/../vendor/autoload.php'; use FUnit as fu; use Zend\Stdlib\Hydrator\ObjectProperty; use Knlv\Zf2\Hydrator\Strategy\DateTimeStrategy; fu::setup(function () { $hydrator = new ObjectProperty(); $strategy = new DateTimeStrategy(); $hydrator->addStrategy('created', $strategy); fu::fixture('strategy', $strategy); fu::fixture('hydrator', $hydrator); }); fu::test('Testing hydrate/extract methods', function () { $hydrator = fu::fixture('hydrator'); $object = new stdClass(); $object->name = 'test'; $object->data = array('data1', 'data2'); $object->created = new DateTime('2015-01-02 10:10:10'); $expected = array('name' => 'test', 'data' => array('data1', 'data2'), 'created' => '2015-01-02 10:10:10'); fu::equal($expected, $hydrator->extract($object), 'Assert extract works'); fu::equal($object, $hydrator->hydrate($expected, new stdClass()), 'Assert hydrate works'); }); fu::test('Test set/get format methods', function () { $strategy = fu::fixture('strategy'); fu::equal($strategy::DEFAULT_FORMAT, $strategy->getFormat(), 'Assert default format if no other set'); $strategy->setFormat(DateTime::ATOM); fu::equal(DateTime::ATOM, $strategy->getFormat(), 'Assert format changed'); }); fu::test('Test set/get timzone methods', function () { $strategy = fu::fixture('strategy');