/** * Set up class mocker * * @return void */ public function setUp() { BaseMock::setDefaultCallBehavior(BaseMock::DEFAULT_BEHAVIOUR_RETURN_NULL); $this->classMocker = new ClassMocker(); //$this->classMocker->setGenerationDir('./var/generation'); $this->classMocker->mock('Foobar\\*'); $this->classMocker->registerTrait(TraitA::class); $this->classMocker->registerTrait(TraitB::class); $this->classMocker->registerTrait(TraitC::class); $this->classMocker->registerTrait(DummyTrait::class, 'Foobar\\*', 1000); // test footprints $footprintA = new ClassFootprint(); $footprintA->addInterface(Readable::class); $footprintA->addInterface(Talkable::class); $footprintB = new ClassFootprint(); $footprintB->setParent('Foobar\\BaseClass'); $this->classMocker->registerFootprint('Foobar\\BaseClass', $footprintA); $this->classMocker->registerFootprint('Foobar\\TestClass', $footprintB); $this->classMocker->enable(); }
<?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);
/** * Test footprints imported from json test file * * @return void * @test */ public function testFootprintJsonImport() { $fwMocker = new ClassMocker(); $fwMocker->importFootprints(__DIR__ . '/_data/test.ref.json'); $fwMocker->mock('JSiefer\\ClassMocker\\TestFramework\\*'); $fwMocker->enable(); $test = new ObjectB(); $this->assertEquals('foobar', ObjectA::EVENT, 'Constant was not loaded correctly from test.ref.json'); $this->assertEquals(100, ObjectA::SORT, 'Constant was not loaded correctly from test.ref.json'); $this->assertInstanceOf(ObjectA::class, $test); $this->assertInstanceOf(ObjectB::class, $test); $this->assertInstanceOf(InterfaceB::class, $test); $this->assertInstanceOf(BaseMock::class, $test); }