/**
  * Make sure the test listener will validate any
  * object created during a test at the end of the test
  *
  * @return void
  * @test
  */
 public function testListener()
 {
     $classMocker = new ClassMocker();
     $classMocker->mock('TestListenerTest_SomeClass');
     $classMocker->autoload('TestListenerTest_SomeClass');
     $testCase = $this->getMockForAbstractClass(\PHPUnit_Framework_TestCase::class);
     $listener = new TestListener();
     $listener->startTest($testCase);
     $testObject = new \TestListenerTest_SomeClass();
     $testObject->expects($this->once())->method('test');
     try {
         $listener->endTest($testCase, 0);
         $this->fail("Should fail");
     } catch (\PHPUnit_Framework_ExpectationFailedException $e) {
         $this->assertStringStartsWith('Expectation failed for method name is equal to', $e->getMessage());
     }
     // everything has been reset so no error should be thrown
     $listener->endTest($testCase, 0);
 }
 /**
  * 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());
 }
Example #3
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);
 }
Example #4
0
<?php

/**
 * Optional add magento lib classes
 * @var \Composer\Autoload\ClassLoader $loader
 */
$loader = (require '../../vendor/autoload.php');
$loader->add('', '../../vendor/firegento/magento/lib');
use JSiefer\ClassMocker\ClassMocker;
use JSiefer\MageMock\Mage\MageFacade;
use JSiefer\MageMock\MagentoMock;
$magentoFramework = new MagentoMock();
$classMocker = new ClassMocker();
$classMocker->setGenerationDir('./var/generation');
$classMocker->mockFramework($magentoFramework);
$classMocker->enable();
$nameResolver = new \JSiefer\MageMock\ClassNameResolver();
$nameResolver->registerNamespace('sample', 'Magemock_Sample');
MageFacade::setNameResolver($nameResolver);
Example #5
0
 /**
  * Test framework register
  *
  * @return void
  * @test
  */
 public function testFrameworkMock()
 {
     $framework = $this->getMockForAbstractClass(FrameworkInterface::class);
     $framework->expects($this->once())->method('register');
     $fwMocker = new ClassMocker();
     $fwMocker->mockFramework($framework);
 }