1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/movim_ynh.git synced 2024-09-03 19:46:19 +02:00
movim_ynh/sources/vendor/react/stream/tests/CompositeStreamTest.php
2016-03-14 23:16:11 +01:00

155 lines
4.7 KiB
PHP

<?php
namespace React\Tests\Stream;
use React\Stream\CompositeStream;
use React\Stream\ReadableStream;
use React\Stream\WritableStream;
/**
* @covers React\Stream\CompositeStream
*/
class CompositeStreamTest extends TestCase
{
/** @test */
public function itShouldForwardWritableCallsToWritableStream()
{
$readable = $this->getMock('React\Stream\ReadableStreamInterface');
$writable = $this->getMock('React\Stream\WritableStreamInterface');
$writable
->expects($this->once())
->method('write')
->with('foo');
$writable
->expects($this->once())
->method('isWritable');
$composite = new CompositeStream($readable, $writable);
$composite->write('foo');
$composite->isWritable();
}
/** @test */
public function itShouldForwardReadableCallsToReadableStream()
{
$readable = $this->getMock('React\Stream\ReadableStreamInterface');
$readable
->expects($this->once())
->method('isReadable');
$readable
->expects($this->once())
->method('pause');
$readable
->expects($this->once())
->method('resume');
$writable = $this->getMock('React\Stream\WritableStreamInterface');
$composite = new CompositeStream($readable, $writable);
$composite->isReadable();
$composite->pause();
$composite->resume();
}
/** @test */
public function endShouldDelegateToWritableWithData()
{
$readable = $this->getMock('React\Stream\ReadableStreamInterface');
$writable = $this->getMock('React\Stream\WritableStreamInterface');
$writable
->expects($this->once())
->method('end')
->with('foo');
$composite = new CompositeStream($readable, $writable);
$composite->end('foo');
}
/** @test */
public function closeShouldCloseBothStreams()
{
$readable = $this->getMock('React\Stream\ReadableStreamInterface');
$readable
->expects($this->once())
->method('close');
$writable = $this->getMock('React\Stream\WritableStreamInterface');
$writable
->expects($this->once())
->method('close');
$composite = new CompositeStream($readable, $writable);
$composite->close();
}
/** @test */
public function itShouldReceiveForwardedEvents()
{
$readable = new ReadableStream();
$writable = new WritableStream();
$composite = new CompositeStream($readable, $writable);
$composite->on('data', $this->expectCallableOnce());
$composite->on('drain', $this->expectCallableOnce());
$readable->emit('data', array('foo'));
$writable->emit('drain');
}
/** @test */
public function itShouldHandlePipingCorrectly()
{
$readable = $this->getMock('React\Stream\ReadableStreamInterface');
$writable = $this->getMock('React\Stream\WritableStreamInterface');
$writable
->expects($this->once())
->method('write')
->with('foo');
$composite = new CompositeStream($readable, $writable);
$input = new ReadableStream();
$input->pipe($composite);
$input->emit('data', array('foo'));
}
/** @test */
public function itShouldForwardPauseAndResumeUpstreamWhenPipedTo()
{
$readable = $this->getMock('React\Stream\ReadableStreamInterface');
$writable = $this->getMock('React\Stream\WritableStream', array('write'));
$writable
->expects($this->once())
->method('write')
->will($this->returnValue(false));
$composite = new CompositeStream($readable, $writable);
$input = $this->getMock('React\Stream\ReadableStream', array('pause', 'resume'));
$input
->expects($this->once())
->method('pause');
$input
->expects($this->once())
->method('resume');
$input->pipe($composite);
$input->emit('data', array('foo'));
$writable->emit('drain');
}
/** @test */
public function itShouldForwardPipeCallsToReadableStream()
{
$readable = new ReadableStream();
$writable = $this->getMock('React\Stream\WritableStreamInterface');
$composite = new CompositeStream($readable, $writable);
$output = $this->getMock('React\Stream\WritableStreamInterface');
$output
->expects($this->once())
->method('write')
->with('foo');
$composite->pipe($output);
$readable->emit('data', array('foo'));
}
}