Exemplo n.º 1
0
 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');