4 require_once(
"libs/composer/vendor/autoload.php");
16 protected function setUp() : void
18 $this->f =
new Data\Factory();
29 $this->assertEquals(3.154,
$result->value());
34 $result = $this->f->error(
"Something went wrong");
43 $this->assertTrue($raised);
49 $this->assertTrue(
$result->isOk());
50 $this->assertFalse(
$result->isError());
55 $result = $this->f->error(
"Something went wrong");
56 $this->assertEquals(
"Something went wrong",
$result->error());
70 $this->assertTrue($raised);
75 $result = $this->f->error(
"Something went wrong");
76 $this->assertTrue(
$result->isError());
77 $this->assertFalse(
$result->isOk());
83 $this->assertEquals(3.154,
$result->valueOr(5));
88 $result = $this->f->error(
"Something went wrong");
89 $this->assertEquals(5,
$result->valueOr(5));
96 $new_result =
$result->map(
function ($v) use ($multiplicator) {
97 return $v * $multiplicator;
100 $this->assertInstanceOf(Data\Result::class, $new_result);
101 $this->assertNotEquals(
$result, $new_result);
102 $this->assertEquals(9, $new_result->value());
107 $result = $this->f->error(
"Something went wrong");
109 $new_result =
$result->map(
function ($v) use ($multiplicator) {
110 return $v * $multiplicator;
113 $this->assertEquals(
$result, $new_result);
120 $new_result =
$result->then(
function ($v) use ($multiplicator) {
121 $ret = $this->f->ok(($v * $multiplicator));
125 $this->assertInstanceOf(Data\Result::class, $new_result);
126 $this->assertNotEquals(
$result, $new_result);
127 $this->assertEquals(9, $new_result->value());
133 $new_result =
$result->then(
function ($v) {
137 $this->assertInstanceOf(Data\Result::class, $new_result);
138 $this->assertEquals(
$result, $new_result);
143 $result = $this->f->error(
"Something went wrong");
145 $new_result =
$result->then(
function ($v) use ($multiplicator) {
146 $ret = $this->f->ok(($v * $multiplicator));
150 $this->assertInstanceOf(Data\Result::class, $new_result);
151 $this->assertEquals(
$result, $new_result);
159 $new_result =
$result->then(
function ($v) {
168 $this->assertTrue($raised);
173 $result = $this->f->error(
"Something went wrong");
174 $exception =
"Something else went wrong";
176 $new_result =
$result->except(
function ($v) use ($exception) {
177 $ret = $this->f->error($exception);
181 $this->assertInstanceOf(Data\Result::class, $new_result);
182 $this->assertNotEquals(
$result, $new_result);
183 $this->assertEquals(
"Something else went wrong", $new_result->error());
188 $result = $this->f->error(
"Something went wrong");
189 $exception =
"Something else went wrong";
191 $new_result =
$result->except(
function ($v) {
195 $this->assertInstanceOf(Data\Result::class, $new_result);
196 $this->assertEquals(
$result, $new_result);
202 $exception =
"Something else went wrong";
204 $new_result =
$result->except(
function ($v) use ($exception) {
205 $ret = $this->f->error($exception);
209 $this->assertInstanceOf(Data\Result::class, $new_result);
210 $this->assertEquals(
$result, $new_result);
215 $result = $this->f->error(
"Something went wrong");
218 $new_result =
$result->except(
function ($v) {
219 return "New error text";
227 $this->assertTrue($raised);
Tests working with result object.