assertEquals($expected, $trait_object->resolveConditions($conditions, $logic)); } public function providerTestResolveConditions() { $data = []; $condition_true = $this->getMock('Drupal\Core\Condition\ConditionInterface'); $condition_true->expects($this->any()) ->method('execute') ->will($this->returnValue(TRUE)); $condition_false = $this->getMock('Drupal\Core\Condition\ConditionInterface'); $condition_false->expects($this->any()) ->method('execute') ->will($this->returnValue(FALSE)); $condition_exception = $this->getMock('Drupal\Core\Condition\ConditionInterface'); $condition_exception->expects($this->any()) ->method('execute') ->will($this->throwException(new ContextException())); $condition_exception->expects($this->atLeastOnce()) ->method('isNegated') ->will($this->returnValue(FALSE)); $condition_negated = $this->getMock('Drupal\Core\Condition\ConditionInterface'); $condition_negated->expects($this->any()) ->method('execute') ->will($this->throwException(new ContextException())); $condition_negated->expects($this->atLeastOnce()) ->method('isNegated') ->will($this->returnValue(TRUE)); $conditions = []; $data[] = [$conditions, 'and', TRUE]; $data[] = [$conditions, 'or', FALSE]; $conditions = [$condition_false]; $data[] = [$conditions, 'or', FALSE]; $data[] = [$conditions, 'and', FALSE]; $conditions = [$condition_true]; $data[] = [$conditions, 'or', TRUE]; $data[] = [$conditions, 'and', TRUE]; $conditions = [$condition_true, $condition_false]; $data[] = [$conditions, 'or', TRUE]; $data[] = [$conditions, 'and', FALSE]; $conditions = [$condition_exception]; $data[] = [$conditions, 'or', FALSE]; $data[] = [$conditions, 'and', FALSE]; $conditions = [$condition_true, $condition_exception]; $data[] = [$conditions, 'or', TRUE]; $data[] = [$conditions, 'and', FALSE]; $conditions = [$condition_exception, $condition_true]; $data[] = [$conditions, 'or', TRUE]; $data[] = [$conditions, 'and', FALSE]; $conditions = [$condition_false, $condition_exception]; $data[] = [$conditions, 'or', FALSE]; $data[] = [$conditions, 'and', FALSE]; $conditions = [$condition_exception, $condition_false]; $data[] = [$conditions, 'or', FALSE]; $data[] = [$conditions, 'and', FALSE]; $conditions = [$condition_negated]; $data[] = [$conditions, 'or', TRUE]; $data[] = [$conditions, 'and', TRUE]; $conditions = [$condition_negated, $condition_negated]; $data[] = [$conditions, 'or', TRUE]; $data[] = [$conditions, 'and', TRUE]; return $data; } } class TestConditionAccessResolverTrait { use \Drupal\Core\Condition\ConditionAccessResolverTrait { resolveConditions as public; } }