/**
  * Check if this assertion is true
  *
  * @param  AuthorizationService $authorization
  * @param  mixed                $context
  * @throws InvalidArgumentException
  * @return bool
  */
 public function assert(AuthorizationService $authorization, $context = null)
 {
     if (!$context instanceof InstanceAwareInterface) {
         throw new InvalidArgumentException();
     }
     if (!$authorization instanceof StatefulAuthorizationService) {
         throw new InvalidArgumentException();
     }
     $result = $authorization->getAuthorizationResult();
     $permission = $result->getPermission();
     $permissionToMatch = $this->getPermissionService()->findParametrizedPermission((string) $permission, 'instance', $context->getInstance()->getId());
     foreach ($result->getRoles() as $role) {
         if ($role->hasPermission($permissionToMatch->getId())) {
             return true;
         }
     }
     return false;
 }