public function setParentRolesMakesSureThatParentRolesDontContainDuplicates()
{
/** @var Role|\PHPUnit_Framework_MockObject_MockObject $role */
$role = $this->getAccessibleMock(Role::class, ['dummy'], ['Acme.Demo:Test']);
/** @var Role|\PHPUnit_Framework_MockObject_MockObject $parentRole1 */
$parentRole1 = $this->getAccessibleMock(Role::class, ['dummy'], ['Acme.Demo:Parent1']);
/** @var Role|\PHPUnit_Framework_MockObject_MockObject $parentRole2 */
$parentRole2 = $this->getAccessibleMock(Role::class, ['dummy'], ['Acme.Demo:Parent2']);
$parentRole2->addParentRole($parentRole1);
$role->setParentRoles([$parentRole1, $parentRole2, $parentRole2, $parentRole1]);
$expectedParentRoles = ['Acme.Demo:Parent1' => $parentRole1, 'Acme.Demo:Parent2' => $parentRole2];
$this->assertEquals(2, count($role->getParentRoles()));
$this->assertEquals($expectedParentRoles, $role->getParentRoles());
}