ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
HasMaxLengthConstraintTest.php
Go to the documentation of this file.
1 <?php
2 
3 /* Copyright (c) 2018 Richard Klees <richard.klees@concepts-and-training.de> Extended GPL, see docs/LICENSE */
4 require_once("libs/composer/vendor/autoload.php");
5 
7 use ILIAS\Data;
8 
10 {
11  public function setUp()
12  {
13  $this->df = new Data\Factory();
14  $this->lng = $this->createMock(\ilLanguage::class);
15  $this->f = new Validation\Factory($this->df, $this->lng);
16 
17  $this->max_length = 2;
18 
19  $this->c = $this->f->hasMaxLength($this->max_length);
20  }
21 
22  public function testAccepts1()
23  {
24  $this->assertTrue($this->c->accepts("12"));
25  }
26 
27  public function testAccepts2()
28  {
29  $this->assertTrue($this->c->accepts("1"));
30  }
31 
32  public function testNotAccepts()
33  {
34  $this->assertFalse($this->c->accepts("123"));
35  }
36 
37  public function testCheckSucceed()
38  {
39  $this->c->check("12");
40  $this->assertTrue(true); // does not throw
41  }
42 
43  public function testCheckFails()
44  {
45  $this->expectException(\UnexpectedValueException::class);
46  $this->c->check("123");
47  }
48 
49  public function testNoProblemWith()
50  {
51  $this->assertNull($this->c->problemWith("12"));
52  }
53 
54  public function testProblemWith()
55  {
56  $this->lng
57  ->expects($this->once())
58  ->method("txt")
59  ->with("not_max_length")
60  ->willReturn("-%s-");
61 
62  $this->assertEquals("-2-", $this->c->problemWith("123"));
63  }
64 
65  public function testRestrictOk()
66  {
67  $ok = $this->df->ok("12");
68 
69  $res = $this->c->restrict($ok);
70  $this->assertTrue($res->isOk());
71  }
72 
73  public function testRestrictNotOk()
74  {
75  $not_ok = $this->df->ok("123");
76 
77  $res = $this->c->restrict($not_ok);
78  $this->assertFalse($res->isOk());
79  }
80 
81  public function testRestrictError()
82  {
83  $error = $this->df->error("error");
84 
85  $res = $this->c->restrict($error);
86  $this->assertSame($error, $res);
87  }
88 
89  public function testWithProblemBuilder()
90  {
91  $new_c = $this->c->withProblemBuilder(function () {
92  return "This was a fault";
93  });
94  $this->assertEquals("This was a fault", $new_c->problemWith("123"));
95  }
96 }
foreach($_POST as $key=> $value) $res
once($eventName, callable $callBack, $priority=100)
Subscribe to an event exactly once.