BadHttpResponseExceptionTest   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 66
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Importance

Changes 0
Metric Value
wmc 5
lcom 1
cbo 2
dl 0
loc 66
rs 10
c 0
b 0
f 0

5 Methods

Rating   Name   Duplication   Size   Complexity  
A setUp() 0 7 1
A testCanConstruct() 0 12 1
A testHttpError() 0 12 1
A testLastError() 0 11 1
A testForCurlRequest() 0 14 1
1
<?php
2
3
namespace Onoi\HttpRequest\Tests\Exception;
4
5
use Onoi\HttpRequest\CurlRequest;
6
use Onoi\HttpRequest\Exception\BadHttpResponseException;
7
8
/**
9
 * @covers \Onoi\HttpRequest\Exception\BadHttpResponseException
10
 * @group onoi-http-request
11
 *
12
 * @license GNU GPL v2+
13
 * @since 1.0
14
 *
15
 * @author mwjames
16
 */
17
class BadHttpResponseExceptionTest extends \PHPUnit_Framework_TestCase {
18
19
	private $httpRequest;
20
21
	protected function setUp() {
22
		parent::setUp();
23
24
		$this->httpRequest = $this->getMockBuilder( '\Onoi\HttpRequest\HttpRequest' )
25
			->disableOriginalConstructor()
26
			->getMockForAbstractClass();
27
	}
28
29
	public function testCanConstruct() {
30
31
		$this->assertInstanceOf(
32
			'\Onoi\HttpRequest\Exception\BadHttpResponseException',
33
			new BadHttpResponseException( $this->httpRequest )
34
		);
35
36
		$this->assertInstanceOf(
37
			'\Onoi\HttpRequest\Exception\HttpConnectionException',
38
			new BadHttpResponseException( $this->httpRequest )
39
		);
40
	}
41
42
	public function testHttpError() {
43
44
		$this->httpRequest->expects( $this->once() )
45
			->method( 'getLastErrorCode' )
46
			->will( $this->returnValue( 22 ) );
47
48
		$this->httpRequest->expects( $this->once() )
49
			->method( 'getLastTransferInfo' )
50
			->with( $this->equalTo( CURLINFO_HTTP_CODE ) );
51
52
		new BadHttpResponseException( $this->httpRequest );
53
	}
54
55
	public function testLastError() {
56
57
		$this->httpRequest->expects( $this->once() )
58
			->method( 'getLastErrorCode' )
59
			->will( $this->returnValue( 42 ) );
60
61
		$this->httpRequest->expects( $this->once() )
62
			->method( 'getLastError' );
63
64
		new BadHttpResponseException( $this->httpRequest );
65
	}
66
67
	public function testForCurlRequest() {
68
69
		$curlRequest = new CurlRequest( curl_init( null ) );
70
		$curlRequest->setOption( CURLOPT_RETURNTRANSFER, true );
71
72
		$curlRequest->execute();
73
74
		$e = new BadHttpResponseException( $curlRequest );
75
76
		$this->assertContains(
77
			'error 3',
78
			$e->getMessage()
79
		);
80
	}
81
82
}
83