Inheritance: extends eZ\Publish\Core\MVC\Symfony\SiteAccess\Matcher\Compound, implements eZ\Publish\Core\MVC\Symfony\SiteAccess\VersatileMatcher
 public function testReverseMatch()
 {
     $request = $this->getMock('eZ\\Publish\\Core\\MVC\\Symfony\\Routing\\SimplifiedRequest');
     $siteAccessName = 'fr_eng';
     $mapUriConfig = array('eng' => true);
     $mapHostConfig = array('fr.ezpublish.dev' => true);
     $compoundMatcher = new LogicalAnd(array(array('matchers' => array('Map\\URI' => $mapUriConfig, 'Map\\Host' => $mapHostConfig), 'match' => $siteAccessName)));
     $compoundMatcher->setRequest($request);
     $matcher1 = $this->getMock('eZ\\Publish\\Core\\MVC\\Symfony\\SiteAccess\\VersatileMatcher');
     $matcher2 = $this->getMock('eZ\\Publish\\Core\\MVC\\Symfony\\SiteAccess\\VersatileMatcher');
     $this->matcherBuilder->expects($this->exactly(2))->method('buildMatcher')->will($this->returnValueMap(array(array('Map\\URI', $mapUriConfig, $request, $matcher1), array('Map\\Host', $mapHostConfig, $request, $matcher2))));
     $reverseMatchedMatcher1 = $this->getMock('eZ\\Publish\\Core\\MVC\\Symfony\\SiteAccess\\VersatileMatcher');
     $matcher1->expects($this->once())->method('reverseMatch')->with($siteAccessName)->will($this->returnValue($reverseMatchedMatcher1));
     $reverseMatchedMatcher2 = $this->getMock('eZ\\Publish\\Core\\MVC\\Symfony\\SiteAccess\\VersatileMatcher');
     $matcher2->expects($this->once())->method('reverseMatch')->with($siteAccessName)->will($this->returnValue($reverseMatchedMatcher2));
     $compoundMatcher->setMatcherBuilder($this->matcherBuilder);
     $result = $compoundMatcher->reverseMatch($siteAccessName);
     $this->assertInstanceOf('eZ\\Publish\\Core\\MVC\\Symfony\\SiteAccess\\Matcher\\Compound\\LogicalAnd', $result);
     foreach ($result->getSubMatchers() as $subMatcher) {
         $this->assertInstanceOf('eZ\\Publish\\Core\\MVC\\Symfony\\SiteAccess\\VersatileMatcher', $subMatcher);
     }
 }
 public function testSerialize()
 {
     $matcher = new LogicalAnd(array());
     $matcher->setRequest(new SimplifiedRequest(array('pathinfo' => '/foo/bar')));
     $sa = new SiteAccess('test', 'test', $matcher);
     $serializedSA1 = serialize($sa);
     $matcher->setRequest(new SimplifiedRequest(array('pathinfo' => '/foo/bar/baz')));
     $serializedSA2 = serialize($sa);
     $this->assertSame($serializedSA1, $serializedSA2);
 }