Skip to content

Commit

Permalink
Add amphp/socket 1.x support
Browse files Browse the repository at this point in the history
  • Loading branch information
ostrolucky committed Aug 3, 2019
1 parent dec5adf commit 1d0655b
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 8 deletions.
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
"ext-json": "*",
"amphp/amp": "^2.0",
"amphp/byte-stream": "^1.2.5",
"amphp/socket": "^0.10",
"amphp/socket": "^0.10|^1",
"jean85/pretty-package-versions": "^1.1",
"psr/log": "^1.1",
"symfony/console": "^4.1@beta",
Expand Down
2 changes: 1 addition & 1 deletion src/Responder.php
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ public function __construct(

public function __invoke(Socket $socket): \Generator
{
$remoteAddress = $socket->getRemoteAddress();
$remoteAddress = (string)$socket->getRemoteAddress();
$this->logger->debug("Accepted connection from $remoteAddress:\n".trim(yield $socket->read()));

$header = [
Expand Down
16 changes: 10 additions & 6 deletions tests/ResponderTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,11 @@
namespace Ostrolucky\Stdinho\Tests;

use Amp\ByteStream\InputStream;
use Amp\ByteStream\ResourceOutputStream;
use Amp\Coroutine;
use Amp\Deferred;
use Amp\Socket\ClientSocket;
use Amp\Socket\Socket;
use Amp\Socket\SocketAddress;
use Amp\Success;
use Ostrolucky\Stdinho\Bufferer\ResolvedBufferer;
use Ostrolucky\Stdinho\Responder;
Expand All @@ -29,13 +31,15 @@ public function testResponderHandlesClientAbruptDisconnect(): void
new Deferred()
);

$socket = $this->getMockBuilder(ClientSocket::class)
->setConstructorArgs([$resource = fopen('php://memory', 'rwb')])
->setMethods(['read', 'getRemoteAddress'])
->getMock()
;
$writer = new ResourceOutputStream($resource = fopen('php://memory', 'rwb'));
$socket = $this->createMock(Socket::class);

// TODO remove class_exists when we remove amphp/socket 0.x support (when amphp/artax supports amphp/socket 1.x)
$socket->method('getRemoteAddress')->willReturn(class_exists(SocketAddress::class) ? new SocketAddress(''): '');
$socket->method('read')->willReturn(new Success(''));
$socket->method('write')->willReturnCallback(function(string $data) use ($writer) {
return $writer->write($data);
});

fclose($resource);

Expand Down

0 comments on commit 1d0655b

Please sign in to comment.