public function testRemoveObjectOneToMany() { BookQuery::create()->deleteAll(); AuthorQuery::create()->deleteAll(); $book = new Book(); $book->setISBN('012345'); $book->setTitle('Propel Book'); $book2 = new Book(); $book2->setISBN('6789'); $book2->setTitle('Propel2 Book'); $author = new Author(); $author->setFirstName('François'); $author->setLastName('Z'); $author->addBook($book); $author->addBook($book2); $this->assertCount(2, $author->getBooks()); $author->removeBook($book); $books = $author->getBooks(); $this->assertCount(1, $books); $this->assertEquals('Propel2 Book', $books->getFirst()->getTitle()); $author->save(); $book->save(); $book2->save(); $this->assertEquals(2, BookQuery::create()->count(), 'Two Book'); $this->assertEquals(1, AuthorQuery::create()->count(), 'One Author'); $this->assertEquals(1, BookQuery::create()->filterByAuthor($author)->count()); $author->addBook($book); $author->save(); $this->assertEquals(2, BookQuery::create()->filterByAuthor($author)->count()); $author->removeBook($book2); $author->save(); $this->assertEquals(1, BookQuery::create()->filterByAuthor($author)->count()); $this->assertEquals(2, BookQuery::create()->count(), 'Two Book because FK is not required so book is not delete when removed from author\'s book collection'); }