|
|
@@ -4217,96 +4217,6 @@ class TableTest extends TestCase
|
|
|
|
|
|
/**
|
|
|
* Integration test for replacing entities which depend on their source entity with HasMany and failing transaction. False should be returned when
|
|
|
- * unlinking fails while replacing
|
|
|
- *
|
|
|
- * @return void
|
|
|
- */
|
|
|
- public function testReplaceHasManyOnErrorDependent()
|
|
|
- {
|
|
|
- $articles = $this->getMock(
|
|
|
- 'Cake\ORM\Table',
|
|
|
- ['deleteAll'],
|
|
|
- [[
|
|
|
- 'connection' => $this->connection,
|
|
|
- 'alias' => 'Articles',
|
|
|
- 'table' => 'articles',
|
|
|
- ]]
|
|
|
- );
|
|
|
-
|
|
|
- $articles->method('deleteAll')->willReturn(false);
|
|
|
-
|
|
|
- $associations = new AssociationCollection();
|
|
|
-
|
|
|
- $hasManyArticles = $this->getMock(
|
|
|
- 'Cake\ORM\Association\HasMany',
|
|
|
- ['target'],
|
|
|
- [
|
|
|
- 'articles',
|
|
|
- [
|
|
|
- 'target' => $articles,
|
|
|
- 'foreignKey' => 'author_id',
|
|
|
- 'dependent' => true
|
|
|
- ]
|
|
|
- ]
|
|
|
- );
|
|
|
- $hasManyArticles->method('target')->willReturn($articles);
|
|
|
-
|
|
|
- $associations->add('articles', $hasManyArticles);
|
|
|
-
|
|
|
- $authors = new Table([
|
|
|
- 'connection' => $this->connection,
|
|
|
- 'alias' => 'Authors',
|
|
|
- 'table' => 'authors',
|
|
|
- 'associations' => $associations
|
|
|
- ]);
|
|
|
- $authors->Articles->source($authors);
|
|
|
-
|
|
|
- $author = $authors->newEntity(['name' => 'mylux']);
|
|
|
- $author = $authors->save($author);
|
|
|
-
|
|
|
- $newArticles = $articles->newEntities(
|
|
|
- [
|
|
|
- [
|
|
|
- 'title' => 'New bakery next corner',
|
|
|
- 'body' => 'They sell tastefull cakes'
|
|
|
- ],
|
|
|
- [
|
|
|
- 'title' => 'Spicy cake recipe',
|
|
|
- 'body' => 'chocolate and peppers'
|
|
|
- ]
|
|
|
- ]
|
|
|
- );
|
|
|
-
|
|
|
- $sizeArticles = count($newArticles);
|
|
|
-
|
|
|
- $this->assertTrue($authors->Articles->link($author, $newArticles));
|
|
|
- $this->assertEquals($authors->Articles->findAllByAuthorId($author->id)->count(), $sizeArticles);
|
|
|
- $this->assertEquals(count($author->articles), $sizeArticles);
|
|
|
-
|
|
|
- $newArticles = array_merge(
|
|
|
- $author->articles,
|
|
|
- $articles->newEntities(
|
|
|
- [
|
|
|
- [
|
|
|
- 'title' => 'Cheese cake recipe',
|
|
|
- 'body' => 'The secrets of mixing salt and sugar'
|
|
|
- ],
|
|
|
- [
|
|
|
- 'title' => 'Not another piece of cake',
|
|
|
- 'body' => 'This is the best'
|
|
|
- ]
|
|
|
- ]
|
|
|
- )
|
|
|
- );
|
|
|
- unset($newArticles[0]);
|
|
|
-
|
|
|
- $this->assertFalse($authors->Articles->replace($author, $newArticles));
|
|
|
- $this->assertCount($sizeArticles, $authors->Articles->findAllByAuthorId($author->id));
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- /**
|
|
|
- * Integration test for replacing entities which depend on their source entity with HasMany and failing transaction. False should be returned when
|
|
|
* unlinking fails while replacing even when cascadeCallbacks is enabled
|
|
|
*
|
|
|
* @return void
|