/**
  * @param string $language
  *
  * @dataProvider provideAliasIdAndLanguage
  */
 public function testGetAliasIdForLanguage($language)
 {
     $alias1 = Phake::mock('OpenOrchestra\\ModelInterface\\Model\\SiteAliasInterface');
     Phake::when($alias1)->getLanguage()->thenReturn('fr');
     $alias2 = Phake::mock('OpenOrchestra\\ModelInterface\\Model\\SiteAliasInterface');
     Phake::when($alias2)->getLanguage()->thenReturn('en');
     $this->site->addAlias($alias1);
     $this->site->addAlias($alias2);
     $aliases = $this->site->getAliases();
     $this->assertTrue($aliases->containsKey($this->site->getAliasIdForLanguage($language)));
     $this->assertSame($language, $aliases[$this->site->getAliasIdForLanguage($language)]->getLanguage());
 }
 /**
  * Checks if the passed value is valid.
  *
  * @param SiteInterface              $value      The value that should be validated
  * @param UniqueMainAlias|Constraint $constraint The constraint for the validation
  *
  * @api
  */
 public function validate($value, Constraint $constraint)
 {
     if ($value->getAliases()->filter(function (SiteAliasInterface $alias) {
         return $alias->isMain();
     })->count() > 1) {
         $this->context->addViolation($constraint->message);
     }
 }