original_mock = $mock; } protected function _createOriginalObject() { $this->create_calls++; return $this->original_mock; } } class lmbProxyTest extends UnitTestCase { function testAccessAttributesOfWrappedObject() { $wrapped = new lmbObject(); $wrapped->wow = 'yahoo'; $proxy = new ProxyTestingStub($wrapped); $this->assertEqual($proxy->wow, 'yahoo'); $proxy->wow = 'ho-ho'; $this->assertEqual($proxy->wow, 'ho-ho'); $this->assertEqual($proxy->create_calls, 1); } function testPassMethodsCallsToWrappedObject() { $wrapped = new lmbObject(); $proxy = new ProxyTestingStub($wrapped); $proxy->set('foo', 'Foo'); $this->assertEqual($proxy->get('foo'), 'Foo'); $this->assertEqual($proxy->create_calls, 1); } function testGetHashDontResolveProxy() { $wrapped = new lmbObject(); $proxy = new ProxyTestingStub($wrapped); $this->assertNotEqual($proxy->getHash(), $wrapped->getHash()); $this->assertEqual($proxy->create_calls, 0); } function testGetHash() { $wrapped = new lmbObject(); $proxy = new ProxyTestingStub($wrapped); $this->assertNotEqual($proxy->getHash(), $wrapped->getHash()); $proxy->changed = true; $this->assertEqual($proxy->getHash(), $wrapped->getHash()); $this->assertEqual($proxy->create_calls, 1); } function testGetClass() { $wrapped = new lmbObject(); $proxy = new ProxyTestingStub($wrapped); $this->assertEqual($proxy->getClass(), $wrapped->getClass()); } } ?>