ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
All Data Structures Namespaces Files Functions Variables Modules Pages
ilTermsOfServiceAcceptanceHistoryCriteriaBagTest.php
Go to the documentation of this file.
1 <?php declare(strict_types=1);
2 /* Copyright (c) 1998-2018 ILIAS open source, Extended GPL, see docs/LICENSE */
3 
9 {
14  public function testCriteriaCanBePassedAsArray() : void
15  {
16  $configCrit1 = $this->getMockBuilder(ilTermsOfServiceCriterionConfig::class)->getMock();
17 
18  $configCrit1
19  ->expects($this->any())
20  ->method('jsonSerialize')
21  ->willReturn([
22  'usr_language' => 'de'
23  ]);
24 
25  $configCrit2 = $this->getMockBuilder(ilTermsOfServiceCriterionConfig::class)->getMock();
26 
27  $configCrit2
28  ->expects($this->any())
29  ->method('jsonSerialize')
30  ->willReturn([
31  'usr_global_role' => 4
32  ]);
33 
34  $criterion1 = $this->getMockBuilder(ilTermsOfServiceEvaluableCriterion::class)->getMock();
35 
36  $criterion1
37  ->expects($this->any())
38  ->method('getCriterionId')
39  ->willReturn('crit1');
40 
41  $criterion1
42  ->expects($this->any())
43  ->method('getCriterionValue')
44  ->willReturn($configCrit1);
45 
46  $criterion2 = $this->getMockBuilder(ilTermsOfServiceEvaluableCriterion::class)->getMock();
47 
48  $criterion2
49  ->expects($this->any())
50  ->method('getCriterionId')
51  ->willReturn('crit2');
52 
53  $criterion2
54  ->expects($this->any())
55  ->method('getCriterionValue')
56  ->willReturn($configCrit2);
57 
58  $data = [
59  $criterion1,
60  $criterion2
61  ];
62 
64 
65  $this->assertCount(count($data), $bag);
66  $this->assertArrayHasKey(0, $bag);
67  $this->assertArrayHasKey(1, $bag);
68  $this->assertArrayHasKey('id', $bag[0]);
69  $this->assertArrayHasKey('value', $bag[0]);
70  $this->assertArrayHasKey('id', $bag[1]);
71  $this->assertArrayHasKey('value', $bag[1]);
72  $this->assertEquals(
73  '[{"id":"crit1","value":{"usr_language":"de"}},{"id":"crit2","value":{"usr_global_role":4}}]',
74  $bag->toJson()
75  );
76  }
77 
83  {
84  $configCrit1 = $this->getMockBuilder(ilTermsOfServiceCriterionConfig::class)->getMock();
85 
86  $criterion1 = $this->getMockBuilder(ilTermsOfServiceEvaluableCriterion::class)->getMock();
87 
88  $criterion1
89  ->expects($this->any())
90  ->method('getCriterionId')
91  ->willReturn('crit1');
92 
93  $criterion1
94  ->expects($this->any())
95  ->method('getCriterionValue')
96  ->willReturn($configCrit1);
97 
98  $this->expectException(ilTermsOfServiceUnexpectedCriteriaBagContentException::class);
99 
101  $criterion1,
102  5
103  ]);
104  }
105 
111  {
112  $configCrit1 = $this->getMockBuilder(ilTermsOfServiceCriterionConfig::class)->getMock();
113 
114  $criterion1 = $this->getMockBuilder(ilTermsOfServiceEvaluableCriterion::class)->getMock();
115 
116  $criterion1
117  ->expects($this->any())
118  ->method('getCriterionId')
119  ->willReturn('crit1');
120 
121  $criterion1
122  ->expects($this->any())
123  ->method('getCriterionValue')
124  ->willReturn($configCrit1);
125 
126  $this->expectException(ilTermsOfServiceUnexpectedCriteriaBagContentException::class);
127 
129  $bag->fromJson('5');
130  }
131 
137  {
138  $configCrit1 = $this->getMockBuilder(ilTermsOfServiceCriterionConfig::class)->getMock();
139 
140  $criterion1 = $this->getMockBuilder(ilTermsOfServiceEvaluableCriterion::class)->getMock();
141 
142  $criterion1
143  ->expects($this->any())
144  ->method('getCriterionId')
145  ->willReturn('crit1');
146 
147  $criterion1
148  ->expects($this->any())
149  ->method('getCriterionValue')
150  ->willReturn($configCrit1);
151 
152  $this->expectException(ilTermsOfServiceUnexpectedCriteriaBagContentException::class);
153 
155  $bag->fromJson('[{"invalid":"crit1","value":{"usr_language":"de"}},{"id":"crit2","value":{"usr_global_role":4}}]');
156  }
157 
162  {
164  $bag->fromJson('[{"id":"crit1","value":{"usr_language":"de"}},{"id":"crit2","value":{"usr_global_role":4}}]');
165 
166  $this->assertCount(count($bag), $bag);
167  $this->assertArrayHasKey(0, $bag);
168  $this->assertArrayHasKey(1, $bag);
169  $this->assertArrayHasKey('id', $bag[0]);
170  $this->assertArrayHasKey('value', $bag[0]);
171  $this->assertArrayHasKey('id', $bag[1]);
172  $this->assertArrayHasKey('value', $bag[1]);
173  $this->assertEquals(
174  '[{"id":"crit1","value":{"usr_language":"de"}},{"id":"crit2","value":{"usr_global_role":4}}]',
175  $bag->toJson()
176  );
177  }
178 }
$data
Definition: storeScorm.php:23
Class ilTermsOfServiceBaseTest.
Class ilTermsOfServiceAcceptanceHistoryCriteriaBagTest.