eZ\Bundle\EzPublishCoreBundle\Tests\DependencyInjection\EzPublishCoreExtensionTest::testRelatedSiteAccesses PHP Method

testRelatedSiteAccesses() public method

    public function testRelatedSiteAccesses()
    {
        $mainRepo = 'main';
        $fooRepo = 'foo';
        $rootLocationId1 = 123;
        $rootLocationId2 = 456;
        $rootLocationId3 = 2;
        $config = array('siteaccess' => array('default_siteaccess' => 'ezdemo_site', 'list' => array('ezdemo_site', 'eng', 'fre', 'ezdemo_site2', 'eng2', 'ezdemo_site3', 'fre3'), 'groups' => array('ezdemo_group' => array('ezdemo_site', 'eng', 'fre'), 'ezdemo_group2' => array('ezdemo_site2', 'eng2'), 'ezdemo_group3' => array('ezdemo_site3', 'fre3')), 'match' => array()), 'repositories' => array($mainRepo => array('engine' => 'legacy', 'connection' => 'default'), $fooRepo => array('engine' => 'bar', 'connection' => 'blabla')), 'system' => array('ezdemo_group' => array('repository' => $mainRepo, 'content' => array('tree_root' => array('location_id' => $rootLocationId1))), 'ezdemo_group2' => array('repository' => $mainRepo, 'content' => array('tree_root' => array('location_id' => $rootLocationId2))), 'ezdemo_group3' => array('repository' => $fooRepo))) + $this->siteaccessConfig;
        // Injecting needed config parsers.
        $refExtension = new ReflectionObject($this->extension);
        $refMethod = $refExtension->getMethod('getMainConfigParser');
        $refMethod->setAccessible(true);
        $refMethod->invoke($this->extension);
        $refParser = $refExtension->getProperty('mainConfigParser');
        $refParser->setAccessible(true);
        /** @var \eZ\Bundle\EzPublishCoreBundle\DependencyInjection\Configuration\ConfigParser $parser */
        $parser = $refParser->getValue($this->extension);
        $parser->setConfigParsers(array(new Common(), new Content()));
        $this->load($config);
        $relatedSiteAccesses1 = array('ezdemo_site', 'eng', 'fre');
        $relatedSiteAccesses2 = array('ezdemo_site2', 'eng2');
        $relatedSiteAccesses3 = array('ezdemo_site3', 'fre3');
        $expectedRelationMap = array($mainRepo => array($rootLocationId1 => $relatedSiteAccesses1, $rootLocationId2 => $relatedSiteAccesses2), $fooRepo => array($rootLocationId3 => $relatedSiteAccesses3));
        $this->assertContainerBuilderHasParameter('ezpublish.siteaccess.relation_map', $expectedRelationMap);
        $this->assertContainerBuilderHasParameter('ezsettings.ezdemo_site.related_siteaccesses', $relatedSiteAccesses1);
        $this->assertContainerBuilderHasParameter('ezsettings.eng.related_siteaccesses', $relatedSiteAccesses1);
        $this->assertContainerBuilderHasParameter('ezsettings.fre.related_siteaccesses', $relatedSiteAccesses1);
        $this->assertContainerBuilderHasParameter('ezsettings.ezdemo_site2.related_siteaccesses', $relatedSiteAccesses2);
        $this->assertContainerBuilderHasParameter('ezsettings.eng2.related_siteaccesses', $relatedSiteAccesses2);
        $this->assertContainerBuilderHasParameter('ezsettings.ezdemo_site3.related_siteaccesses', $relatedSiteAccesses3);
        $this->assertContainerBuilderHasParameter('ezsettings.fre3.related_siteaccesses', $relatedSiteAccesses3);
    }