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

testOneToManyRaceFlush() public method

Testing race conditions of new entities, with a flush after persisting the first entity
public testOneToManyRaceFlush ( EntityManager $em )
$em Bravo3\Orm\Services\EntityManager
    public function testOneToManyRaceFlush(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)->flush()->persist($article1)->flush();
        /** @var Article|OrmProxyInterface $r_article */
        $r_article = $em->retrieve('Bravo3\\Orm\\Tests\\Entities\\OneToMany\\Article', 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('Bravo3\\Orm\\Tests\\Entities\\OneToMany\\Category', 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);
    }