File tree Expand file tree Collapse file tree 4 files changed +32
-7
lines changed Expand file tree Collapse file tree 4 files changed +32
-7
lines changed Original file line number Diff line number Diff line change 77jobs :
88 PHPUnit :
99 name : PHPUnit (PHP ${{ matrix.php }})
10- runs-on : ubuntu-22 .04
10+ runs-on : ubuntu-24 .04
1111 strategy :
1212 matrix :
1313 php :
14+ - 8.4
1415 - 8.3
1516 - 8.2
1617 - 8.1
3839
3940 PHPUnit-hhvm :
4041 name : PHPUnit (HHVM)
41- runs-on : ubuntu-22 .04
42+ runs-on : ubuntu-24 .04
4243 continue-on-error : true
4344 steps :
4445 - uses : actions/checkout@v4
Original file line number Diff line number Diff line change 2424 "php" : " >=5.3" ,
2525 "clue/multicast-react" : " ^1.0 || ^0.2" ,
2626 "react/event-loop" : " ^1.2" ,
27- "react/promise" : " ^2.0 || ^1.0 "
27+ "react/promise" : " ^3.2 || ^2.7 || ^1.2.1 "
2828 },
2929 "require-dev" : {
3030 "phpunit/phpunit" : " ^9.6 || ^5.7 || ^4.8.36"
Original file line number Diff line number Diff line change @@ -28,8 +28,12 @@ class Client
2828 * @param ?LoopInterface $loop
2929 * @param ?MulticastFactory $multicast
3030 */
31- public function __construct (LoopInterface $ loop = null , MulticastFactory $ multicast = null )
31+ public function __construct ($ loop = null , MulticastFactory $ multicast = null )
3232 {
33+ if ($ loop !== null && !$ loop instanceof LoopInterface) { // manual type check to support legacy PHP < 7.1
34+ throw new \InvalidArgumentException ('Argument #1 ($loop) expected null|React\EventLoop\LoopInterface ' );
35+ }
36+
3337 $ this ->loop = $ loop ?: Loop::get ();
3438 $ this ->multicast = $ multicast ?: new MulticastFactory ($ this ->loop );
3539 }
@@ -47,7 +51,7 @@ public function search($searchTarget = 'ssdp:all', $mx = 2)
4751 // TODO: The TTL for the IP packet SHOULD default to 2 and SHOULD be configurable.
4852
4953 $ timer = $ this ->loop ->addTimer ($ mx , function () use ($ socket , &$ deferred ) {
50- $ deferred ->resolve ();
54+ $ deferred ->resolve (null );
5155 $ socket ->close ();
5256 });
5357
Original file line number Diff line number Diff line change @@ -67,8 +67,28 @@ public function testSearchTimeout()
6767
6868 $ promise = $ client ->search ('ssdp:all ' , 0.01 );
6969
70- Loop::run ();
70+ $ resolved = null ;
71+ $ promise ->then (function ($ value ) use (&$ resolved ) {
72+ $ resolved = $ value ;
73+ });
7174
72- $ promise ->then ($ this ->expectCallableOnce (), $ this ->expectCallableNever (), $ this ->expectCallableNever ());
75+ Loop::run ();
76+
77+ $ this ->assertNull ($ resolved );
7378 }
79+
80+ public function testCtorThrowsForInvalidLoop ()
81+ {
82+ if (method_exists ($ this , 'expectException ' )) {
83+ // PHPUnit 5.2+
84+ $ this ->expectException ('InvalidArgumentException ' );
85+ $ this ->expectExceptionMessage ('Argument #1 ($loop) expected null|React\EventLoop\LoopInterface ' );
86+ } else {
87+ // legacy PHPUnit
88+ $ this ->setExpectedException ('InvalidArgumentException ' , 'Argument #1 ($loop) expected null|React\EventLoop\LoopInterface ' );
89+ }
90+
91+ new Client ('loop ' );
92+ }
93+
7494}
You can’t perform that action at this time.
0 commit comments