function testPropertyStubbingOverwritesArgumentsStubbing() { /** @var Mockster|InjectMocksTest_InjectableClass $injectable */ $injectable = new Mockster(InjectMocksTest_InjectableClass::class); /** @var Mockster|InjectMocksTest_FooClass $injected */ $injected = new Mockster(InjectMocksTest_FooClass::class); Mockster::stub($injected->foo())->will()->return_('argument'); Mockster::stub($injectable->bas->foo())->will()->return_('property'); /** @var InjectMocksTest_InjectableClass $mock */ $mock = $injectable->__uut(['bas' => $injected->__mock()]); $this->assert($mock->bas->foo(), 'property'); }
public function before() { $this->foo = new Mockster(CheckReturnTypeTest_FooClass::class); $this->mock = $this->foo->__mock(); $this->uut = $this->foo->__uut(); }
function testProtectedMethods() { $foo = new Mockster(StubMethodsTest_FooClass::class); /** @noinspection PhpUndefinedMethodInspection */ Mockster::stub($foo->protectedMethod())->will()->return_('bar'); /** @noinspection PhpUndefinedMethodInspection */ Mockster::stub($foo->proxyMethod())->dontStub(); /** @var StubMethodsTest_FooClass $mock */ $mock = $foo->__mock(); $this->assert($mock->proxyMethod(), "bar"); }
public function before() { $this->foo = new Mockster(RecordStubUsageTest_FooClass::class); $this->mock = $this->foo->__mock(); }
function testKeepVariadicMethod() { if (!method_exists(\ReflectionMethod::class, 'isVariadic')) { $this->markIncomplete('Variadic methods requires PHP 5.6'); } eval(' class CreateMocksTest_VariadicMethod { public function variadic(...$a) { return $a; } }'); /** @var Mockster|object $methods */ $methods = new Mockster('CreateMocksTest_VariadicMethod'); /** @var object $mock */ $mock = $methods->__mock(); Mockster::stub($methods->variadic('one', 'two'))->will()->call(function ($args) { return json_encode($args); }); $this->assert->contains($mock->variadic('one', 'two'), '"0":"one","1":"two"'); }