You are here

public function ProxyMagicMethodsTest::testInheritedMagicGet in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/ProxyMagicMethodsTest.php \Doctrine\Tests\Common\Proxy\ProxyMagicMethodsTest::testInheritedMagicGet()

File

vendor/doctrine/common/tests/Doctrine/Tests/Common/Proxy/ProxyMagicMethodsTest.php, line 68

Class

ProxyMagicMethodsTest
Test for behavior of proxies with inherited magic methods

Namespace

Doctrine\Tests\Common\Proxy

Code

public function testInheritedMagicGet() {
  $proxyClassName = $this
    ->generateProxyClass(__NAMESPACE__ . '\\MagicGetClass');
  $proxy = new $proxyClassName(function (Proxy $proxy, $method, $params) use (&$counter) {
    if (!in_array($params[0], array(
      'publicField',
      'test',
      'notDefined',
    ))) {
      throw new \InvalidArgumentException('Unexpected access to field "' . $params[0] . '"');
    }
    $initializer = $proxy
      ->__getInitializer();
    $proxy
      ->__setInitializer(null);
    $proxy->publicField = 'modifiedPublicField';
    $counter += 1;
    $proxy
      ->__setInitializer($initializer);
  });
  $this
    ->assertSame('id', $proxy->id);
  $this
    ->assertSame('modifiedPublicField', $proxy->publicField);
  $this
    ->assertSame('test', $proxy->test);
  $this
    ->assertSame('not defined', $proxy->notDefined);
  $this
    ->assertSame(3, $counter);
}