ILIAS  release_7 Revision v7.30-3-g800a261c036
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 */
4require_once("libs/composer/vendor/autoload.php");
5
7use ILIAS\Data;
8use PHPUnit\Framework\TestCase;
9
10class 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}
An exception for terminatinating execution or to throw for unit testing.
Builds data types.
Definition: Factory.php:20
foreach($_POST as $key=> $value) $res