/vendor/alchemy/binary-driver/tests/Alchemy/Tests/BinaryDriver/Listeners/DebugListenerTest.php |
@@ -0,0 +1,33 @@ |
<?php |
|
namespace Alchemy\Tests\BinaryDriver\Listeners; |
|
use Alchemy\BinaryDriver\Listeners\DebugListener; |
use Symfony\Component\Process\Process; |
|
class DebugListenerTest extends \PHPUnit_Framework_TestCase |
{ |
public function testHandle() |
{ |
$listener = new DebugListener(); |
|
$lines = array(); |
$listener->on('debug', function ($line) use (&$lines) { |
$lines[] = $line; |
}); |
$listener->handle(Process::ERR, "first line\nsecond line"); |
$listener->handle(Process::OUT, "cool output"); |
$listener->handle('unknown', "lalala"); |
$listener->handle(Process::OUT, "another output\n"); |
|
$expected = array( |
'[ERROR] first line', |
'[ERROR] second line', |
'[OUT] cool output', |
'[OUT] another output', |
'[OUT] ', |
); |
|
$this->assertEquals($expected, $lines); |
} |
} |
/vendor/alchemy/binary-driver/tests/Alchemy/Tests/BinaryDriver/Listeners/ListenersTest.php |
@@ -0,0 +1,92 @@ |
<?php |
|
namespace Alchemy\Tests\BinaryDriver\Listeners; |
|
use Alchemy\BinaryDriver\Listeners\Listeners; |
use Evenement\EventEmitter; |
use Alchemy\BinaryDriver\Listeners\ListenerInterface; |
|
class ListenersTest extends \PHPUnit_Framework_TestCase |
{ |
public function testRegister() |
{ |
$listener = new MockListener(); |
|
$listeners = new Listeners(); |
$listeners->register($listener); |
|
$n = 0; |
$listener->on('received', function ($type, $data) use (&$n, &$capturedType, &$capturedData) { |
$n++; |
$capturedData = $data; |
$capturedType = $type; |
}); |
|
$type = 'type'; |
$data = 'data'; |
|
$listener->handle($type, $data); |
$listener->handle($type, $data); |
|
$listeners->unregister($listener); |
|
$listener->handle($type, $data); |
|
$this->assertEquals(3, $n); |
$this->assertEquals($type, $capturedType); |
$this->assertEquals($data, $capturedData); |
} |
|
public function testRegisterAndForwardThenUnregister() |
{ |
$listener = new MockListener(); |
$target = new EventEmitter(); |
|
$n = 0; |
$target->on('received', function ($type, $data) use (&$n, &$capturedType, &$capturedData) { |
$n++; |
$capturedData = $data; |
$capturedType = $type; |
}); |
|
$m = 0; |
$listener->on('received', function ($type, $data) use (&$m, &$capturedType2, &$capturedData2) { |
$m++; |
$capturedData2 = $data; |
$capturedType2 = $type; |
}); |
|
$listeners = new Listeners(); |
$listeners->register($listener, $target); |
|
$type = 'type'; |
$data = 'data'; |
|
$listener->handle($type, $data); |
$listener->handle($type, $data); |
|
$listeners->unregister($listener, $target); |
|
$listener->handle($type, $data); |
|
$this->assertEquals(2, $n); |
$this->assertEquals(3, $m); |
$this->assertEquals($type, $capturedType); |
$this->assertEquals($data, $capturedData); |
$this->assertEquals($type, $capturedType2); |
$this->assertEquals($data, $capturedData2); |
} |
} |
|
class MockListener extends EventEmitter implements ListenerInterface |
{ |
public function handle($type, $data) |
{ |
$this->emit('received', array($type, $data)); |
} |
|
public function forwardedEvents() |
{ |
return array('received'); |
} |
} |