/**
  * @dataProvider withProvider
  * @_testWith ('ClassGenerator\tests\ResourceClasses\ExposeTraitTester', true)
  *           ('ClassGenerator\tests\ResourceClasses\CExposeTraitTester\BaseTester', true)
  *           ('ClassGenerator\tests\ResourceClasses\CExposeTraitTester\MethodTemplateName', true)
  *           ('ClassGenerator\tests\ResourceClasses\ExposeTraitInterfaceTester', false)
  *           ('ClassGenerator\tests\ResourceClasses\CExposeTraitTester\InterfaceTester', false)
  */
 public function testBaseClass($testedClass, $haveDummyMethod)
 {
     $exposedObject = new ResourceClasses\X(101, 102);
     $tested = new $testedClass($exposedObject);
     $this->assertEquals($exposedObject->getA(), $tested->getA());
     $this->assertEquals($exposedObject->getB(), $tested->getB());
     $this->assertEquals($exposedObject->getA(), $tested->getA());
     $tested->setB(201);
     $this->assertEquals(201, $tested->getB());
     $this->assertEquals(201, $exposedObject->getB());
     $this->assertEquals($haveDummyMethod, method_exists($tested, 'dummyMethod'));
 }
 /**
  * @dataProvider withProvider
  * @_testWith ('ClassGenerator\tests\ResourceClasses\CompositeX')
  *           ('ClassGenerator\tests\ResourceClasses\CompositeXInterface')
  */
 public function testComposite($testedClass)
 {
     $x1 = new ResourceClasses\X();
     $x2 = new ResourceClasses\X();
     $composite = new $testedClass(array($x1, $x2));
     $composite->setA(100);
     $composite->setB(101);
     $this->assertEquals(100, $x1->getA());
     $this->assertEquals(100, $x2->getA());
     $this->assertEquals(101, $x1->getB());
     $this->assertEquals(101, $x2->getB());
 }