Completed
Push — master ( 893872...3f3cc0 )
by Joschi
02:50
created

BasicServerTest::testObjectRoutes()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 10
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 10
rs 9.4285
cc 1
eloc 6
nc 1
nop 0
1
<?php
2
3
/**
4
 * apparat-server
5
 *
6
 * @category    Apparat
7
 * @package     Apparat\Server
8
 * @subpackage  Apparat\Server\Tests
9
 * @author      Joschi Kuphal <[email protected]> / @jkphl
10
 * @copyright   Copyright © 2016 Joschi Kuphal <[email protected]> / @jkphl
11
 * @license     http://opensource.org/licenses/MIT The MIT License (MIT)
12
 */
13
14
/***********************************************************************************
15
 *  The MIT License (MIT)
16
 *
17
 *  Copyright © 2016 Joschi Kuphal <[email protected]> / @jkphl
18
 *
19
 *  Permission is hereby granted, free of charge, to any person obtaining a copy of
20
 *  this software and associated documentation files (the "Software"), to deal in
21
 *  the Software without restriction, including without limitation the rights to
22
 *  use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
23
 *  the Software, and to permit persons to whom the Software is furnished to do so,
24
 *  subject to the following conditions:
25
 *
26
 *  The above copyright notice and this permission notice shall be included in all
27
 *  copies or substantial portions of the Software.
28
 *
29
 *  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
30
 *  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
31
 *  FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
32
 *  COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
33
 *  IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
34
 *  CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
35
 ***********************************************************************************/
36
37
namespace Apparat\Server\Tests;
38
39
use Apparat\Kernel\Ports\Kernel;
40
use Apparat\Server\Domain\Model\Server;
41
use Apparat\Server\Ports\Facade\ServerFacade;
42
use Apparat\Server\Ports\Route\Route;
43
use Apparat\Server\Tests\Adr\TestAction;
44
use Apparat\Server\Tests\Adr\TestModule;
45
use Zend\Diactoros\ServerRequest;
46
use Zend\Diactoros\Uri;
47
48
/**
49
 * Basic server test
50
 *
51
 * @package Apparat\Server
52
 * @subpackage Apparat\Server\Tests
53
 */
54
class BasicServerTest extends AbstractServerTest
55
{
56
    /**
57
     * This method is called before the first test of this test class is run.
58
     *
59
     * @since Method available since Release 3.4.0
60
     */
61
    public static function setUpBeforeClass()
62
    {
63
        TestModule::autorun();
64
    }
65
66
    /**
67
     * Test the server instantiation
68
     */
69
    public function testServerInstance()
70
    {
71
        $server = Kernel::create(Server::class);
72
        $this->assertInstanceOf(Server::class, $server);
73
    }
74
75
    /**
76
     * Test registering and dispatching a route
77
     */
78
    public function testRegisterDispatchRoute()
79
    {
80
        $route = new Route('GET', 'default', '/default/{id}{format}', TestAction::class);
81
        $route->setTokens([
82
            'id' => '\d+',
83
            'format' => '(\.[^/]+)?',
84
        ]);
85
        ServerFacade::registerRoute($route);
86
87
        $uri = new Uri('http://apparat/blog/default/1.html');
88
        $request = new ServerRequest();
89
        $request = $request->withUri($uri);
90
        $response = ServerFacade::dispatchRequest($request);
0 ignored issues
show
Unused Code introduced by
$response is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
91
//        print_r($response);
92
    }
93
94
    /**
95
     * Test registering the default routes
96
     */
97
    public function testObjectRoutes()
98
    {
99
        ServerFacade::enableObjectRoute();
100
101
//        $uri = new Uri('http://apparat/blog/*/12/*/.*-article/*.md');
102
        $uri = new Uri('http://apparat/blog/2016/06/08/1-article');
103
        $request = new ServerRequest();
104
        $request = $request->withUri($uri);
105
        ServerFacade::dispatchRequest($request);
106
    }
107
}
108