public function testSetterOneToManyReplacesOldObjectsByNewObjectsWithFkRequired() { // Ensure no data BookSummaryQuery::create()->deleteAll(); BookQuery::create()->deleteAll(); $bookSummaries = new ObjectCollection(); foreach (array('foo', 'bar') as $summary) { $s = new BookSummary(); $s->setSummary($summary); $bookSummaries[] = $s; } $b = new Book(); $b->setTitle('Hello'); $b->setBookSummaries($bookSummaries); $b->save(); $bookSummaries = $b->getBookSummaries(); $this->assertEquals('foo', $bookSummaries[0]->getSummary()); $this->assertEquals('bar', $bookSummaries[1]->getSummary()); $bookSummaries = new ObjectCollection(); foreach (array('bam', 'bom') as $summary) { $s = new BookSummary(); $s->setSummary($summary); $bookSummaries[] = $s; } $b->setBookSummaries($bookSummaries); $b->save(); $bookSummaries = $b->getBookSummaries(); $this->assertEquals('bam', $bookSummaries[0]->getSummary()); $this->assertEquals('bom', $bookSummaries[1]->getSummary()); $this->assertEquals(1, BookQuery::create()->count()); $this->assertEquals(2, BookSummaryQuery::create()->count()); }