diff --git a/example/binary/provider/tests/PactVerifyTest.php b/example/binary/provider/tests/PactVerifyTest.php index cc30e108..77059516 100644 --- a/example/binary/provider/tests/PactVerifyTest.php +++ b/example/binary/provider/tests/PactVerifyTest.php @@ -4,30 +4,20 @@ use PhpPact\Standalone\ProviderVerifier\Model\VerifierConfig; use PhpPact\Standalone\ProviderVerifier\Verifier; +use PhpPactTest\Helper\ProviderProcess; use PHPUnit\Framework\TestCase; -use Symfony\Component\Process\Process; class PactVerifyTest extends TestCase { - private Process $process; + private ProviderProcess $process; /** * Run the PHP build-in web server. */ protected function setUp(): void { - $this->process = new Process(['php', '-S', '127.0.0.1:7202', '-t', __DIR__ . '/../public/']); - + $this->process = new ProviderProcess(__DIR__ . '/../public/'); $this->process->start(); - $this->process->waitUntil(function (): bool { - $fp = @fsockopen('127.0.0.1', 7202); - $isOpen = is_resource($fp); - if ($isOpen) { - fclose($fp); - } - - return $isOpen; - }); } /** diff --git a/example/json/provider/tests/PactVerifyTest.php b/example/json/provider/tests/PactVerifyTest.php index 408dade1..94ca1599 100644 --- a/example/json/provider/tests/PactVerifyTest.php +++ b/example/json/provider/tests/PactVerifyTest.php @@ -5,30 +5,20 @@ use GuzzleHttp\Psr7\Uri; use PhpPact\Standalone\ProviderVerifier\Model\VerifierConfig; use PhpPact\Standalone\ProviderVerifier\Verifier; +use PhpPactTest\Helper\ProviderProcess; use PHPUnit\Framework\TestCase; -use Symfony\Component\Process\Process; class PactVerifyTest extends TestCase { - private Process $process; + private ProviderProcess $process; /** * Run the PHP build-in web server. */ protected function setUp(): void { - $this->process = new Process(['php', '-S', '127.0.0.1:7202', '-t', __DIR__ . '/../public/']); - + $this->process = new ProviderProcess(__DIR__ . '/../public/'); $this->process->start(); - $this->process->waitUntil(function (): bool { - $fp = @fsockopen('127.0.0.1', 7202); - $isOpen = is_resource($fp); - if ($isOpen) { - fclose($fp); - } - - return $isOpen; - }); } /** diff --git a/example/message/provider/tests/PactVerifyTest.php b/example/message/provider/tests/PactVerifyTest.php index f0c459a1..bea7fca0 100644 --- a/example/message/provider/tests/PactVerifyTest.php +++ b/example/message/provider/tests/PactVerifyTest.php @@ -6,32 +6,20 @@ use PhpPact\Standalone\ProviderVerifier\Model\Config\ProviderTransport; use PhpPact\Standalone\ProviderVerifier\Model\VerifierConfig; use PhpPact\Standalone\ProviderVerifier\Verifier; +use PhpPactTest\Helper\ProviderProcess; use PHPUnit\Framework\TestCase; -use Symfony\Component\Process\Process; class PactVerifyTest extends TestCase { - private Process $process; + private ProviderProcess $process; /** * Run the PHP build-in web server. */ protected function setUp(): void { - $publicPath = __DIR__ . '/../public/'; - - $this->process = new Process(['php', '-S', '127.0.0.1:7202', '-t', $publicPath]); - + $this->process = new ProviderProcess(__DIR__ . '/../public/'); $this->process->start(); - $this->process->waitUntil(function (): bool { - $fp = @fsockopen('127.0.0.1', 7202); - $isOpen = is_resource($fp); - if ($isOpen) { - fclose($fp); - } - - return $isOpen; - }); } /** diff --git a/example/multipart/provider/tests/PactVerifyTest.php b/example/multipart/provider/tests/PactVerifyTest.php index e4fee86b..439e2802 100644 --- a/example/multipart/provider/tests/PactVerifyTest.php +++ b/example/multipart/provider/tests/PactVerifyTest.php @@ -4,30 +4,20 @@ use PhpPact\Standalone\ProviderVerifier\Model\VerifierConfig; use PhpPact\Standalone\ProviderVerifier\Verifier; +use PhpPactTest\Helper\ProviderProcess; use PHPUnit\Framework\TestCase; -use Symfony\Component\Process\Process; class PactVerifyTest extends TestCase { - private Process $process; + private ProviderProcess $process; /** * Run the PHP build-in web server. */ protected function setUp(): void { - $this->process = new Process(['php', '-S', '127.0.0.1:7202', '-t', __DIR__ . '/../public/']); - + $this->process = new ProviderProcess(__DIR__ . '/../public/'); $this->process->start(); - $this->process->waitUntil(function (): bool { - $fp = @fsockopen('127.0.0.1', 7202); - $isOpen = is_resource($fp); - if ($isOpen) { - fclose($fp); - } - - return $isOpen; - }); } /** diff --git a/tests/PhpPact/Helper/ProviderProcess.php b/tests/PhpPact/Helper/ProviderProcess.php new file mode 100644 index 00000000..b6d5a81e --- /dev/null +++ b/tests/PhpPact/Helper/ProviderProcess.php @@ -0,0 +1,40 @@ +process = new Process(['php', '-S', "127.0.0.1:$port", '-t', $publicPath]); + } + + public function start(): void + { + $this->process->start(function ($type, $buffer): void { + if (Process::ERR === $type) { + echo 'ERR > '.$buffer; + } else { + echo 'OUT > '.$buffer; + } + }); + $this->process->waitUntil(function (): bool { + $fp = @fsockopen('127.0.0.1', $this->port); + $isOpen = is_resource($fp); + if ($isOpen) { + fclose($fp); + } + + return $isOpen; + }); + } + + public function stop(): void + { + $this->process->stop(); + } +} diff --git a/tests/PhpPact/Standalone/ProviderVerifier/VerifierTest.php b/tests/PhpPact/Standalone/ProviderVerifier/VerifierTest.php index cf302a7c..507e03ee 100644 --- a/tests/PhpPact/Standalone/ProviderVerifier/VerifierTest.php +++ b/tests/PhpPact/Standalone/ProviderVerifier/VerifierTest.php @@ -4,33 +4,20 @@ use PhpPact\Standalone\ProviderVerifier\Model\VerifierConfig; use PhpPact\Standalone\ProviderVerifier\Verifier; +use PhpPactTest\Helper\ProviderProcess; use PHPUnit\Framework\TestCase; -use Symfony\Component\Process\Process; class VerifierTest extends TestCase { - /** @var Process */ - private Process $process; + private ProviderProcess $process; /** * Run the PHP build-in web server. */ protected function setUp(): void { - $publicPath = __DIR__ . '/../../../_public/'; - - $this->process = new Process(['php', '-S', '127.0.0.1:7202', '-t', $publicPath]); - + $this->process = new ProviderProcess(__DIR__ . '/../../../_public/'); $this->process->start(); - $this->process->waitUntil(function (): bool { - $fp = @fsockopen('127.0.0.1', 7202); - $isOpen = is_resource($fp); - if ($isOpen) { - fclose($fp); - } - - return $isOpen; - }); } /**