RedUNIT\Base\Association::testMultiAssociationDissociation PHP Method

testMultiAssociationDissociation() public method

Test multiple assiociation.
    public function testMultiAssociationDissociation()
    {
        $wines = R::dispense('wine', 3);
        $cheese = R::dispense('cheese', 3);
        $olives = R::dispense('olive', 3);
        R::getRedBean()->getAssociationManager()->associate($wines, array_merge($cheese, $olives));
        asrt(R::count('cheese'), 3);
        asrt(R::count('olive'), 3);
        asrt(R::count('wine'), 3);
        asrt(count($wines[0]->sharedCheese), 3);
        asrt(count($wines[0]->sharedOlive), 3);
        asrt(count($wines[1]->sharedCheese), 3);
        asrt(count($wines[1]->sharedOlive), 3);
        asrt(count($wines[2]->sharedCheese), 3);
        asrt(count($wines[2]->sharedOlive), 3);
        R::getRedBean()->getAssociationManager()->unassociate($wines, $olives);
        asrt(count($wines[0]->sharedCheese), 3);
        asrt(count($wines[0]->sharedOlive), 0);
        asrt(count($wines[1]->sharedCheese), 3);
        asrt(count($wines[1]->sharedOlive), 0);
        asrt(count($wines[2]->sharedCheese), 3);
        asrt(count($wines[2]->sharedOlive), 0);
        R::getRedBean()->getAssociationManager()->unassociate(array($wines[1]), $cheese);
        asrt(count($wines[0]->sharedCheese), 3);
        asrt(count($wines[0]->sharedOlive), 0);
        asrt(count($wines[1]->sharedCheese), 0);
        asrt(count($wines[1]->sharedOlive), 0);
        asrt(count($wines[2]->sharedCheese), 3);
        asrt(count($wines[2]->sharedOlive), 0);
        R::getRedBean()->getAssociationManager()->unassociate(array($wines[2]), $cheese);
        asrt(count($wines[0]->sharedCheese), 3);
        asrt(count($wines[0]->sharedOlive), 0);
        asrt(count($wines[1]->sharedCheese), 0);
        asrt(count($wines[1]->sharedOlive), 0);
        asrt(count($wines[2]->sharedCheese), 0);
        asrt(count($wines[2]->sharedOlive), 0);
    }