diff --git a/AccessManager/AccessManager.php b/AccessManager/AccessManager.php
index <HASH>..<HASH> 100644
--- a/AccessManager/AccessManager.php
+++ b/AccessManager/AccessManager.php
@@ -70,13 +70,16 @@ class AccessManager {
 
         if(!$attribute && !$expression) {
             return true;
-        } else if($attribute != false) {
-            if (!$this->services['security.context']->isGranted($attribute, $proxy->__getReal())) {
-                return false;
+        } else {
+            if($attribute != false) {
+                if (!$this->services['security.context']->isGranted($attribute, $proxy->__getReal())) {
+                    return false;
+                }
             }
-        } else if($expression != false) {
-            if (!$this->services['security.context']->isGranted(new Expression($expression), $proxy->__getReal())) {
-                return false;
+            if($expression != false) {
+                if (!$this->services['security.context']->isGranted(new Expression($expression), $proxy->__getReal())) {
+                    return false;
+                }
             }
         }
         return true;
Fix bug, now pass all test.

In AccessManager:isGranted() if attribute was set, expression was not tested.