public function setUp() { self::$_mockCache = array(); $ioc = \Mockery::mock('org_tubepress_api_ioc_IocService'); $ioc->shouldReceive('get')->zeroOrMoreTimes()->andReturnUsing(function ($className) { if (!array_key_exists($className, TubePressUnitTest::$_mockCache)) { org_tubepress_impl_classloader_ClassLoader::loadClass($className); $mock = \Mockery::mock($className); TubePressUnitTest::$_mockCache[$className] = $mock; if (!is_a($mock, $className)) { TubePressUnitTest::fail("Failed to built mock of {$className}"); } } return TubePressUnitTest::$_mockCache[$className]; }); org_tubepress_impl_ioc_IocContainer::setInstance($ioc); }
/** * Get the singleton inversion of control container. * * @return org_tubepress_api_ioc_IocService The singleton IOC container. */ public static function getInstance() { /* see if we already built one */ if (isset(self::$_instance)) { return self::$_instance; } $detector = new org_tubepress_impl_environment_SimpleEnvironmentDetector(); if ($detector->isPro()) { if ($detector->isWordPress()) { org_tubepress_impl_classloader_ClassLoader::loadClass('org_tubepress_impl_ioc_ProInWordPressIocService'); self::$_instance = new org_tubepress_impl_ioc_ProInWordPressIocService(); } else { org_tubepress_impl_classloader_ClassLoader::loadClass('org_tubepress_impl_ioc_ProIocService'); self::$_instance = new org_tubepress_impl_ioc_ProIocService(); } } else { org_tubepress_impl_classloader_ClassLoader::loadClass('org_tubepress_impl_ioc_FreeWordPressPluginIocService'); self::$_instance = new org_tubepress_impl_ioc_FreeWordPressPluginIocService(); } return self::$_instance; }
private function _buildInterface($interfaceName, $implementationName) { class_exists($interfaceName) || org_tubepress_impl_classloader_ClassLoader::loadClass($interfaceName); class_exists($implementationName) || org_tubepress_impl_classloader_ClassLoader::loadClass($implementationName); /* build the implementation */ $instance = $this->_buildAndRemember($interfaceName, $implementationName); /* make sure the class looks OK */ if (!$instance instanceof $interfaceName) { throw new Exception("{$implementationName} does not implement {$interfaceName}, but they were bound together"); } return $instance; }
<?php define('BASE', realpath(dirname(__FILE__) . '/../../')); /** Load up PHPUnit */ #require_once 'PHPUnit/Framework.php'; /** Load up PHPMockery */ require_once 'Mockery/Loader.php'; require_once 'Hamcrest/hamcrest.php'; $loader = new \Mockery\Loader(); $loader->register(); /** Load up the mock function stuff */ require_once 'phpunit/MockFunction.php'; /** Load up the class loader */ class_exists('org_tubepress_impl_classloader_ClassLoader') || (require BASE . '/sys/classes/org/tubepress/impl/classloader/ClassLoader.class.php'); org_tubepress_impl_classloader_ClassLoader::loadClass('org_tubepress_impl_ioc_IocContainer'); /** Load up the test base classes */ require_once 'TubePressUnitTestSuite.php'; require_once 'TubePressUnitTest.php'; /** Set the tubepress_base_url */ global $tubepress_base_url; $tubepress_base_url = '<tubepress_base_url>'; /** Load up the ReturnMapping stuff */ require_once 'phpunit/ReturnMapping/ReturnMapping.php'; require_once 'phpunit/ReturnMapping/ReturnMapping/Builder.php'; require_once 'phpunit/ReturnMapping/ReturnMapping/Entry.php'; require_once 'phpunit/ReturnMapping/ReturnMapping/EntryBuilder.php';