HandlerClassResolverTests::testResolve()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 48
Code Lines 33

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 48
rs 9.125
c 0
b 0
f 0
cc 1
eloc 33
nc 1
nop 0
1
<?php
2
3
/**
4
 * This file is part of the Cubiche package.
5
 *
6
 * Copyright (c) Cubiche
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11
12
namespace Cubiche\Core\Bus\Tests\Units\Middlewares\Handler\Resolver\HandlerClass;
13
14
use Cubiche\Core\Bus\Exception\NotFoundException;
15
use Cubiche\Core\Bus\Middlewares\Handler\Locator\InMemoryLocator;
16
use Cubiche\Core\Bus\Middlewares\Handler\Resolver\HandlerClass\HandlerClassResolver;
17
use Cubiche\Core\Bus\Middlewares\Handler\Resolver\HandlerMethodName\MethodWithShortObjectNameResolver;
18
use Cubiche\Core\Bus\Middlewares\Handler\Resolver\NameOfMessage\FromClassNameResolver;
19
use Cubiche\Core\Bus\Tests\Fixtures\Message\LoginUserMessage;
20
use Cubiche\Core\Bus\Tests\Fixtures\Message\LoginUserMessageListener;
21
use Cubiche\Core\Bus\Tests\Fixtures\Message\LogoutUserMessage;
22
use Cubiche\Core\Bus\Tests\Units\TestCase;
23
use Cubiche\Core\Delegate\Delegate;
24
25
/**
26
 * HandlerClassResolver class.
27
 *
28
 * Generated by TestGenerator on 2016-04-07 at 15:40:41.
29
 */
30
class HandlerClassResolverTests extends TestCase
31
{
32
    /**
33
     * Test Resolve method.
34
     */
35
    public function testResolve()
36
    {
37
        $this
38
            ->given(
39
                $resolver = new HandlerClassResolver(
40
                    new FromClassNameResolver(),
41
                    new MethodWithShortObjectNameResolver('Message'),
42
                    new InMemoryLocator([])
43
                )
44
            )
45
            ->and($resolver->addHandler(LoginUserMessage::class, new LoginUserMessageListener()))
46
            ->when($result = $resolver->resolve(new LoginUserMessage('[email protected]')))
47
            ->then()
48
                ->object($result)
49
                    ->isInstanceOf(Delegate::class)
50
        ;
51
52
        $this
53
            ->given(
54
                $resolver = new HandlerClassResolver(
55
                    new FromClassNameResolver(),
56
                    new MethodWithShortObjectNameResolver('Message'),
57
                    new InMemoryLocator([])
58
                )
59
            )
60
            ->and($resolver->addHandler(LoginUserMessage::class, new LoginUserMessageListener()))
61
            ->then()
62
                ->exception(function () use ($resolver) {
63
                    $resolver->resolve(new LogoutUserMessage('[email protected]'));
64
                })
65
                ->isInstanceOf(NotFoundException::class)
66
        ;
67
68
        $this
69
            ->given(
70
                $resolver = new HandlerClassResolver(
71
                    new FromClassNameResolver(),
72
                    new MethodWithShortObjectNameResolver('Command'),
73
                    new InMemoryLocator([LoginUserMessage::class => new LoginUserMessageListener()])
74
                )
75
            )
76
            ->then()
77
                ->exception(function () use ($resolver) {
78
                    $resolver->resolve(new LoginUserMessage('[email protected]'));
79
                })
80
                ->isInstanceOf(NotFoundException::class)
81
        ;
82
    }
83
}
84