Ejemplo n.º 1
0
 public function test_collect_children()
 {
     $model = Jam::find('test_blog', 1);
     $collected = Jam_Behavior_Cascade::collect_models($model, array('test_posts'));
     $this->assertEquals((string) $model, (string) $collected[0]);
     foreach ($model->test_posts as $i => $post) {
         $this->assertEquals((string) $post, (string) $collected[$i + 1]);
     }
     $collected = Jam_Behavior_Cascade::collect_models($model, array('test_posts' => array('test_author', 'test_tags', 'test_images')));
     $expected = array($model, $model->test_posts[0], $model->test_posts[0]->test_author, $model->test_posts[0]->test_tags[0], $model->test_posts[0]->test_tags[1], $model->test_posts[0]->test_tags[2], $model->test_posts[0]->test_tags[3], $model->test_posts[0]->test_tags[4], $model->test_posts[0]->test_images[0]);
     foreach ($expected as $i => $item) {
         $this->assertEquals((string) $item, (string) $collected[$i], 'Collection item ' . $i . ' must be "' . $item . '"');
     }
 }
Ejemplo n.º 2
0
 public function execute(Jam_Model $model)
 {
     foreach ($this->callbacks() as $method => $model_names) {
         $children = Jam_Behavior_Cascade::get_current_children($model->meta()->model(), $model_names);
         $models = Jam_Behavior_Cascade::collect_models($model, (array) $children);
         call_user_func($method, $model, $models);
     }
 }