ILIAS  release_5-3 Revision v5.3.23-19-g915713cf615
ValidationConstraintsCustomTest.php
Go to the documentation of this file.
1<?php
2
3/* Copyright (c) 2017 Stefan Hecken <stefan.hecken@concepts-and-training.de> Extended GPL, see docs/LICENSE */
4
6use ILIAS\Data;
7
14{
18 public function testAccept($constraint, $ok_value, $error_value, $message)
19 {
20 $this->assertTrue($constraint->accepts($ok_value));
21 $this->assertFalse($constraint->accepts($error_value));
22 }
23
27 public function testCheck($constraint, $ok_value, $error_value, $message)
28 {
29 $raised = false;
30 try {
31 $constraint->check($ok_value);
32 } catch (UnexpectedValueException $e) {
33 $raised = true;
34 }
35
36 $this->assertFalse($raised);
37
38 try {
39 $constraint->check($error_value);
40 } catch (UnexpectedValueException $e) {
41 $this->assertEquals($message, $e->getMessage());
42 $raised = true;
43 }
44
45 $this->assertTrue($raised);
46 }
47
51 public function testProblemWith($constraint, $ok_value, $error_value, $message)
52 {
53 $this->assertNull($constraint->problemWith($ok_value));
54 $this->assertInternalType("string", $constraint->problemWith($error_value));
55 $this->assertEquals($message, $constraint->problemWith($error_value));
56 }
57
61 public function testRestrict($constraint, $ok_value, $error_value, $message)
62 {
63 $rf = new Data\Factory();
64 $ok = $rf->ok($ok_value);
65 $ok2 = $rf->ok($error_value);
66 $error = $rf->error("text");
67
68 $result = $constraint->restrict($ok);
69 $this->assertTrue($result->isOk());
70
71 $result = $constraint->restrict($ok2);
72 $this->assertTrue($result->isError());
73
74 $result = $constraint->restrict($error);
75 $this->assertSame($error, $result);
76 }
77
81 public function testWithProblemBuilder($constraint, $ok_value, $error_value, $message)
82 {
83 $new_constraint = $constraint->withProblemBuilder(function () {
84 return "This was a vault";
85 });
86 $this->assertEquals("This was a vault", $new_constraint->problemWith($error_value));
87 }
88
89 public function constraintsProvider()
90 {
91 $f = new Validation\Factory(new Data\Factory());
92
93 return array(array($f->custom(function ($value) {
94 return $value > 1;
95 }, "Value is not greater"), 2, 1, "Value is not greater"),
96 array($f->custom(function ($value) {
97 return $value < 2;
98 }, "Value is not greater"), 1, 2, "Value is not greater")
99 );
100 }
101}
$result
An exception for terminatinating execution or to throw for unit testing.
Builds data types.
Definition: Factory.php:15
TestCase for the factory of constraints.
testRestrict($constraint, $ok_value, $error_value, $message)
@dataProvider constraintsProvider
testAccept($constraint, $ok_value, $error_value, $message)
@dataProvider constraintsProvider
testWithProblemBuilder($constraint, $ok_value, $error_value, $message)
@dataProvider constraintsProvider
testProblemWith($constraint, $ok_value, $error_value, $message)
@dataProvider constraintsProvider
testCheck($constraint, $ok_value, $error_value, $message)
@dataProvider constraintsProvider
$error
Definition: Error.php:17
catch(Exception $e) $message