19 declare(strict_types=1);
29 $configCrit1 = $this->getMockBuilder(ilTermsOfServiceCriterionConfig::class)->getMock();
32 ->method(
'jsonSerialize')
34 'usr_language' =>
'de' 37 $configCrit2 = $this->getMockBuilder(ilTermsOfServiceCriterionConfig::class)->getMock();
40 ->method(
'jsonSerialize')
42 'usr_global_role' => 4
45 $criterion1 = $this->getMockBuilder(ilTermsOfServiceEvaluableCriterion::class)->getMock();
48 ->method(
'getCriterionId')
49 ->willReturn(
'crit1');
52 ->method(
'getCriterionValue')
53 ->willReturn($configCrit1);
55 $criterion2 = $this->getMockBuilder(ilTermsOfServiceEvaluableCriterion::class)->getMock();
58 ->method(
'getCriterionId')
59 ->willReturn(
'crit2');
62 ->method(
'getCriterionValue')
63 ->willReturn($configCrit2);
72 $this->assertCount(count(
$data), $bag);
73 $this->assertArrayHasKey(0, $bag);
74 $this->assertArrayHasKey(1, $bag);
75 $this->assertArrayHasKey(
'id', $bag[0]);
76 $this->assertArrayHasKey(
'value', $bag[0]);
77 $this->assertArrayHasKey(
'id', $bag[1]);
78 $this->assertArrayHasKey(
'value', $bag[1]);
80 '[{"id":"crit1","value":{"usr_language":"de"}},{"id":"crit2","value":{"usr_global_role":4}}]',
93 $this->assertSame($bag->
toJson(), $newBag->toJson());
98 $configCrit1 = $this->getMockBuilder(ilTermsOfServiceCriterionConfig::class)->getMock();
100 $criterion1 = $this->getMockBuilder(ilTermsOfServiceEvaluableCriterion::class)->getMock();
103 ->method(
'getCriterionId')
104 ->willReturn(
'crit1');
107 ->method(
'getCriterionValue')
108 ->willReturn($configCrit1);
110 $this->expectException(ilTermsOfServiceUnexpectedCriteriaBagContentException::class);
121 $object->not_expected =
'phpunit';
122 $object->value = [
'id' => $object->not_expected,
'value' => [
'usr_language' =>
'de']];
125 'Float' => [json_encode(5.1, JSON_THROW_ON_ERROR)],
126 'Integer' => [json_encode(5, JSON_THROW_ON_ERROR)],
127 'String' => [json_encode(
'5', JSON_THROW_ON_ERROR)],
128 'Null' => [json_encode(null, JSON_THROW_ON_ERROR)],
129 'Object' => [json_encode($object, JSON_THROW_ON_ERROR)],
130 'Bool' => [json_encode(
true, JSON_THROW_ON_ERROR)],
136 $arrayOfTypes[
'Array of ' .
$type] = [json_encode([json_decode($values[0],
false, 512, JSON_THROW_ON_ERROR)], JSON_THROW_ON_ERROR)];
139 return $data + $arrayOfTypes;
147 $configCrit1 = $this->getMockBuilder(ilTermsOfServiceCriterionConfig::class)->getMock();
149 $criterion1 = $this->getMockBuilder(ilTermsOfServiceEvaluableCriterion::class)->getMock();
152 ->method(
'getCriterionId')
153 ->willReturn(
'crit1');
156 ->method(
'getCriterionValue')
157 ->willReturn($configCrit1);
159 $this->expectException(ilTermsOfServiceUnexpectedCriteriaBagContentException::class);
162 $bag->fromJson($mixedData);
167 $configCrit1 = $this->getMockBuilder(ilTermsOfServiceCriterionConfig::class)->getMock();
169 $criterion1 = $this->getMockBuilder(ilTermsOfServiceEvaluableCriterion::class)->getMock();
172 ->method(
'getCriterionId')
173 ->willReturn(
'crit1');
176 ->method(
'getCriterionValue')
177 ->willReturn($configCrit1);
179 $this->expectException(ilTermsOfServiceUnexpectedCriteriaBagContentException::class);
182 $bag->fromJson(
'[{"invalid":"crit1","value":{"usr_language":"de"}},{"id":"crit2","value":{"usr_global_role":4}}]');
188 $bag->fromJson(
'[{"id":"crit1","value":{"usr_language":"de"}},{"id":"crit2","value":{"usr_global_role":4}}]');
190 $this->assertCount(count($bag), $bag);
191 $this->assertArrayHasKey(0, $bag);
192 $this->assertArrayHasKey(1, $bag);
193 $this->assertArrayHasKey(
'id', $bag[0]);
194 $this->assertArrayHasKey(
'value', $bag[0]);
195 $this->assertArrayHasKey(
'id', $bag[1]);
196 $this->assertArrayHasKey(
'value', $bag[1]);
198 '[{"id":"crit1","value":{"usr_language":"de"}},{"id":"crit2","value":{"usr_global_role":4}}]',
invalidJsonDataProvider()
testCriteriaCanBePassedAsString(ilTermsOfServiceAcceptanceHistoryCriteriaBag $bag)
testCriteriaCanBePassedAsArray
testExceptionIsRaisedWhenAtLeastOneNonCriterionIsPassedInArrayOnCreation()
Class ilTermsOfServiceBaseTest.
testCriteriaCanBePassedAsArray()
Class ilTermsOfServiceAcceptanceHistoryCriteriaBag.
testCriteriaImportFromJsonStringWorksAsExpected()
testExceptionIsRaisedWhenInvalidJsonDataIsPassedOnImport($mixedData)
invalidJsonDataProvider
Class ilTermsOfServiceAcceptanceHistoryCriteriaBagTest.
testExceptionIsRaisedWhenAtLeastOneInvalidElementIsPassedOnJsonStringImport()