prevent phpunit from messing with the bound $this

This commit is contained in:
Robin Appelman 2015-02-23 15:42:18 +01:00
parent 27d047979d
commit 9873ab20af

View File

@ -10,6 +10,7 @@
namespace Test\Command;
use OC\Command\FileAccess;
use OCP\Command\IBus;
use OCP\Command\ICommand;
use Test\BackgroundJob\DummyJobList;
use Test\TestCase;
@ -44,6 +45,19 @@ function basicFunction() {
AsyncBus::$lastCommand = 'function';
}
// clean class to prevent phpunit putting closure in $this
class ThisClosureTest {
private function privateMethod() {
AsyncBus::$lastCommand = 'closure-this';
}
public function test(IBus $bus) {
$bus->push(function () {
$this->privateMethod();
});
}
}
class AsyncBus extends TestCase {
/**
* Basic way to check output from a command
@ -121,14 +135,11 @@ class AsyncBus extends TestCase {
$this->assertEquals('closure-self', self::$lastCommand);
}
private function privateMethod() {
self::$lastCommand = 'closure-this';
}
public function testClosureThis() {
$this->bus->push(function () {
$this->privateMethod();
});
// clean class to prevent phpunit putting closure in $this
$test = new ThisClosureTest();
$test->test($this->bus);
$this->runJobs();
$this->assertEquals('closure-this', self::$lastCommand);
}