Completed
Push — master ( 7c00aa...d8aae5 )
by Ivannis Suárez
19:41
created

LockingMiddlewareTests::testHandleEvent()   B

Complexity

Conditions 1
Paths 1

Size

Total Lines 44
Code Lines 31

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 44
rs 8.8571
c 0
b 0
f 0
cc 1
eloc 31
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\Locking;
13
14
use Cubiche\Core\Bus\Middlewares\Locking\LockingMiddleware;
15
use Cubiche\Core\Bus\Tests\Fixtures\Message\LoginUserMessage;
16
use Cubiche\Core\Bus\Tests\Fixtures\Message\TriggerMessageOnListener;
17
use Cubiche\Core\Bus\Tests\Units\TestCase;
18
19
/**
20
 * LockingMiddleware class.
21
 *
22
 * Generated by TestGenerator on 2016-04-07 at 15:40:41.
23
 */
24
class LockingMiddlewareTests extends TestCase
25
{
26
    /**
27
     * Test handle method.
28
     */
29
    public function testHandleMessage()
30
    {
31
        $this
32
            ->given($middleware = new LockingMiddleware())
33
            ->and($event = new LoginUserMessage('[email protected]'))
34
            ->and($callable = function (LoginUserMessage $event) {
35
                $event->setEmail('[email protected]');
36
            })
37
            ->when($middleware->handle($event, $callable))
38
            ->then()
39
                ->string($event->email())
40
                    ->isEqualTo('[email protected]')
41
        ;
42
43
        $this
44
            ->given($middleware = new LockingMiddleware())
45
            ->and($event = new LoginUserMessage('[email protected]'))
46
            ->and($callable = function (LoginUserMessage $event) {
47
                $event->setEmail('[email protected]');
48
49
                throw new \InvalidArgumentException();
50
            })
51
            ->then()
52
                ->exception(function () use ($middleware, $event, $callable) {
53
                    $middleware->handle($event, $callable);
54
                })
55
                ->isInstanceOf(\InvalidArgumentException::class)
56
        ;
57
58
        $this
59
            ->given($middleware = new LockingMiddleware())
60
            ->and($callable = function (LoginUserMessage $event) {
61
                $event->setEmail(md5($event->email()));
62
            })
63
            ->and($listener = new TriggerMessageOnListener($middleware, $callable))
64
            ->and($event = new LoginUserMessage('[email protected]'))
65
            ->when($middleware->handle($event, function ($event) use ($listener) {
66
                $listener->onLogin($event);
67
            }))
68
            ->then()
69
                ->string($event->email())
70
                    ->isEqualTo(md5(sha1('[email protected]')))
71
        ;
72
    }
73
}
74