/** * @param ObjectStream $stream * @return \React\Promise\Promise */ public static function promise(ObjectStream $stream) { $deferred = new Deferred(); $list = new \SplObjectStorage(); $stream->on('data', function ($object) use($list) { $list->attach($object); }); $stream->on('end', function () use($deferred, $list) { $deferred->resolve($list); }); return $deferred->promise(); }
public function testObjectStream() { $node = $this->getMock('React\\Filesystem\\Node\\NodeInterface'); $stream = new ObjectStream(); $this->assertTrue($stream->isWritable()); $this->assertTrue($stream->isReadable()); $stream->on('data', function (NodeInterface $data) use($node) { $this->assertEquals($node, $data); }); $stream->end($node); $this->assertFalse($stream->isWritable()); $this->assertFalse($stream->isReadable()); $stream->close(); $this->assertFalse($stream->isWritable()); $this->assertFalse($stream->isReadable()); }