Bravo3\Orm\Tests\RefTest::testRefs PHP Method

testRefs() public method

public testRefs ( EntityManager $em )
$em Bravo3\Orm\Services\EntityManager
    public function testRefs(EntityManager $em)
    {
        $members = $em->getDriver()->getMultiValueIndex($em->getKeyScheme()->getEntityRefKey('leaf', 'leaf1'));
        $this->assertCount(0, $members);
        $leaf = (new Leaf())->setId('leaf1');
        $owner = (new Owner())->setId('owner1')->setLeaf([$leaf]);
        $em->persist($leaf)->persist($owner)->flush();
        $members = $em->getDriver()->getMultiValueIndex($em->getKeyScheme()->getEntityRefKey('leaf', 'leaf1'));
        $this->assertCount(1, $members);
        $ref = new Ref(Owner::class, 'owner1', 'leaf');
        $this->assertEquals((string) $ref, $members[0]);
        $leaves = $em->sortedQuery(new SortedQuery($owner, 'leaf', 'id'));
        $this->assertCount(1, $leaves);
        $em->refresh($owner);
        $em->refresh($leaf);
        $leaf->setPublished(false);
        $em->persist($leaf)->flush();
        $leaves = $em->sortedQuery(new SortedQuery($owner, 'leaf', 'id'));
        $this->assertCount(0, $leaves);
        $leaf->setPublished(true);
        $em->persist($leaf)->flush();
        $leaves = $em->sortedQuery(new SortedQuery($owner, 'leaf', 'id'));
        $this->assertCount(1, $leaves);
        $em->delete($leaf)->flush();
        $leaves = $em->sortedQuery(new SortedQuery($owner, 'leaf', 'id'));
        $this->assertCount(0, $leaves);
    }