ResponseBuilderTest::testSimpleExpectedTypes()   B
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 25
Code Lines 14

Duplication

Lines 0
Ratio 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
c 2
b 0
f 0
dl 0
loc 25
rs 8.8571
cc 1
eloc 14
nc 1
nop 0
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