public function testAddAssociationNewObjects() { $this->fixtures('categories', 'articles', 'articles_categories'); $article = new Article(array('title' => 'Article A', 'user_id' => 0)); $category1 = new Category(array('name' => 'Category A', 'parent_id' => 0)); $category2 = new Category(array('name' => 'Category B', 'parent_id' => 0)); $article->addCategory($category1); $article->addCategory($category2); // save, and make sure the association object is created $article->save(); // make sure both were created, and are associated $article = Article::find('first', array('conditions' => 'title=:title'), array(':title' => 'Article A')); $this->assertTrue($article instanceof Article); $cat1 = Category::find('first', array('conditions' => 'name=:nm'), array(':nm' => 'Category A')); $cat2 = Category::find('first', array('conditions' => 'name=:nm'), array(':nm' => 'Category B')); $this->assertTrue($cat1 instanceof Category); $this->assertTrue($cat2 instanceof Category); $this->assertEquals($article->categories[0]->id, $cat1->id); $this->assertEquals($article->categories[1]->id, $cat2->id); }