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());
 }