Skip to content

Commit a3363d3

Browse files
committed
Add functional integration tests
1 parent d61930e commit a3363d3

File tree

2 files changed

+50
-0
lines changed

2 files changed

+50
-0
lines changed

composer.json

+4
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@
99
"react/event-loop": "0.4.*|0.3.*",
1010
"react/stream": "^0.4.2"
1111
},
12+
"require-dev": {
13+
"react/socket-client": "^0.5.1",
14+
"clue/block-react": "^1.1"
15+
},
1216
"autoload": {
1317
"psr-4": {
1418
"React\\Socket\\": "src"

tests/FunctionalServerTest.php

+46
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
<?php
2+
3+
namespace React\Tests\Socket;
4+
5+
use React\EventLoop\Factory;
6+
use React\SocketClient\TcpConnector;
7+
use React\Socket\Server;
8+
use Clue\React\Block;
9+
10+
class FunctionalServerTest extends TestCase
11+
{
12+
public function testEmitsConnectionForNewConnection()
13+
{
14+
$loop = Factory::create();
15+
16+
$server = new Server($loop);
17+
$server->on('connection', $this->expectCallableOnce());
18+
$server->listen(0);
19+
$port = $server->getPort();
20+
21+
$connector = new TcpConnector($loop);
22+
$promise = $connector->create('127.0.0.1', $port);
23+
24+
$promise->then($this->expectCallableOnce());
25+
26+
Block\sleep(0.1, $loop);
27+
}
28+
29+
public function testEmitsConnectionEvenIfConnectionIsCancelled()
30+
{
31+
$loop = Factory::create();
32+
33+
$server = new Server($loop);
34+
$server->on('connection', $this->expectCallableOnce());
35+
$server->listen(0);
36+
$port = $server->getPort();
37+
38+
$connector = new TcpConnector($loop);
39+
$promise = $connector->create('127.0.0.1', $port);
40+
$promise->cancel();
41+
42+
$promise->then(null, $this->expectCallableOnce());
43+
44+
Block\sleep(0.1, $loop);
45+
}
46+
}

0 commit comments

Comments
 (0)