Skip to content

Commit 9d7c618

Browse files
committed
test: add unit test on resolver
1 parent 56b13e1 commit 9d7c618

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
<?php
2+
3+
namespace Test\Unit\Descriptors;
4+
5+
use Ark4ne\JsonApi\Descriptors\Resolver;
6+
use Ark4ne\JsonApi\Descriptors\Values\ValueArray;
7+
use Ark4ne\JsonApi\Descriptors\Values\ValueBool;
8+
use Ark4ne\JsonApi\Descriptors\Values\ValueMixed;
9+
use Illuminate\Database\Eloquent\Model;
10+
use Illuminate\Http\Request;
11+
use Test\Support\Reflect;
12+
use Test\TestCase;
13+
14+
class ResolverTest extends TestCase
15+
{
16+
public function testResolveValue()
17+
{
18+
$stub = new class {
19+
use Resolver;
20+
21+
public $resource;
22+
};
23+
24+
$stub->resource = new class([
25+
'b' => 1,
26+
'f' => 123
27+
]) extends Model {
28+
protected $fillable = ['b', 'f'];
29+
};
30+
31+
$request = new Request;
32+
33+
$actual = Reflect::invoke($stub, 'resolveValues', $request, null);
34+
$this->assertNull($actual);
35+
36+
$actual = Reflect::invoke($stub, 'resolveValues', $request, []);
37+
$this->assertEquals([], $actual);
38+
39+
$actual = Reflect::invoke($stub, 'resolveValues', $request, [
40+
'a' => 'abc',
41+
'b' => new ValueMixed(null),
42+
'c' => new ValueMixed('c'),
43+
'd' => new ValueMixed(fn() => 'd'),
44+
new ValueMixed('e'),
45+
new ValueMixed('f'),
46+
]);
47+
$this->assertEquals([
48+
'a' => 'abc',
49+
'b' => 1,
50+
'c' => null,
51+
'd' => 'd',
52+
'e' => null,
53+
'f' => 123,
54+
], $actual);
55+
}
56+
}

0 commit comments

Comments
 (0)