ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
LogicalOrTest.php
Go to the documentation of this file.
1<?php
2/* Copyright (c) 1998-2018 ILIAS open source, Extended GPL, see docs/LICENSE */
3
4require_once 'libs/composer/vendor/autoload.php';
5
6use ILIAS\Data;
9
15{
22 public function testAccept(LogicalOr $constraint, $okValue, $errorValue)
23 {
24 $this->assertTrue($constraint->accepts($okValue));
25 $this->assertFalse($constraint->accepts($errorValue));
26 }
27
34 public function testCheck(LogicalOr $constraint, $okValue, $errorValue)
35 {
36 $raised = false;
37
38 try {
39 $constraint->check($errorValue);
40 } catch (\UnexpectedValueException $e) {
41 $raised = true;
42 }
43
44 $this->assertTrue($raised);
45
46 try {
47 $constraint->check($okValue);
48 $raised = false;
49 } catch (\UnexpectedValueException $e) {
50 $raised = true;
51 }
52
53 $this->assertFalse($raised);
54 }
55
62 public function testProblemWith(LogicalOr $constraint, $okValue, $errorValue)
63 {
64 $this->assertNull($constraint->problemWith($okValue));
65 $this->assertInternalType('string', $constraint->problemWith($errorValue));
66 }
67
74 public function testRestrict(LogicalOr $constraint, $okValue, $errorValue)
75 {
76 $rf = new Data\Factory();
77 $ok = $rf->ok($okValue);
78 $ok2 = $rf->ok($errorValue);
79 $error = $rf->error('text');
80
81 $result = $constraint->restrict($ok);
82 $this->assertTrue($result->isOk());
83
84 $result = $constraint->restrict($ok2);
85 $this->assertTrue($result->isError());
86
87 $result = $constraint->restrict($error);
88 $this->assertSame($error, $result);
89 }
90
97 public function testWithProblemBuilder(LogicalOr $constraint, $okValue, $errorValue)
98 {
99 $new_constraint = $constraint->withProblemBuilder(function () {
100 return "This was a vault";
101 });
102 $this->assertEquals("This was a vault", $new_constraint->problemWith($errorValue));
103 }
104
108 public function constraintsProvider() : array
109 {
110 $mock = $this->getMockBuilder(\ilLanguage::class)->disableOriginalConstructor()->getMock();
111 $f = new Validation\Factory(new Data\Factory(), $mock);
112
113 return [
114 [$f->or([$f->isInt(), $f->isString()]), '5', []],
115 [$f->or([$f->greaterThan(5), $f->lessThan(2)]), 7, 3]
116 ];
117 }
118}
$result
An exception for terminatinating execution or to throw for unit testing.
Builds data types.
Definition: Factory.php:15
accepts($value)
Tells if the provided value complies.bool
Definition: Custom.php:72
problemWith($value)
Tells what the problem with the provided value is.Should return null if accepts($value)....
Definition: Custom.php:80
check($value)
Checks the provided value.Should not throw if accepts($value).UnexpectedValueException if value does ...
Definition: Custom.php:60
restrict(Result $result)
Restricts a Result.Must do nothing with the result if $result->isError(). Must replace the result wit...
Definition: Custom.php:92
withProblemBuilder(callable $builder)
Get a constraint like this one with a builder for a custom error message.problemWith() must return an...
Definition: Custom.php:110
Class LogicalOrTest.
testRestrict(LogicalOr $constraint, $okValue, $errorValue)
@dataProvider constraintsProvider
testWithProblemBuilder(LogicalOr $constraint, $okValue, $errorValue)
@dataProvider constraintsProvider
testAccept(LogicalOr $constraint, $okValue, $errorValue)
@dataProvider constraintsProvider
testProblemWith(LogicalOr $constraint, $okValue, $errorValue)
@dataProvider constraintsProvider
testCheck(LogicalOr $constraint, $okValue, $errorValue)
@dataProvider constraintsProvider