Completed
Pull Request — dev (#11)
by
unknown
05:12 queued 01:17
created

JsonRpcRequestTest   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 40
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Importance

Changes 2
Bugs 0 Features 1
Metric Value
wmc 1
c 2
b 0
f 1
lcom 1
cbo 2
dl 0
loc 40
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
B synopsis() 0 33 1
1
<?php
2
3
namespace Vectorface\SnappyRouterTests\Request;
4
5
use Vectorface\SnappyRouter\Request\JsonRpcRequest;
6
7
/**
8
 * Tests the JsonRpcRequest class.
9
 *
10
 * @copyright Copyright (c) 2014, VectorFace, Inc.
11
 */
12
class JsonRpcRequestTest extends \PHPUnit_Framework_TestCase
13
{
14
    /**
15
     * An overview of how to use the JsonRpcRequest class.
16
     * @test
17
     */
18
    public function synopsis()
19
    {
20
        /* Handles JSON-RPC 1.0 requests. */
21
        $request = new JsonRpcRequest('MyService', (object)array(
22
            'method' => 'remoteProcedure',
23
            'params' => array(1, 2, 3),
24
            'id' => 'uniqueidentifier'
25
        ));
26
27
        $this->assertEquals('POST', $request->getVerb());
28
        $this->assertEquals('remoteProcedure', $request->getMethod());
29
        $this->assertEquals('1.0', $request->getVersion());
30
        $this->assertEquals(array(1, 2, 3), $request->getParameters());
31
        $this->assertEquals('uniqueidentifier', $request->getIdentifier());
32
        $this->assertNull($request->getPost('anything')); // Post should be ignored.
33
34
        /* Handles JSON-RPC 2.0 requests. */
35
        $request = new JsonRpcRequest('MyService', (object)array(
36
            'jsonrpc' => '2.0',
37
            'method' => 'remoteProcedure',
38
            'id' => 'uniqueidentifier'
39
        ));
40
41
        $this->assertEquals('2.0', $request->getVersion());
42
        $this->assertEquals(array(), $request->getParameters());
43
44
        /* Catches invalid request format. */
45
        $request = new JsonRpcRequest('MyService', (object)array(
46
            'jsonrpc' => '2.0',
47
            'method' => null
48
        ));
49
        $this->assertFalse($request->isValid());
50
    }
51
}
52