ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
IsNullConstraintTest.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->c = $this->f->isNull();
18  }
19 
20  public function testAccepts()
21  {
22  $this->assertTrue($this->c->accepts(null));
23  }
24 
25  public function testNotAccepts()
26  {
27  $this->assertFalse($this->c->accepts(2));
28  }
29 
30  public function testCheckSucceed()
31  {
32  $this->c->check(null);
33  $this->assertTrue(true); // does not throw
34  }
35 
36  public function testCheckFails()
37  {
38  $this->expectException(\UnexpectedValueException::class);
39  $this->c->check(2);
40  }
41 
42  public function testNoProblemWith()
43  {
44  $this->assertNull($this->c->problemWith(null));
45  }
46 
47  public function testProblemWith()
48  {
49  $this->lng
50  ->expects($this->once())
51  ->method("txt")
52  ->with("not_a_null")
53  ->willReturn("-%s-");
54 
55  $this->assertEquals("-integer-", $this->c->problemWith(2));
56  }
57 
58  public function testRestrictOk()
59  {
60  $ok = $this->df->ok(null);
61 
62  $res = $this->c->restrict($ok);
63  $this->assertTrue($res->isOk());
64  }
65 
66  public function testRestrictNotOk()
67  {
68  $not_ok = $this->df->ok(2);
69 
70  $res = $this->c->restrict($not_ok);
71  $this->assertFalse($res->isOk());
72  }
73 
74  public function testRestrictError()
75  {
76  $error = $this->df->error("error");
77 
78  $res = $this->c->restrict($error);
79  $this->assertSame($error, $res);
80  }
81 
82  public function testWithProblemBuilder()
83  {
84  $new_c = $this->c->withProblemBuilder(function () {
85  return "This was a fault";
86  });
87  $this->assertEquals("This was a fault", $new_c->problemWith(2));
88  }
89 }
foreach($_POST as $key=> $value) $res
once($eventName, callable $callBack, $priority=100)
Subscribe to an event exactly once.