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 
6 use 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 }
TestCase for the factory of constraints.
$result
testProblemWith($constraint, $ok_value, $error_value, $message)
constraintsProvider
testAccept($constraint, $ok_value, $error_value, $message)
constraintsProvider
testCheck($constraint, $ok_value, $error_value, $message)
constraintsProvider
$error
Definition: Error.php:17
catch(Exception $e) $message
Builds data types.
Definition: Factory.php:14
testWithProblemBuilder($constraint, $ok_value, $error_value, $message)
constraintsProvider
Create styles array
The data for the language used.
testRestrict($constraint, $ok_value, $error_value, $message)
constraintsProvider