Skip to content

Commit 8ac288b

Browse files
authored
Merge pull request #50 from gmponos/improve_unit_tests
Remove set methods and lock phpunit
2 parents 11fa8af + c78f4f8 commit 8ac288b

File tree

5 files changed

+30
-27
lines changed

5 files changed

+30
-27
lines changed

composer.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
"require-dev": {
2828
"guzzlehttp/psr7": "^1.0",
2929
"php-http/client-integration-tests": "dev-master",
30-
"phpunit/phpunit": "^7.0",
30+
"phpunit/phpunit": "^7.5",
3131
"zendframework/zend-diactoros": "^1.0"
3232
},
3333
"autoload": {

tests/BaseUnitTestCase.php

+1-10
Original file line numberDiff line numberDiff line change
@@ -63,15 +63,6 @@ protected function createResponse()
6363
*/
6464
protected function createPromiseCore()
6565
{
66-
$class = new \ReflectionClass(PromiseCore::class);
67-
$methods = $class->getMethods(\ReflectionMethod::IS_PUBLIC);
68-
foreach ($methods as &$item) {
69-
$item = $item->getName();
70-
}
71-
unset($item);
72-
$core = $this->getMockBuilder(PromiseCore::class)->disableOriginalConstructor()
73-
->setMethods($methods)->getMock();
74-
75-
return $core;
66+
return $this->getMockBuilder(PromiseCore::class)->disableOriginalConstructor()->getMock();
7667
}
7768
}

tests/ClientTest.php

+23-6
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,7 @@ class ClientTest extends TestCase
2525
*/
2626
public function testExpectHeader()
2727
{
28-
$client = $this->getMockBuilder(Client::class)->disableOriginalConstructor()
29-
->setMethods(['__none__'])->getMock();
28+
$client = $this->getMockBuilder(Client::class)->disableOriginalConstructor()->getMock();
3029

3130
$createHeaders = new \ReflectionMethod(Client::class, 'createHeaders');
3231
$createHeaders->setAccessible(true);
@@ -38,10 +37,29 @@ public function testExpectHeader()
3837
static::assertContains('Expect:', $headers);
3938
}
4039

40+
/**
41+
* "Expect" header should be empty.
42+
*
43+
* @link https://github.com/php-http/curl-client/issues/18
44+
*/
45+
public function testWithNullPostFields()
46+
{
47+
$client = $this->getMockBuilder(Client::class)->disableOriginalConstructor()->getMock();
48+
49+
$createHeaders = new \ReflectionMethod(Client::class, 'createHeaders');
50+
$createHeaders->setAccessible(true);
51+
52+
$request = new Request();
53+
$request = $request->withHeader('content-length', '0');
54+
55+
$headers = $createHeaders->invoke($client, $request, [CURLOPT_POSTFIELDS => null]);
56+
57+
static::assertContains('content-length: 0', $headers);
58+
}
59+
4160
public function testRewindStream()
4261
{
43-
$client = $this->getMockBuilder(Client::class)->disableOriginalConstructor()
44-
->setMethods(['__none__'])->getMock();
62+
$client = $this->getMockBuilder(Client::class)->disableOriginalConstructor()->getMock();
4563

4664
$bodyOptions = new \ReflectionMethod(Client::class, 'addRequestBodyOptions');
4765
$bodyOptions->setAccessible(true);
@@ -56,8 +74,7 @@ public function testRewindStream()
5674

5775
public function testRewindLargeStream()
5876
{
59-
$client = $this->getMockBuilder(Client::class)->disableOriginalConstructor()
60-
->setMethods(['__none__'])->getMock();
77+
$client = $this->getMockBuilder(Client::class)->disableOriginalConstructor()->getMock();
6178

6279
$bodyOptions = new \ReflectionMethod(Client::class, 'addRequestBodyOptions');
6380
$bodyOptions->setAccessible(true);

tests/CurlPromiseTest.php

+1-2
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,7 @@ public function testCoreCallWaitFulfilled()
5757
public function testCoreCallWaitRejected()
5858
{
5959
$core = $this->createPromiseCore();
60-
$runner = $this->getMockBuilder(MultiRunner::class)->disableOriginalConstructor()
61-
->setMethods(['wait'])->getMock();
60+
$runner = $this->getMockBuilder(MultiRunner::class)->disableOriginalConstructor()->getMock();
6261
/** @var MultiRunner|\PHPUnit_Framework_MockObject_MockObject $runner */
6362
$promise = new CurlPromise($core, $runner);
6463

tests/PromiseCoreTest.php

+4-8
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,8 @@ class PromiseCoreTest extends BaseUnitTestCase
2323
*/
2424
public function testHandleIsNotAResource()
2525
{
26-
$this->expectException(
27-
\InvalidArgumentException::class,
28-
'Parameter $handle expected to be a cURL resource, NULL given'
29-
);
26+
$this->expectException(\InvalidArgumentException::class);
27+
$this->expectExceptionMessage('Parameter $handle expected to be a cURL resource, NULL given');
3028

3129
new PromiseCore(
3230
$this->createRequest('GET', '/'),
@@ -40,10 +38,8 @@ public function testHandleIsNotAResource()
4038
*/
4139
public function testHandleIsNotACurlResource()
4240
{
43-
$this->expectException(
44-
\InvalidArgumentException::class,
45-
'Parameter $handle expected to be a cURL resource, stream resource given'
46-
);
41+
$this->expectException(\InvalidArgumentException::class);
42+
$this->expectExceptionMessage('Parameter $handle expected to be a cURL resource, stream resource given');
4743

4844
new PromiseCore(
4945
$this->createRequest('GET', '/'),

0 commit comments

Comments
 (0)