22
33namespace React \Tests \Promise \Stream ;
44
5- use Clue \React \Block ;
6- use React \EventLoop \Factory ;
75use React \Promise ;
86use React \Promise \Deferred ;
97use React \Promise \Stream ;
10- use React \Promise \Timer ;
118use React \Stream \ThroughStream ;
129
1310class UnwrapWritableTest extends TestCase
1411{
15- private $ loop ;
16-
17- /**
18- * @before
19- */
20- public function setUpLoop ()
21- {
22- $ this ->loop = Factory::create ();
23- }
24-
2512 public function testReturnsWritableStreamForPromise ()
2613 {
2714 $ promise = new \React \Promise \Promise (function () { });
@@ -45,14 +32,14 @@ public function testClosingStreamMakesItNotWritable()
4532
4633 public function testClosingRejectingStreamMakesItNotWritable ()
4734 {
48- $ promise = Timer \reject (0.001 , $ this ->loop );
49- $ stream = Stream \unwrapWritable ($ promise );
35+ $ deferred = new Deferred ();
36+
37+ $ stream = Stream \unwrapWritable ($ deferred ->promise ());
5038
5139 $ stream ->on ('close ' , $ this ->expectCallableOnce ());
5240 $ stream ->on ('error ' , $ this ->expectCallableNever ());
5341
5442 $ stream ->close ();
55- $ this ->loop ->run ();
5643
5744 $ this ->assertFalse ($ stream ->isWritable ());
5845 }
@@ -69,32 +56,32 @@ public function testClosingStreamWillCancelInputPromiseAndMakeStreamNotWritable(
6956
7057 public function testEmitsErrorWhenPromiseRejects ()
7158 {
72- $ promise = Timer \reject ( 0.001 , $ this -> loop );
59+ $ deferred = new Deferred ( );
7360
74- $ stream = Stream \unwrapWritable ($ promise );
61+ $ stream = Stream \unwrapWritable ($ deferred -> promise () );
7562
7663 $ this ->assertTrue ($ stream ->isWritable ());
7764
7865 $ stream ->on ('error ' , $ this ->expectCallableOnce ());
7966 $ stream ->on ('close ' , $ this ->expectCallableOnce ());
8067
81- $ this -> loop -> run ( );
68+ $ deferred -> reject ( new \ RuntimeException () );
8269
8370 $ this ->assertFalse ($ stream ->isWritable ());
8471 }
8572
8673 public function testEmitsErrorWhenPromiseResolvesWithWrongValue ()
8774 {
88- $ promise = Timer \resolve ( 0.001 , $ this -> loop );
75+ $ deferred = new Deferred ( );
8976
90- $ stream = Stream \unwrapWritable ($ promise );
77+ $ stream = Stream \unwrapWritable ($ deferred -> promise () );
9178
9279 $ this ->assertTrue ($ stream ->isWritable ());
9380
9481 $ stream ->on ('error ' , $ this ->expectCallableOnce ());
9582 $ stream ->on ('close ' , $ this ->expectCallableOnce ());
9683
97- $ this -> loop -> run ( );
84+ $ deferred -> resolve ( 42 );
9885
9986 $ this ->assertFalse ($ stream ->isWritable ());
10087 }
@@ -125,17 +112,15 @@ public function testReturnsStreamThatWillBeClosedWhenPromiseResolvesWithClosedIn
125112 $ input = new ThroughStream ();
126113 $ input ->close ();
127114
128- $ promise = Timer \resolve (0.001 , $ this ->loop )->then (function () use ($ input ) {
129- return $ input ;
130- });
115+ $ deferred = new Deferred ();
131116
132- $ stream = Stream \unwrapWritable ($ promise );
117+ $ stream = Stream \unwrapWritable ($ deferred -> promise () );
133118
134119 $ this ->assertTrue ($ stream ->isWritable ());
135120
136121 $ stream ->on ('close ' , $ this ->expectCallableOnce ());
137122
138- $ this -> loop -> run ( );
123+ $ deferred -> resolve ( $ input );
139124
140125 $ this ->assertFalse ($ stream ->isWritable ());
141126 }
@@ -162,14 +147,13 @@ public function testForwardsOriginalDataOncePromiseResolves()
162147 $ input ->expects ($ this ->once ())->method ('write ' )->with ($ data );
163148 $ input ->expects ($ this ->never ())->method ('end ' );
164149
165- $ promise = Timer \resolve (0.001 , $ this ->loop )->then (function () use ($ input ) {
166- return $ input ;
167- });
168- $ stream = Stream \unwrapWritable ($ promise );
150+ $ deferred = new Deferred ();
151+
152+ $ stream = Stream \unwrapWritable ($ deferred ->promise ());
169153
170154 $ stream ->write ($ data );
171155
172- $ this -> loop -> run ( );
156+ $ deferred -> resolve ( $ input );
173157 }
174158
175159 public function testForwardsDataInOriginalChunksOncePromiseResolves ()
@@ -179,15 +163,14 @@ public function testForwardsDataInOriginalChunksOncePromiseResolves()
179163 $ input ->expects ($ this ->exactly (2 ))->method ('write ' )->withConsecutive (array ('hello ' ), array ('world ' ));
180164 $ input ->expects ($ this ->never ())->method ('end ' );
181165
182- $ promise = Timer \resolve (0.001 , $ this ->loop )->then (function () use ($ input ) {
183- return $ input ;
184- });
185- $ stream = Stream \unwrapWritable ($ promise );
166+ $ deferred = new Deferred ();
167+
168+ $ stream = Stream \unwrapWritable ($ deferred ->promise ());
186169
187170 $ stream ->write ('hello ' );
188171 $ stream ->write ('world ' );
189172
190- $ this -> loop -> run ( );
173+ $ deferred -> resolve ( $ input );
191174 }
192175
193176 public function testForwardsDataAndEndImmediatelyIfPromiseIsAlreadyResolved ()
@@ -211,16 +194,15 @@ public function testForwardsDataAndEndOncePromiseResolves()
211194 $ input ->expects ($ this ->exactly (3 ))->method ('write ' )->withConsecutive (array ('hello ' ), array ('world ' ), array ('! ' ));
212195 $ input ->expects ($ this ->once ())->method ('end ' );
213196
214- $ promise = Timer \resolve (0.001 , $ this ->loop )->then (function () use ($ input ) {
215- return $ input ;
216- });
217- $ stream = Stream \unwrapWritable ($ promise );
197+ $ deferred = new Deferred ();
198+
199+ $ stream = Stream \unwrapWritable ($ deferred ->promise ());
218200
219201 $ stream ->write ('hello ' );
220202 $ stream ->write ('world ' );
221203 $ stream ->end ('! ' );
222204
223- $ this -> loop -> run ( );
205+ $ deferred -> resolve ( $ input );
224206 }
225207
226208 public function testForwardsNoDataWhenWritingAfterEndIfPromiseIsAlreadyResolved ()
@@ -245,15 +227,14 @@ public function testForwardsNoDataWhenWritingAfterEndOncePromiseResolves()
245227 $ input ->expects ($ this ->never ())->method ('write ' );
246228 $ input ->expects ($ this ->once ())->method ('end ' );
247229
248- $ promise = Timer \resolve (0.001 , $ this ->loop )->then (function () use ($ input ) {
249- return $ input ;
250- });
251- $ stream = Stream \unwrapWritable ($ promise );
230+ $ deferred = new Deferred ();
231+
232+ $ stream = Stream \unwrapWritable ($ deferred ->promise ());
252233
253234 $ stream ->end ();
254235 $ stream ->write ('nope ' );
255236
256- $ this -> loop -> run ( );
237+ $ deferred -> resolve ( $ input );
257238 }
258239
259240 public function testWriteReturnsFalseWhenPromiseIsPending ()
0 commit comments