Example #1
0
 public function getComposedEntity()
 {
     $address = new TestAsset\Entity\Address();
     $address->setStreet('1 Rue des Champs Elysées');
     $city = new TestAsset\Entity\City();
     $city->setName('Paris');
     $city->setZipCode('75008');
     $country = new TestAsset\Entity\Country();
     $country->setName('France');
     $country->setContinent('Europe');
     $city->setCountry($country);
     $address->setCity($city);
     return $address;
 }
Example #2
0
 public function testNestedCollections()
 {
     // @see https://github.com/zendframework/zf2/issues/5640
     $addressesFieldeset = new \ZendTest\Form\TestAsset\AddressFieldset();
     $addressesFieldeset->setHydrator(new \Zend\Stdlib\Hydrator\ClassMethods());
     $form = new Form();
     $form->setHydrator(new ObjectPropertyHydrator());
     $form->add(array('name' => 'addresses', 'type' => 'Collection', 'options' => array('target_element' => $addressesFieldeset, 'count' => 2)));
     $data = array(array('number' => '0000000001', 'street' => 'street1'), array('number' => '0000000002', 'street' => 'street2'));
     $phone1 = new Phone();
     $phone1->setNumber($data[0]['number']);
     $phone2 = new Phone();
     $phone2->setNumber($data[1]['number']);
     $address1 = new Address();
     $address1->setStreet($data[0]['street']);
     $address1->setPhones(array($phone1));
     $address2 = new Address();
     $address2->setStreet($data[1]['street']);
     $address2->setPhones(array($phone2));
     $customer = new stdClass();
     $customer->addresses = array($address1, $address2);
     $form->bind($customer);
     //test for object binding
     foreach ($form->get('addresses')->getFieldsets() as $_fieldset) {
         $this->assertInstanceOf('ZendTest\\Form\\TestAsset\\Entity\\Address', $_fieldset->getObject());
         foreach ($_fieldset->getFieldsets() as $_childFieldsetName => $_childFieldset) {
             switch ($_childFieldsetName) {
                 case 'city':
                     $this->assertInstanceOf('ZendTest\\Form\\TestAsset\\Entity\\City', $_childFieldset->getObject());
                     break;
                 case 'phones':
                     foreach ($_childFieldset->getFieldsets() as $_phoneFieldset) {
                         $this->assertInstanceOf('ZendTest\\Form\\TestAsset\\Entity\\Phone', $_phoneFieldset->getObject());
                     }
                     break;
             }
         }
     }
     //test for correct extract and populate
     $index = 0;
     foreach ($form->get('addresses') as $_addresses) {
         $this->assertEquals($data[$index]['street'], $_addresses->get('street')->getValue());
         //assuming data has just 1 phone entry
         foreach ($_addresses->get('phones') as $phone) {
             $this->assertEquals($data[$index]['number'], $phone->get('number')->getValue());
         }
         $index++;
     }
 }