Bravo3\Orm\Tests\Relationships\OneToManyTest::testOneToManyRaceNoFlush PHP Method

testOneToManyRaceNoFlush() public method

Testing race conditions of new entities, without a flush between persist calls
public testOneToManyRaceNoFlush ( EntityManager $em )
$em Bravo3\Orm\Services\EntityManager
    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);
    }