Exemple #1
0
 public function register(ClassMocker $classMocker)
 {
     $classMocker->importFootprints(__DIR__ . '/mage.ref.json');
     $classMocker->registerTrait(Mage_Core_Helper_Abstract::class);
     $classMocker->registerTrait(Mage_Core_Model_Abstract::class);
     $classMocker->registerTrait(Mage_Core_Model_App::class);
     $classMocker->registerTrait(Varien_Object::class, 'Varien_Object', 100);
     $classMocker->registerTrait(Varien_Data_Collection::class, 'Varien_Data_Collection', 100);
     $classMocker->registerTrait(Varien_Data_Collection_Db::class);
     $classMocker->registerTrait(MageClass\ModelFactory::class);
     $classMocker->registerTrait(MageClass\Registry::class);
     $classMocker->registerBaseClass(MageFacade::class);
     $classMocker->mock('Mage');
     $classMocker->mock('MageClass');
     $classMocker->mock('Mage_*');
     $classMocker->mock('Varien_Object');
     $classMocker->mock('Varien_Data_Collection');
     $classMocker->mock('Varien_Data_Collection_Db');
     // optional mocking if no lib exists
     $classMocker->mock('Varien_', true);
 }
 /**
  * Test that all methods are called in the correct order
  * defined by the sortOrder parameter/tag
  *
  * @return void
  * @test
  */
 public function testTraitMethodSortOrder()
 {
     $msg = 'Sort order of methods are wrong';
     $instance = new \Foobar\TestClass();
     $this->assertEquals('TraitC:talk', $instance->talk('test'), $msg);
     $this->assertEquals('TraitC:listen', $instance->listen(), $msg);
     $this->assertEquals('TraitC:jump', $instance->jump(), $msg);
     $this->assertEquals('TraitB:show', $instance->show(), $msg);
     $this->assertEquals('TraitB:hide', $instance->hide(), $msg);
     $this->assertEquals('TraitA:read', $instance->read(), $msg);
     // force overwrite different order
     $this->classMocker->mock('Demo\\*Collection');
     $this->classMocker->registerTrait(TraitA::class, 'Demo\\*Collection', -10);
     $this->classMocker->registerTrait(TraitB::class, 'Demo\\*Collection', 50);
     $this->classMocker->registerTrait(TraitC::class, 'Demo\\*Collection', 100);
     $this->classMocker->registerTrait(DummyTrait::class, 'Demo\\*Collection');
     // test different orders
     $collection = new \Demo\TestCollection();
     $this->assertEquals('TraitA:talk', $collection->talk('test'));
     $this->assertEquals('TraitA:show', $collection->show());
 }
 /**
  * Trait should not allow any magic methods
  *
  * Magic methods like __call() can not be used by traits
  * without causing conflict with the BaseMock
  *
  * Instead use ___call() methods
  *
  * @return void
  * @test
  * @expectedException \RuntimeException
  * @expectedExceptionMessage Trait magic method ClassUsingInvalidTrait::__call()
  */
 public function shouldFailOnInvalidTraitMethod()
 {
     $fwMocker = new ClassMocker();
     $fwMocker->registerTrait(InvalidTrait::class, 'ClassUsingInvalidTrait');
     $fwMocker->mock('ClassUsingInvalidTrait');
     $fwMocker->autoload('ClassUsingInvalidTrait');
 }