Beispiel #1
0
 public static function referencesMany(Factory $factory, $name, array $config)
 {
     return function ($sequence = null) use($factory, $name, $config) {
         $value = $config['value'];
         $ids = array();
         if (!$value) {
             $ids[] = DefaultGenerator::reference($factory, $config['class']);
         } elseif (is_numeric($value)) {
             for ($i = 0; $i < (int) $value; $i++) {
                 $ids[] = DefaultGenerator::reference($factory, $config['class']);
             }
         } elseif (is_array($value)) {
             foreach ($value as $id) {
                 $ids[] = DefaultGenerator::reference($factory, $config['class'], $id);
             }
         } else {
             throw new \InvalidArgumentException('Unexpected default value for referencesMany field');
         }
         return $ids;
     };
 }
 public function testEmbeddedsMany()
 {
     $closure = DefaultGenerator::embeddedsMany($this->factory, 'test', array('class' => 'Model\\Source', 'value' => null));
     $this->assertTrue(is_array(current($closure())));
     $closure = DefaultGenerator::embeddedsMany($this->factory, 'test', array('class' => 'Model\\Source', 'value' => array(array('text'), array('name'))));
     $result = $closure();
     $this->assertEquals(2, count($result));
     $this->assertTrue(strlen($result[0]['text']) > 0);
     $this->assertTrue(strlen($result[1]['name']) > 0);
     $closure = DefaultGenerator::embeddedsMany($this->factory, 'test', array('class' => 'Model\\Source', 'value' => 3));
     $result = $closure();
     $this->assertEquals(3, count($result));
     foreach ($result as $id) {
         $this->assertTrue(is_array($id));
     }
 }