Skip to content

Commit 1bb9595

Browse files
WyriHaximusclue
authored andcommitted
Update test suite and remove legacy PHPUnit workarounds
1 parent a06b914 commit 1bb9595

10 files changed

+93
-138
lines changed

composer.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
"evenement/evenement": "^3.0 || ^2.0 || ^1.0"
3232
},
3333
"require-dev": {
34-
"phpunit/phpunit": "^9.6 || ^5.7",
34+
"phpunit/phpunit": "^9.6 || ^7.5",
3535
"clue/stream-filter": "~1.2"
3636
},
3737
"autoload": {

phpunit.xml.legacy

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
<!-- PHPUnit configuration file with old format for legacy PHPUnit -->
44
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
5-
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/5.7/phpunit.xsd"
5+
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/7.5/phpunit.xsd"
66
bootstrap="vendor/autoload.php"
77
colors="true">
88
<testsuites>

tests/CompositeStreamTest.php

+20-18
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@
33
namespace React\Tests\Stream;
44

55
use React\Stream\CompositeStream;
6+
use React\Stream\ReadableStreamInterface;
67
use React\Stream\ThroughStream;
8+
use React\Stream\WritableStreamInterface;
79

810
/**
911
* @covers React\Stream\CompositeStream
@@ -13,7 +15,7 @@ class CompositeStreamTest extends TestCase
1315
/** @test */
1416
public function itShouldCloseReadableIfNotWritable()
1517
{
16-
$readable = $this->getMockBuilder('React\Stream\ReadableStreamInterface')->getMock();
18+
$readable = $this->createMock(ReadableStreamInterface::class);
1719
$readable
1820
->expects($this->once())
1921
->method('isReadable')
@@ -22,7 +24,7 @@ public function itShouldCloseReadableIfNotWritable()
2224
->expects($this->once())
2325
->method('close');
2426

25-
$writable = $this->getMockBuilder('React\Stream\WritableStreamInterface')->getMock();
27+
$writable = $this->createMock(WritableStreamInterface::class);
2628
$writable
2729
->expects($this->once())
2830
->method('isWritable')
@@ -37,13 +39,13 @@ public function itShouldCloseReadableIfNotWritable()
3739
/** @test */
3840
public function itShouldCloseWritableIfNotReadable()
3941
{
40-
$readable = $this->getMockBuilder('React\Stream\ReadableStreamInterface')->getMock();
42+
$readable = $this->createMock(ReadableStreamInterface::class);
4143
$readable
4244
->expects($this->once())
4345
->method('isReadable')
4446
->willReturn(false);
4547

46-
$writable = $this->getMockBuilder('React\Stream\WritableStreamInterface')->getMock();
48+
$writable = $this->createMock(WritableStreamInterface::class);
4749
$writable
4850
->expects($this->once())
4951
->method('close');
@@ -57,13 +59,13 @@ public function itShouldCloseWritableIfNotReadable()
5759
/** @test */
5860
public function itShouldForwardWritableCallsToWritableStream()
5961
{
60-
$readable = $this->getMockBuilder('React\Stream\ReadableStreamInterface')->getMock();
62+
$readable = $this->createMock(ReadableStreamInterface::class);
6163
$readable
6264
->expects($this->once())
6365
->method('isReadable')
6466
->willReturn(true);
6567

66-
$writable = $this->getMockBuilder('React\Stream\WritableStreamInterface')->getMock();
68+
$writable = $this->createMock(WritableStreamInterface::class);
6769
$writable
6870
->expects($this->once())
6971
->method('write')
@@ -81,7 +83,7 @@ public function itShouldForwardWritableCallsToWritableStream()
8183
/** @test */
8284
public function itShouldForwardReadableCallsToReadableStream()
8385
{
84-
$readable = $this->getMockBuilder('React\Stream\ReadableStreamInterface')->getMock();
86+
$readable = $this->createMock(ReadableStreamInterface::class);
8587
$readable
8688
->expects($this->exactly(2))
8789
->method('isReadable')
@@ -93,7 +95,7 @@ public function itShouldForwardReadableCallsToReadableStream()
9395
->expects($this->once())
9496
->method('resume');
9597

96-
$writable = $this->getMockBuilder('React\Stream\WritableStreamInterface')->getMock();
98+
$writable = $this->createMock(WritableStreamInterface::class);
9799
$writable
98100
->expects($this->any())
99101
->method('isWritable')
@@ -108,7 +110,7 @@ public function itShouldForwardReadableCallsToReadableStream()
108110
/** @test */
109111
public function itShouldNotForwardResumeIfStreamIsNotWritable()
110112
{
111-
$readable = $this->getMockBuilder('React\Stream\ReadableStreamInterface')->getMock();
113+
$readable = $this->createMock(ReadableStreamInterface::class);
112114
$readable
113115
->expects($this->once())
114116
->method('isReadable')
@@ -117,7 +119,7 @@ public function itShouldNotForwardResumeIfStreamIsNotWritable()
117119
->expects($this->never())
118120
->method('resume');
119121

120-
$writable = $this->getMockBuilder('React\Stream\WritableStreamInterface')->getMock();
122+
$writable = $this->createMock(WritableStreamInterface::class);
121123
$writable
122124
->expects($this->exactly(2))
123125
->method('isWritable')
@@ -130,13 +132,13 @@ public function itShouldNotForwardResumeIfStreamIsNotWritable()
130132
/** @test */
131133
public function endShouldDelegateToWritableWithData()
132134
{
133-
$readable = $this->getMockBuilder('React\Stream\ReadableStreamInterface')->getMock();
135+
$readable = $this->createMock(ReadableStreamInterface::class);
134136
$readable
135137
->expects($this->once())
136138
->method('isReadable')
137139
->willReturn(true);
138140

139-
$writable = $this->getMockBuilder('React\Stream\WritableStreamInterface')->getMock();
141+
$writable = $this->createMock(WritableStreamInterface::class);
140142
$writable
141143
->expects($this->once())
142144
->method('isWritable')
@@ -153,7 +155,7 @@ public function endShouldDelegateToWritableWithData()
153155
/** @test */
154156
public function closeShouldCloseBothStreams()
155157
{
156-
$readable = $this->getMockBuilder('React\Stream\ReadableStreamInterface')->getMock();
158+
$readable = $this->createMock(ReadableStreamInterface::class);
157159
$readable
158160
->expects($this->once())
159161
->method('isReadable')
@@ -162,7 +164,7 @@ public function closeShouldCloseBothStreams()
162164
->expects($this->once())
163165
->method('close');
164166

165-
$writable = $this->getMockBuilder('React\Stream\WritableStreamInterface')->getMock();
167+
$writable = $this->createMock(WritableStreamInterface::class);
166168
$writable
167169
->expects($this->once())
168170
->method('isWritable')
@@ -224,13 +226,13 @@ public function itShouldReceiveForwardedEvents()
224226
/** @test */
225227
public function itShouldHandlePipingCorrectly()
226228
{
227-
$readable = $this->getMockBuilder('React\Stream\ReadableStreamInterface')->getMock();
229+
$readable = $this->createMock(ReadableStreamInterface::class);
228230
$readable
229231
->expects($this->once())
230232
->method('isReadable')
231233
->willReturn(true);
232234

233-
$writable = $this->getMockBuilder('React\Stream\WritableStreamInterface')->getMock();
235+
$writable = $this->createMock(WritableStreamInterface::class);
234236
$writable->expects($this->any())->method('isWritable')->willReturn(True);
235237
$writable
236238
->expects($this->once())
@@ -249,12 +251,12 @@ public function itShouldForwardPipeCallsToReadableStream()
249251
{
250252
$readable = new ThroughStream();
251253

252-
$writable = $this->getMockBuilder('React\Stream\WritableStreamInterface')->getMock();
254+
$writable = $this->createMock(WritableStreamInterface::class);
253255
$writable->expects($this->any())->method('isWritable')->willReturn(True);
254256

255257
$composite = new CompositeStream($readable, $writable);
256258

257-
$output = $this->getMockBuilder('React\Stream\WritableStreamInterface')->getMock();
259+
$output = $this->createMock(WritableStreamInterface::class);
258260
$output->expects($this->any())->method('isWritable')->willReturn(True);
259261
$output
260262
->expects($this->once())

tests/DuplexResourceStreamIntegrationTest.php

+16-18
Original file line numberDiff line numberDiff line change
@@ -13,24 +13,22 @@ class DuplexResourceStreamIntegrationTest extends TestCase
1313
{
1414
public function loopProvider()
1515
{
16-
return array(
17-
array(
18-
function() {
19-
return true;
20-
},
21-
function () {
22-
return new StreamSelectLoop();
23-
}
24-
),
25-
array(
26-
function () {
27-
return class_exists('EventBase') && class_exists('React\EventLoop\ExtEventLoop');
28-
},
29-
function () {
30-
return new ExtEventLoop();
31-
}
32-
)
33-
);
16+
yield [
17+
function() {
18+
return true;
19+
},
20+
function () {
21+
return new StreamSelectLoop();
22+
}
23+
];
24+
yield [
25+
function () {
26+
return class_exists('EventBase');
27+
},
28+
function () {
29+
return new ExtEventLoop();
30+
}
31+
];
3432
}
3533

3634
/**

tests/DuplexResourceStreamTest.php

+12-10
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,10 @@
22

33
namespace React\Tests\Stream;
44

5+
use React\EventLoop\LoopInterface;
56
use React\Stream\DuplexResourceStream;
67
use React\Stream\WritableResourceStream;
8+
use React\Stream\WritableStreamInterface;
79
use function Clue\StreamFilter\append as filter_append;
810

911
class DuplexResourceStreamTest extends TestCase
@@ -56,7 +58,7 @@ public function testConstructorThrowsExceptionOnInvalidStream()
5658
{
5759
$loop = $this->createLoopMock();
5860

59-
$this->setExpectedException('InvalidArgumentException');
61+
$this->expectException(\InvalidArgumentException::class);
6062
new DuplexResourceStream('breakme', $loop);
6163
}
6264

@@ -67,7 +69,7 @@ public function testConstructorThrowsExceptionOnWriteOnlyStream()
6769
{
6870
$loop = $this->createLoopMock();
6971

70-
$this->setExpectedException('InvalidArgumentException');
72+
$this->expectException(\InvalidArgumentException::class);
7173
new DuplexResourceStream(STDOUT, $loop);
7274
}
7375

@@ -82,7 +84,7 @@ public function testConstructorThrowsExceptionOnWriteOnlyStreamWithExcessiveMode
8284
unlink($name);
8385

8486
$loop = $this->createLoopMock();
85-
$this->setExpectedException('InvalidArgumentException');
87+
$this->expectException(\InvalidArgumentException::class);
8688
new DuplexResourceStream($stream, $loop);
8789
}
8890

@@ -98,7 +100,7 @@ public function testConstructorThrowsExceptionIfStreamDoesNotSupportNonBlocking(
98100
$stream = fopen('blocking://test', 'r+');
99101
$loop = $this->createLoopMock();
100102

101-
$this->setExpectedException('RunTimeException');
103+
$this->expectException(\RuntimeException::class);
102104
new DuplexResourceStream($stream, $loop);
103105
}
104106

@@ -111,7 +113,7 @@ public function testConstructorAcceptsBuffer()
111113
$stream = fopen('php://temp', 'r+');
112114
$loop = $this->createLoopMock();
113115

114-
$buffer = $this->getMockBuilder('React\Stream\WritableStreamInterface')->getMock();
116+
$buffer = $this->createMock(WritableStreamInterface::class);
115117

116118
new DuplexResourceStream($stream, $loop, null, $buffer);
117119
}
@@ -130,7 +132,7 @@ public function testConstructorThrowsExceptionIfStreamDoesNotSupportNonBlockingW
130132

131133
$buffer = $this->getMockBuilder('React\Stream\WritableStreamInterface')->getMock();
132134

133-
$this->setExpectedException('RunTimeException');
135+
$this->expectException(\RuntimeException::class);
134136
new DuplexResourceStream($stream, $loop, null, $buffer);
135137
}
136138

@@ -153,7 +155,7 @@ public function testEndShouldEndBuffer()
153155
$stream = fopen('php://temp', 'r+');
154156
$loop = $this->createLoopMock();
155157

156-
$buffer = $this->getMockBuilder('React\Stream\WritableStreamInterface')->getMock();
158+
$buffer = $this->createMock(WritableStreamInterface::class);
157159
$buffer->expects($this->once())->method('end')->with('foo');
158160

159161
$conn = new DuplexResourceStream($stream, $loop, null, $buffer);
@@ -166,7 +168,7 @@ public function testEndAfterCloseIsNoOp()
166168
$stream = fopen('php://temp', 'r+');
167169
$loop = $this->createLoopMock();
168170

169-
$buffer = $this->getMockBuilder('React\Stream\WritableStreamInterface')->getMock();
171+
$buffer = $this->createMock(WritableStreamInterface::class);
170172
$buffer->expects($this->never())->method('end');
171173

172174
$conn = new DuplexResourceStream($stream, $loop);
@@ -406,7 +408,7 @@ public function testPipeShouldReturnDestination()
406408
$loop = $this->createLoopMock();
407409

408410
$conn = new DuplexResourceStream($stream, $loop);
409-
$dest = $this->getMockBuilder('React\Stream\WritableStreamInterface')->getMock();
411+
$dest = $this->createMock(WritableStreamInterface::class);
410412

411413
$this->assertSame($dest, $conn->pipe($dest));
412414
}
@@ -517,6 +519,6 @@ private function createWriteableLoopMock()
517519

518520
private function createLoopMock()
519521
{
520-
return $this->getMockBuilder('React\EventLoop\LoopInterface')->getMock();
522+
return $this->createMock(LoopInterface::class);
521523
}
522524
}

tests/ReadableResourceStreamTest.php

+8-6
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33
namespace React\Tests\Stream;
44

5+
use React\EventLoop\LoopInterface;
56
use React\Stream\ReadableResourceStream;
7+
use React\Stream\WritableStreamInterface;
68
use function Clue\StreamFilter\append as filter_append;
79

810
class ReadableResourceStreamTest extends TestCase
@@ -55,7 +57,7 @@ public function testConstructorThrowsExceptionOnInvalidStream()
5557
{
5658
$loop = $this->createLoopMock();
5759

58-
$this->setExpectedException('InvalidArgumentException');
60+
$this->expectException(\InvalidArgumentException::class);
5961
new ReadableResourceStream(false, $loop);
6062
}
6163

@@ -66,7 +68,7 @@ public function testConstructorThrowsExceptionOnWriteOnlyStream()
6668
{
6769
$loop = $this->createLoopMock();
6870

69-
$this->setExpectedException('InvalidArgumentException');
71+
$this->expectException(\InvalidArgumentException::class);
7072
new ReadableResourceStream(STDOUT, $loop);
7173
}
7274

@@ -81,7 +83,7 @@ public function testConstructorThrowsExceptionOnWriteOnlyStreamWithExcessiveMode
8183
unlink($name);
8284

8385
$loop = $this->createLoopMock();
84-
$this->setExpectedException('InvalidArgumentException');
86+
$this->expectException(\InvalidArgumentException::class);
8587
new ReadableResourceStream($stream, $loop);
8688
}
8789

@@ -97,7 +99,7 @@ public function testConstructorThrowsExceptionIfStreamDoesNotSupportNonBlocking(
9799
$stream = fopen('blocking://test', 'r+');
98100
$loop = $this->createLoopMock();
99101

100-
$this->setExpectedException('RuntimeException');
102+
$this->expectException(\RuntimeException::class);
101103
new ReadableResourceStream($stream, $loop);
102104
}
103105

@@ -221,7 +223,7 @@ public function testPipeShouldReturnDestination()
221223
$loop = $this->createLoopMock();
222224

223225
$conn = new ReadableResourceStream($stream, $loop);
224-
$dest = $this->getMockBuilder('React\Stream\WritableStreamInterface')->getMock();
226+
$dest = $this->createMock(WritableStreamInterface::class);
225227

226228
$this->assertSame($dest, $conn->pipe($dest));
227229
}
@@ -395,6 +397,6 @@ public function testEmptyReadShouldntFcloseStream()
395397

396398
private function createLoopMock()
397399
{
398-
return $this->getMockBuilder('React\EventLoop\LoopInterface')->getMock();
400+
return $this->createMock(LoopInterface::class);
399401
}
400402
}

0 commit comments

Comments
 (0)