Skip to content

Commit 3fb07dd

Browse files
authored
Merge pull request #136 from SimonFrings/socket
2 parents d0f42b2 + 505b89d commit 3fb07dd

File tree

6 files changed

+128
-190
lines changed

6 files changed

+128
-190
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ proxy servers etc.), you can explicitly pass a custom instance of the
7474
[`ConnectorInterface`](https://github.com/reactphp/socket#connectorinterface):
7575

7676
```php
77-
$connector = new React\Socket\Connector(null, array(
77+
$connector = new React\Socket\Connector(array(
7878
'dns' => '127.0.0.1',
7979
'tcp' => array(
8080
'bindto' => '192.168.10.1:0'

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
"react/promise": "^2.7",
1111
"react/promise-stream": "^1.1",
1212
"react/promise-timer": "^1.5",
13-
"react/socket": "^1.8"
13+
"react/socket": "^1.9"
1414
},
1515
"require-dev": {
1616
"clue/block-react": "^1.2",

src/Factory.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ class Factory
4242
* [`ConnectorInterface`](https://github.com/reactphp/socket#connectorinterface):
4343
*
4444
* ```php
45-
* $connector = new React\Socket\Connector(null, array(
45+
* $connector = new React\Socket\Connector(array(
4646
* 'dns' => '127.0.0.1',
4747
* 'tcp' => array(
4848
* 'bindto' => '192.168.10.1:0'
@@ -62,7 +62,7 @@ class Factory
6262
public function __construct(LoopInterface $loop = null, ConnectorInterface $connector = null)
6363
{
6464
$this->loop = $loop ?: Loop::get();
65-
$this->connector = $connector ?: new Connector($this->loop);
65+
$this->connector = $connector ?: new Connector(array(), $this->loop);
6666
}
6767

6868
/**
@@ -95,7 +95,7 @@ public function __construct(LoopInterface $loop = null, ConnectorInterface $conn
9595
* ```php
9696
* $promise = $factory->createConnection($url);
9797
*
98-
* $loop->addTimer(3.0, function () use ($promise) {
98+
* Loop::addTimer(3.0, function () use ($promise) {
9999
* $promise->cancel();
100100
* });
101101
* ```

tests/FactoryTest.php

Lines changed: 41 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@
22

33
namespace React\Tests\MySQL;
44

5+
use React\EventLoop\Loop;
56
use React\MySQL\ConnectionInterface;
67
use React\MySQL\Factory;
7-
use React\Socket\Server;
8+
use React\Socket\SocketServer;
89
use React\Promise\Promise;
910

1011
class FactoryTest extends BaseTestCase
@@ -104,21 +105,19 @@ public function testConnectWithInvalidCharsetWillRejectWithoutConnecting()
104105

105106
public function testConnectWithInvalidHostRejectsWithConnectionError()
106107
{
107-
$loop = \React\EventLoop\Factory::create();
108-
$factory = new Factory($loop);
108+
$factory = new Factory();
109109

110110
$uri = $this->getConnectionString(array('host' => 'example.invalid'));
111111
$promise = $factory->createConnection($uri);
112112

113113
$promise->then(null, $this->expectCallableOnce());
114114

115-
$loop->run();
115+
Loop::run();
116116
}
117117

118118
public function testConnectWithInvalidPassRejectsWithAuthenticationError()
119119
{
120-
$loop = \React\EventLoop\Factory::create();
121-
$factory = new Factory($loop);
120+
$factory = new Factory();
122121

123122
$uri = $this->getConnectionString(array('passwd' => 'invalidpass'));
124123
$promise = $factory->createConnection($uri);
@@ -132,33 +131,31 @@ public function testConnectWithInvalidPassRejectsWithAuthenticationError()
132131
)
133132
));
134133

135-
$loop->run();
134+
Loop::run();
136135
}
137136

138137
public function testConnectWillRejectWhenServerClosesConnection()
139138
{
140-
$loop = \React\EventLoop\Factory::create();
141-
$factory = new Factory($loop);
139+
$factory = new Factory();
142140

143-
$server = new Server(0, $loop);
144-
$server->on('connection', function ($connection) use ($server) {
145-
$server->close();
141+
$socket = new SocketServer('127.0.0.1:0', array());
142+
$socket->on('connection', function ($connection) use ($socket) {
143+
$socket->close();
146144
$connection->close();
147145
});
148146

149-
$parts = parse_url($server->getAddress());
147+
$parts = parse_url($socket->getAddress());
150148
$uri = $this->getConnectionString(array('host' => $parts['host'], 'port' => $parts['port']));
151149

152150
$promise = $factory->createConnection($uri);
153151
$promise->then(null, $this->expectCallableOnce());
154152

155-
$loop->run();
153+
Loop::run();
156154
}
157155

158156
public function testConnectWillRejectOnExplicitTimeoutDespiteValidAuth()
159157
{
160-
$loop = \React\EventLoop\Factory::create();
161-
$factory = new Factory($loop);
158+
$factory = new Factory();
162159

163160
$uri = $this->getConnectionString() . '?timeout=0';
164161

@@ -173,13 +170,12 @@ public function testConnectWillRejectOnExplicitTimeoutDespiteValidAuth()
173170
)
174171
));
175172

176-
$loop->run();
173+
Loop::run();
177174
}
178175

179176
public function testConnectWillRejectOnDefaultTimeoutFromIniDespiteValidAuth()
180177
{
181-
$loop = \React\EventLoop\Factory::create();
182-
$factory = new Factory($loop);
178+
$factory = new Factory();
183179

184180
$uri = $this->getConnectionString();
185181

@@ -197,15 +193,14 @@ public function testConnectWillRejectOnDefaultTimeoutFromIniDespiteValidAuth()
197193
)
198194
));
199195

200-
$loop->run();
196+
Loop::run();
201197
}
202198

203199
public function testConnectWithValidAuthWillRunUntilQuit()
204200
{
205201
$this->expectOutputString('connected.closed.');
206202

207-
$loop = \React\EventLoop\Factory::create();
208-
$factory = new Factory($loop);
203+
$factory = new Factory();
209204

210205
$uri = $this->getConnectionString();
211206
$factory->createConnection($uri)->then(function (ConnectionInterface $connection) {
@@ -215,15 +210,14 @@ public function testConnectWithValidAuthWillRunUntilQuit()
215210
});
216211
}, 'printf')->then(null, 'printf');
217212

218-
$loop->run();
213+
Loop::run();
219214
}
220215

221216
public function testConnectWithValidAuthAndWithoutDbNameWillRunUntilQuit()
222217
{
223218
$this->expectOutputString('connected.closed.');
224219

225-
$loop = \React\EventLoop\Factory::create();
226-
$factory = new Factory($loop);
220+
$factory = new Factory();
227221

228222
$uri = $this->getConnectionString(array('dbname' => ''));
229223
$factory->createConnection($uri)->then(function (ConnectionInterface $connection) {
@@ -233,15 +227,14 @@ public function testConnectWithValidAuthAndWithoutDbNameWillRunUntilQuit()
233227
});
234228
}, 'printf')->then(null, 'printf');
235229

236-
$loop->run();
230+
Loop::run();
237231
}
238232

239233
public function testConnectWithValidAuthWillIgnoreNegativeTimeoutAndRunUntilQuit()
240234
{
241235
$this->expectOutputString('connected.closed.');
242236

243-
$loop = \React\EventLoop\Factory::create();
244-
$factory = new Factory($loop);
237+
$factory = new Factory();
245238

246239
$uri = $this->getConnectionString() . '?timeout=-1';
247240
$factory->createConnection($uri)->then(function (ConnectionInterface $connection) {
@@ -251,15 +244,14 @@ public function testConnectWithValidAuthWillIgnoreNegativeTimeoutAndRunUntilQuit
251244
});
252245
}, 'printf')->then(null, 'printf');
253246

254-
$loop->run();
247+
Loop::run();
255248
}
256249

257250
public function testConnectWithValidAuthCanPingAndThenQuit()
258251
{
259252
$this->expectOutputString('connected.ping.closed.');
260253

261-
$loop = \React\EventLoop\Factory::create();
262-
$factory = new Factory($loop);
254+
$factory = new Factory();
263255

264256
$uri = $this->getConnectionString();
265257
$factory->createConnection($uri)->then(function (ConnectionInterface $connection) {
@@ -273,15 +265,14 @@ public function testConnectWithValidAuthCanPingAndThenQuit()
273265

274266
}, 'printf')->then(null, 'printf');
275267

276-
$loop->run();
268+
Loop::run();
277269
}
278270

279271
public function testConnectWithValidAuthCanQueuePingAndQuit()
280272
{
281273
$this->expectOutputString('connected.ping.closed.');
282274

283-
$loop = \React\EventLoop\Factory::create();
284-
$factory = new Factory($loop);
275+
$factory = new Factory();
285276

286277
$uri = $this->getConnectionString();
287278
$factory->createConnection($uri)->then(function (ConnectionInterface $connection) {
@@ -294,15 +285,14 @@ public function testConnectWithValidAuthCanQueuePingAndQuit()
294285
});
295286
}, 'printf')->then(null, 'printf');
296287

297-
$loop->run();
288+
Loop::run();
298289
}
299290

300291
public function testConnectWithValidAuthQuitOnlyOnce()
301292
{
302293
$this->expectOutputString('connected.closed.');
303294

304-
$loop = \React\EventLoop\Factory::create();
305-
$factory = new Factory($loop);
295+
$factory = new Factory();
306296

307297
$uri = $this->getConnectionString();
308298
$factory->createConnection($uri)->then(function (ConnectionInterface $connection) {
@@ -315,15 +305,14 @@ public function testConnectWithValidAuthQuitOnlyOnce()
315305
});
316306
}, 'printf')->then(null, 'printf');
317307

318-
$loop->run();
308+
Loop::run();
319309
}
320310

321311
public function testConnectWithValidAuthCanCloseOnlyOnce()
322312
{
323313
$this->expectOutputString('connected.closed.');
324314

325-
$loop = \React\EventLoop\Factory::create();
326-
$factory = new Factory($loop);
315+
$factory = new Factory();
327316

328317
$uri = $this->getConnectionString();
329318
$factory->createConnection($uri)->then(function (ConnectionInterface $connection) {
@@ -339,15 +328,14 @@ public function testConnectWithValidAuthCanCloseOnlyOnce()
339328
$connection->close();
340329
}, 'printf')->then(null, 'printf');
341330

342-
$loop->run();
331+
Loop::run();
343332
}
344333

345334
public function testConnectWithValidAuthCanCloseAndAbortPing()
346335
{
347336
$this->expectOutputString('connected.aborted pending (Connection lost).aborted queued (Connection lost).closed.');
348337

349-
$loop = \React\EventLoop\Factory::create();
350-
$factory = new Factory($loop);
338+
$factory = new Factory();
351339

352340
$uri = $this->getConnectionString();
353341
$factory->createConnection($uri)->then(function (ConnectionInterface $connection) {
@@ -368,7 +356,7 @@ public function testConnectWithValidAuthCanCloseAndAbortPing()
368356
$connection->close();
369357
}, 'printf')->then(null, 'printf');
370358

371-
$loop->run();
359+
Loop::run();
372360
}
373361

374362
public function testCancelConnectWillCancelPendingConnection()
@@ -433,8 +421,7 @@ public function testConnectLazyWithAnyAuthWillQuitWithoutRunning()
433421
{
434422
$this->expectOutputString('closed.');
435423

436-
$loop = \React\EventLoop\Factory::create();
437-
$factory = new Factory($loop);
424+
$factory = new Factory();
438425

439426
$uri = 'mysql://random:pass@host';
440427
$connection = $factory->createLazyConnection($uri);
@@ -448,8 +435,7 @@ public function testConnectLazyWithValidAuthWillRunUntilQuitAfterPing()
448435
{
449436
$this->expectOutputString('closed.');
450437

451-
$loop = \React\EventLoop\Factory::create();
452-
$factory = new Factory($loop);
438+
$factory = new Factory();
453439

454440
$uri = $this->getConnectionString();
455441
$connection = $factory->createLazyConnection($uri);
@@ -460,29 +446,27 @@ public function testConnectLazyWithValidAuthWillRunUntilQuitAfterPing()
460446
echo 'closed.';
461447
});
462448

463-
$loop->run();
449+
Loop::run();
464450
}
465451

466452
/**
467453
* @doesNotPerformAssertions
468454
*/
469455
public function testConnectLazyWithValidAuthWillRunUntilIdleTimerAfterPingEvenWithoutQuit()
470456
{
471-
$loop = \React\EventLoop\Factory::create();
472-
$factory = new Factory($loop);
457+
$factory = new Factory();
473458

474459
$uri = $this->getConnectionString() . '?idle=0';
475460
$connection = $factory->createLazyConnection($uri);
476461

477462
$connection->ping();
478463

479-
$loop->run();
464+
Loop::run();
480465
}
481466

482467
public function testConnectLazyWithInvalidAuthWillRejectPingButWillNotEmitErrorOrClose()
483468
{
484-
$loop = \React\EventLoop\Factory::create();
485-
$factory = new Factory($loop);
469+
$factory = new Factory();
486470

487471
$uri = $this->getConnectionString(array('passwd' => 'invalidpass'));
488472
$connection = $factory->createLazyConnection($uri);
@@ -492,15 +476,14 @@ public function testConnectLazyWithInvalidAuthWillRejectPingButWillNotEmitErrorO
492476

493477
$connection->ping()->then(null, $this->expectCallableOnce());
494478

495-
$loop->run();
479+
Loop::run();
496480
}
497481

498482
public function testConnectLazyWithValidAuthWillPingBeforeQuitButNotAfter()
499483
{
500484
$this->expectOutputString('ping.closed.');
501485

502-
$loop = \React\EventLoop\Factory::create();
503-
$factory = new Factory($loop);
486+
$factory = new Factory();
504487

505488
$uri = $this->getConnectionString();
506489
$connection = $factory->createLazyConnection($uri);
@@ -517,6 +500,6 @@ public function testConnectLazyWithValidAuthWillPingBeforeQuitButNotAfter()
517500
echo 'never reached';
518501
});
519502

520-
$loop->run();
503+
Loop::run();
521504
}
522505
}

0 commit comments

Comments
 (0)