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

LockingMiddlewareTests   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 50
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 4

Importance

Changes 0
Metric Value
wmc 1
lcom 0
cbo 4
dl 0
loc 50
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
B testHandleMessage() 0 44 1
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