More updates to stop using dev or alpha or beta versions.
[yaffs-website] / web / core / tests / Drupal / Tests / Core / Condition / ConditionAccessResolverTraitTest.php
1 <?php
2
3 /**
4  * @file
5  * Contains \Drupal\Tests\Core\Condition\ConditionAccessResolverTraitTest.
6  */
7
8 namespace Drupal\Tests\Core\Condition;
9
10 use Drupal\Component\Plugin\Exception\ContextException;
11 use Drupal\Tests\UnitTestCase;
12
13 /**
14  * @coversDefaultClass \Drupal\Core\Condition\ConditionAccessResolverTrait
15  * @group Condition
16  */
17 class ConditionAccessResolverTraitTest extends UnitTestCase {
18
19   /**
20    * Tests the resolveConditions() method.
21    *
22    * @covers ::resolveConditions
23    *
24    * @dataProvider providerTestResolveConditions
25    */
26   public function testResolveConditions($conditions, $logic, $expected) {
27     $trait_object = new TestConditionAccessResolverTrait();
28     $this->assertEquals($expected, $trait_object->resolveConditions($conditions, $logic));
29   }
30
31   public function providerTestResolveConditions() {
32     $data = [];
33
34     $condition_true = $this->getMock('Drupal\Core\Condition\ConditionInterface');
35     $condition_true->expects($this->any())
36       ->method('execute')
37       ->will($this->returnValue(TRUE));
38     $condition_false = $this->getMock('Drupal\Core\Condition\ConditionInterface');
39     $condition_false->expects($this->any())
40       ->method('execute')
41       ->will($this->returnValue(FALSE));
42     $condition_exception = $this->getMock('Drupal\Core\Condition\ConditionInterface');
43     $condition_exception->expects($this->any())
44       ->method('execute')
45       ->will($this->throwException(new ContextException()));
46     $condition_exception->expects($this->atLeastOnce())
47       ->method('isNegated')
48       ->will($this->returnValue(FALSE));
49     $condition_negated = $this->getMock('Drupal\Core\Condition\ConditionInterface');
50     $condition_negated->expects($this->any())
51       ->method('execute')
52       ->will($this->throwException(new ContextException()));
53     $condition_negated->expects($this->atLeastOnce())
54       ->method('isNegated')
55       ->will($this->returnValue(TRUE));
56
57     $conditions = [];
58     $data[] = [$conditions, 'and', TRUE];
59     $data[] = [$conditions, 'or', FALSE];
60
61     $conditions = [$condition_false];
62     $data[] = [$conditions, 'or', FALSE];
63     $data[] = [$conditions, 'and', FALSE];
64
65     $conditions = [$condition_true];
66     $data[] = [$conditions, 'or', TRUE];
67     $data[] = [$conditions, 'and', TRUE];
68
69     $conditions = [$condition_true, $condition_false];
70     $data[] = [$conditions, 'or', TRUE];
71     $data[] = [$conditions, 'and', FALSE];
72
73     $conditions = [$condition_exception];
74     $data[] = [$conditions, 'or', FALSE];
75     $data[] = [$conditions, 'and', FALSE];
76
77     $conditions = [$condition_true, $condition_exception];
78     $data[] = [$conditions, 'or', TRUE];
79     $data[] = [$conditions, 'and', FALSE];
80
81     $conditions = [$condition_exception, $condition_true];
82     $data[] = [$conditions, 'or', TRUE];
83     $data[] = [$conditions, 'and', FALSE];
84
85     $conditions = [$condition_false, $condition_exception];
86     $data[] = [$conditions, 'or', FALSE];
87     $data[] = [$conditions, 'and', FALSE];
88
89     $conditions = [$condition_exception, $condition_false];
90     $data[] = [$conditions, 'or', FALSE];
91     $data[] = [$conditions, 'and', FALSE];
92
93     $conditions = [$condition_negated];
94     $data[] = [$conditions, 'or', TRUE];
95     $data[] = [$conditions, 'and', TRUE];
96
97     $conditions = [$condition_negated, $condition_negated];
98     $data[] = [$conditions, 'or', TRUE];
99     $data[] = [$conditions, 'and', TRUE];
100     return $data;
101   }
102
103 }
104
105 class TestConditionAccessResolverTrait {
106   use \Drupal\Core\Condition\ConditionAccessResolverTrait {
107     resolveConditions as public;
108   }
109
110 }