ILIAS  release_7 Revision v7.30-3-g800a261c036
All Data Structures Namespaces Files Functions Variables Modules Pages
NotConstraintTest.php
Go to the documentation of this file.
1 <?php
2 
3 /* Copyright (c) 2017, 2018, Stefan Hecken <stefan.hecken@concepts-and-training.de>, 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;
9 
10 class NotTest extends TestCase
11 {
15  private $df;
16 
20  private $lng;
21 
25  private $refinery;
26 
30  private $not_true;
31 
35  private $not_false;
36 
37  public function setUp() : void
38  {
39  $this->df = new Data\Factory();
40  $this->lng = $this->createMock(\ilLanguage::class);
41  $this->refinery = new \ILIAS\Refinery\Factory($this->df, $this->lng);
42 
43  $group = $this->refinery->custom();
44 
45  $this->not_true = $this->refinery->logical()->not($group->constraint(
46  function ($v) {
47  return true;
48  },
49  "not_true"
50  ));
51 
52  $this->not_false = $this->refinery->logical()->not($group->constraint(
53  function ($v) {
54  return false;
55  },
56  "not_false"
57  ));
58  }
59 
60  public function testAccepts()
61  {
62  $this->assertTrue($this->not_false->accepts(null));
63  }
64 
65  public function testNotAccepts()
66  {
67  $this->assertFalse($this->not_true->accepts(null));
68  }
69 
70  public function testCheckSucceed()
71  {
72  $this->not_false->check(null);
73  $this->assertTrue(true); // does not throw
74  }
75 
76  public function testCheckFails()
77  {
78  $this->expectException(\UnexpectedValueException::class);
79  $this->not_true->check(null);
80  }
81 
82  public function testNoProblemWith()
83  {
84  $this->assertNull($this->not_false->problemWith(null));
85  }
86 
87  public function testProblemWith()
88  {
89  $this->lng
90  ->expects($this->once())
91  ->method("txt")
92  ->with("not_generic")
93  ->willReturn("-%s-");
94 
95  $this->assertEquals("-not_true-", $this->not_true->problemWith(null));
96  }
97 
98  public function testRestrictOk()
99  {
100  $ok = $this->df->ok(null);
101 
102  $res = $this->not_false->applyTo($ok);
103  $this->assertTrue($res->isOk());
104  }
105 
106  public function testRestrictNotOk()
107  {
108  $not_ok = $this->df->ok(null);
109 
110  $res = $this->not_true->applyTo($not_ok);
111  $this->assertFalse($res->isOk());
112  }
113 
114  public function testRestrictError()
115  {
116  $error = $this->df->error("error");
117 
118  $res = $this->not_false->applyTo($error);
119  $this->assertSame($error, $res);
120  }
121 
122  public function testWithProblemBuilder()
123  {
124  $new_c = $this->not_true->withProblemBuilder(function () {
125  return "This was a fault";
126  });
127  $this->assertEquals("This was a fault", $new_c->problemWith(null));
128  }
129 }
foreach($_POST as $key=> $value) $res