-
Notifications
You must be signed in to change notification settings - Fork 13
/
ParamsServiceTest.php
54 lines (44 loc) · 1.77 KB
/
ParamsServiceTest.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<?php
namespace JKocik\Laravel\Profiler\Tests\Unit\Services;
use JKocik\Laravel\Profiler\Tests\TestCase;
use JKocik\Laravel\Profiler\Services\ParamsService;
use JKocik\Laravel\Profiler\Tests\Support\Fixtures\DummyClassA;
use JKocik\Laravel\Profiler\Tests\Support\Fixtures\DummyClassB;
class ParamsServiceTest extends TestCase
{
/** @test */
function returns_value_of_primitive_param_type()
{
$paramsService = $this->app->make(ParamsService::class);
$this->assertEquals(1, $paramsService->resolve(1));
$this->assertEquals('something', $paramsService->resolve('something'));
$this->assertEquals(['a', 'b'], $paramsService->resolve(['a', 'b']));
$this->assertEquals(true, $paramsService->resolve(true));
$this->assertEquals(false, $paramsService->resolve(false));
}
/** @test */
function returns_array_of_object_param_if_is_available()
{
$paramsService = $this->app->make(ParamsService::class);
$user = $this->user(['email' => 'a@example.com']);
$this->assertEquals($user->toArray(), $paramsService->resolve($user));
}
/** @test */
function returns_class_name_of_object_param_if_array_is_not_available()
{
$paramsService = $this->app->make(ParamsService::class);
$dummyClassA = new DummyClassA();
$this->assertEquals(DummyClassA::class, $paramsService->resolve($dummyClassA));
}
/** @test */
function can_resolve_array_of_objects()
{
$paramsService = $this->app->make(ParamsService::class);
$dummyClassA = new DummyClassA();
$dummyClassB = new DummyClassB();
$this->assertEquals([
DummyClassA::class,
DummyClassB::class,
], $paramsService->resolve([$dummyClassA, $dummyClassB]));
}
}