ResponseBuilderTest   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 78
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Importance

Changes 5
Bugs 0 Features 0
Metric Value
wmc 3
c 5
b 0
f 0
lcom 0
cbo 1
dl 0
loc 78
rs 10

3 Methods

Rating   Name   Duplication   Size   Complexity  
A testResponseCreatedWithNoCookies() 0 7 1
A testSimpleExpectedTypesWithMissingAcceptHeader() 0 18 1
B testSimpleExpectedTypes() 0 25 1
1
<?php
2
3
4
namespace Fracture\Http;
5
6
use Exception;
7
use ReflectionClass;
8
use PHPUnit_Framework_TestCase;
9
10
class ResponseBuilderTest extends PHPUnit_Framework_TestCase
11
{
12
13
    /**
14
     * @covers Fracture\Http\ResponseBuilder::__construct
15
     * @covers Fracture\Http\ResponseBuilder::create
16
     */
17
    public function testResponseCreatedWithNoCookies()
18
    {
19
        $requestMock = $this->getMock('Fracture\Http\Request');
20
21
        $instance = new ResponseBuilder($requestMock);
22
        $this->assertInstanceOf('Fracture\Http\Response', $instance->create());
23
    }
24
25
26
    /**
27
     * @covers Fracture\Http\ResponseBuilder::__construct
28
     * @covers Fracture\Http\ResponseBuilder::create
29
     * @covers Fracture\Http\ResponseBuilder::setAvailableContentTypes
30
     *
31
     * @covers Fracture\Http\ResponseBuilder::attemptSettingContentType
32
     */
33
    public function testSimpleExpectedTypesWithMissingAcceptHeader()
34
    {
35
        $requestMock = $this->getMock('Fracture\Http\Request', ['getAcceptHeader']);
36
        $requestMock->expects($this->once())
37
                    ->method('getAcceptHeader')
38
                    ->will($this->returnValue(null));;
39
40
41
42
        $instance = new ResponseBuilder($requestMock);
43
        $instance->setAvailableContentTypes([
44
            'text/xml',
45
            'application/json',
46
        ]);
47
48
        $this->assertInstanceOf('Fracture\Http\Response', $instance->create());
49
50
    }
51
52
53
    /**
54
     * @covers Fracture\Http\ResponseBuilder::__construct
55
     * @covers Fracture\Http\ResponseBuilder::create
56
     * @covers Fracture\Http\ResponseBuilder::setAvailableContentTypes
57
     *
58
     * @covers Fracture\Http\ResponseBuilder::attemptSettingContentType
59
     * @covers Fracture\Http\ResponseBuilder::applyContentTypeHeader
60
     */
61
    public function testSimpleExpectedTypes()
62
    {
63
64
        $headerMock = $this->getMock('Fracture\Http\Headers\Accept', ['contains']);
65
66
        $headerMock->expects($this->exactly(2))
67
                   ->method('contains')
68
                   ->will($this->onConsecutiveCalls(false, true));
69
70
        $requestMock = $this->getMock('Fracture\Http\Request', ['getAcceptHeader']);
71
        $requestMock->expects($this->once())
72
                    ->method('getAcceptHeader')
73
                    ->will($this->returnValue($headerMock));;
74
75
76
77
        $instance = new ResponseBuilder($requestMock);
78
        $instance->setAvailableContentTypes([
79
            'text/xml',
80
            'application/json',
81
        ]);
82
83
        $this->assertInstanceOf('Fracture\Http\Response', $instance->create());
84
85
    }
86
87
}
88