public function testCompound() { $x = new ResourceClasses\X(100); $d = new ResourceClasses\MethodOverridedDecoratorForX(array('getA' => function () { return parent::getA() + 1; }), $x); $this->assertEquals(100, $x->getA()); $this->assertEquals(101, $d->getA()); }
public function testWithMethodOverriding() { $decorated = new ResourceClasses\X(123, 234); $decorator = new ResourceClasses\MethodOverridedDecoratorForX(array('getA' => function () { return parent::getA() + 1; }), $decorated); $this->assertEquals(234, $decorator->getB()); $this->assertEquals(124, $decorator->getA()); $decorator->setA(1000); $this->assertEquals(1001, $decorator->getA()); }