addArticle() публичный Метод

Add an article to the category
public addArticle ( Article $article )
$article Article
Пример #1
0
 /**
  * @dataProvider entityManagerDataProvider
  * @param EntityManager $em
  */
 public function testPersist(EntityManager $em)
 {
     // Persist a forward relationship
     $time1 = new \DateTime();
     $time1->modify('-1 Hour');
     $time2 = new \DateTime();
     $article1 = new Article();
     $article1->setId(201)->setTitle('Article 201')->setTimeCreated($time1)->setLastModified($time1);
     $article2 = new Article();
     $article2->setId(202)->setTitle('Article 202')->setTimeCreated($time2)->setLastModified($time2);
     $category1 = new Category();
     $category1->setId(1000)->setName('Category 1000');
     $category2 = new Category();
     $category2->setId(1001)->setName('Category 1001');
     $category3 = new Category();
     $category3->setId(1003)->setName('Category 1003');
     $category1->addArticle($article1)->addArticle($article2);
     $em->persist($category1)->persist($category2)->persist($category3)->persist($article1)->persist($article2)->flush();
     // Update the category's article list by removing an entity on the inverse side
     /** @var Article $article */
     $article = $em->retrieve(Article::class, 201);
     $article->setCanonicalCategory($category2);
     $em->persist($article)->flush();
     // Break the relationship - this should force the $category1 -> $article1 relationship to be indirectly broken
     $category3->addArticle($article2);
     $em->persist($category3)->flush();
 }
Пример #2
0
 /**
  * Testing race conditions of new entities, without a flush between persist calls
  *
  * @see: docs/RaceConditions.md
  * @dataProvider entityManagerDataProvider
  * @param EntityManager $em
  */
 public function testOneToManyRaceNoFlush(EntityManager $em)
 {
     $time = new \DateTime();
     $article1 = new Article();
     $article1->setId(201)->setTitle('Article 201')->setTimeCreated($time)->setLastModified($time);
     $category1 = new Category();
     $category1->setId(201)->setName('Category 201');
     $category1->addArticle($article1);
     $em->persist($category1)->persist($article1)->flush();
     /** @var Article|OrmProxyInterface $r_article */
     $r_article = $em->retrieve(Article::class, 201);
     $this->assertEquals('Article 201', $r_article->getTitle());
     // Should make DB query here
     $r_category = $r_article->getCanonicalCategory();
     $this->assertTrue($r_category instanceof Category);
     // Check inverse side too -
     /** @var Category|OrmProxyInterface $ir_category */
     $ir_category = $em->retrieve(Category::class, 201);
     $this->assertEquals('Category 201', $ir_category->getName());
     // Should make DB query here
     $ir_articles = $ir_category->getArticles();
     $this->assertCount(1, $ir_articles);
     $ir_article = $ir_articles[0];
     $this->assertTrue($ir_article instanceof Article);
 }
Пример #3
0
 /**
  * @dataProvider entityManagerDataProvider
  * @param EntityManager $em
  */
 public function testDeleteRelationships(EntityManager $em)
 {
     $article1 = new Article();
     $article1->setId(301)->setTitle('Article 301');
     $article2 = new Article();
     $article2->setId(302)->setTitle('Article 302');
     $category1 = new Category();
     $category1->setId(351)->setName('Category 351');
     $category1->addArticle($article1)->addArticle($article2);
     $em->persist($category1)->persist($article1)->persist($article2)->flush();
     $this->assertTrue($this->exists($em, 'article', '301'));
     $key = $this->getRelKey($em, 'article', 'category', '301', 'canonical_category', RelationshipType::MANYTOONE());
     $this->assertEquals('351', $em->getDriver()->getSingleValueIndex($key));
     /** @var Article $article */
     $article = $em->retrieve(Article::class, 301);
     $article->setId(399);
     $em->delete($article)->flush();
     $this->assertFalse($this->exists($em, 'article', '301'));
     $this->setExpectedException(NotFoundException::class);
     $em->getDriver()->retrieve($key);
 }