From c78f4f882fe2fff9ef89914593b3b81d8d9b1eb8 Mon Sep 17 00:00:00 2001 From: George Mponos Date: Sun, 23 Dec 2018 22:48:11 +0200 Subject: [PATCH] Remove set methods and lock phpunit --- composer.json | 2 +- tests/BaseUnitTestCase.php | 11 +---------- tests/ClientTest.php | 29 +++++++++++++++++++++++------ tests/CurlPromiseTest.php | 3 +-- tests/PromiseCoreTest.php | 12 ++++-------- 5 files changed, 30 insertions(+), 27 deletions(-) diff --git a/composer.json b/composer.json index 7ddc323..8c9b395 100644 --- a/composer.json +++ b/composer.json @@ -27,7 +27,7 @@ "require-dev": { "guzzlehttp/psr7": "^1.0", "php-http/client-integration-tests": "dev-master", - "phpunit/phpunit": "^7.0", + "phpunit/phpunit": "^7.5", "zendframework/zend-diactoros": "^1.0" }, "autoload": { diff --git a/tests/BaseUnitTestCase.php b/tests/BaseUnitTestCase.php index 540414c..1557431 100644 --- a/tests/BaseUnitTestCase.php +++ b/tests/BaseUnitTestCase.php @@ -63,15 +63,6 @@ protected function createResponse() */ protected function createPromiseCore() { - $class = new \ReflectionClass(PromiseCore::class); - $methods = $class->getMethods(\ReflectionMethod::IS_PUBLIC); - foreach ($methods as &$item) { - $item = $item->getName(); - } - unset($item); - $core = $this->getMockBuilder(PromiseCore::class)->disableOriginalConstructor() - ->setMethods($methods)->getMock(); - - return $core; + return $this->getMockBuilder(PromiseCore::class)->disableOriginalConstructor()->getMock(); } } diff --git a/tests/ClientTest.php b/tests/ClientTest.php index fd6331e..85ae402 100644 --- a/tests/ClientTest.php +++ b/tests/ClientTest.php @@ -25,8 +25,7 @@ class ClientTest extends TestCase */ public function testExpectHeader() { - $client = $this->getMockBuilder(Client::class)->disableOriginalConstructor() - ->setMethods(['__none__'])->getMock(); + $client = $this->getMockBuilder(Client::class)->disableOriginalConstructor()->getMock(); $createHeaders = new \ReflectionMethod(Client::class, 'createHeaders'); $createHeaders->setAccessible(true); @@ -38,10 +37,29 @@ public function testExpectHeader() static::assertContains('Expect:', $headers); } + /** + * "Expect" header should be empty. + * + * @link https://github.com/php-http/curl-client/issues/18 + */ + public function testWithNullPostFields() + { + $client = $this->getMockBuilder(Client::class)->disableOriginalConstructor()->getMock(); + + $createHeaders = new \ReflectionMethod(Client::class, 'createHeaders'); + $createHeaders->setAccessible(true); + + $request = new Request(); + $request = $request->withHeader('content-length', '0'); + + $headers = $createHeaders->invoke($client, $request, [CURLOPT_POSTFIELDS => null]); + + static::assertContains('content-length: 0', $headers); + } + public function testRewindStream() { - $client = $this->getMockBuilder(Client::class)->disableOriginalConstructor() - ->setMethods(['__none__'])->getMock(); + $client = $this->getMockBuilder(Client::class)->disableOriginalConstructor()->getMock(); $bodyOptions = new \ReflectionMethod(Client::class, 'addRequestBodyOptions'); $bodyOptions->setAccessible(true); @@ -56,8 +74,7 @@ public function testRewindStream() public function testRewindLargeStream() { - $client = $this->getMockBuilder(Client::class)->disableOriginalConstructor() - ->setMethods(['__none__'])->getMock(); + $client = $this->getMockBuilder(Client::class)->disableOriginalConstructor()->getMock(); $bodyOptions = new \ReflectionMethod(Client::class, 'addRequestBodyOptions'); $bodyOptions->setAccessible(true); diff --git a/tests/CurlPromiseTest.php b/tests/CurlPromiseTest.php index 2bab160..5c4ddf8 100644 --- a/tests/CurlPromiseTest.php +++ b/tests/CurlPromiseTest.php @@ -57,8 +57,7 @@ public function testCoreCallWaitFulfilled() public function testCoreCallWaitRejected() { $core = $this->createPromiseCore(); - $runner = $this->getMockBuilder(MultiRunner::class)->disableOriginalConstructor() - ->setMethods(['wait'])->getMock(); + $runner = $this->getMockBuilder(MultiRunner::class)->disableOriginalConstructor()->getMock(); /** @var MultiRunner|\PHPUnit_Framework_MockObject_MockObject $runner */ $promise = new CurlPromise($core, $runner); diff --git a/tests/PromiseCoreTest.php b/tests/PromiseCoreTest.php index e3d9d9d..78f1052 100644 --- a/tests/PromiseCoreTest.php +++ b/tests/PromiseCoreTest.php @@ -23,10 +23,8 @@ class PromiseCoreTest extends BaseUnitTestCase */ public function testHandleIsNotAResource() { - $this->expectException( - \InvalidArgumentException::class, - 'Parameter $handle expected to be a cURL resource, NULL given' - ); + $this->expectException(\InvalidArgumentException::class); + $this->expectExceptionMessage('Parameter $handle expected to be a cURL resource, NULL given'); new PromiseCore( $this->createRequest('GET', '/'), @@ -40,10 +38,8 @@ public function testHandleIsNotAResource() */ public function testHandleIsNotACurlResource() { - $this->expectException( - \InvalidArgumentException::class, - 'Parameter $handle expected to be a cURL resource, stream resource given' - ); + $this->expectException(\InvalidArgumentException::class); + $this->expectExceptionMessage('Parameter $handle expected to be a cURL resource, stream resource given'); new PromiseCore( $this->createRequest('GET', '/'),