/** * Creates and instance of the mock WebServiceApplicationWeb object. * * The test can implement the following overrides: * - mockAppendBody * - mockGetBody * - mockPrepentBody * - mockSetBody * * If any *Body methods are implemented in the test class, all should be implemented otherwise behaviour will be unreliable. * * @param TestCase $test A test object. * @param array $options A set of options to configure the mock. * * @return PHPUnit_Framework_MockObject_MockObject * * @since 11.3 */ public static function create($test, $options = array()) { // Set expected server variables. if (!isset($_SERVER['HTTP_HOST'])) { $_SERVER['HTTP_HOST'] = 'localhost'; } // Collect all the relevant methods in WebServiceApplicationWeb (work in progress). $methods = array('allowCache', 'appendBody', 'clearHeaders', 'close', 'execute', 'get', 'getBody', 'getDocument', 'getHeaders', 'getIdentity', 'getLanguage', 'getSession', 'loadConfiguration', 'loadDispatcher', 'loadDocument', 'loadIdentity', 'loadLanguage', 'loadSession', 'prependBody', 'redirect', 'registerEvent', 'sendHeaders', 'set', 'setBody', 'setHeader', 'triggerEvent'); // Create the mock. $mockObject = $test->getMock('WebServiceApplicationWeb', $methods, array(), '', true); // Mock calls to JApplicationWeb::getDocument(). $mockObject->expects($test->any())->method('getDocument')->will($test->returnValue(TestMockDocument::create($test))); // Mock calls to JApplicationWeb::getLanguage(). $mockObject->expects($test->any())->method('getLanguage')->will($test->returnValue(TestMockLanguage::create($test))); // Mock a call to JApplicationWeb::getSession(). if (isset($options['session'])) { $mockObject->expects($test->any())->method('getSession')->will($test->returnValue($options['session'])); } else { $mockObject->expects($test->any())->method('getSession')->will($test->returnValue(TestMockSession::create($test))); } $test->assignMockCallbacks($mockObject, array('appendBody' => array(is_callable(array($test, 'mockAppendBody')) ? $test : get_called_class(), 'mockAppendBody'), 'getBody' => array(is_callable(array($test, 'mockGetBody')) ? $test : get_called_class(), 'mockGetBody'), 'prependBody' => array(is_callable(array($test, 'mockPrependBody')) ? $test : get_called_class(), 'mockPrependBody'), 'setBody' => array(is_callable(array($test, 'mockSetBody')) ? $test : get_called_class(), 'mockSetBody'))); // Reset the body storage. self::$body = array(); return $mockObject; }
/** * Adds mock objects for some methods. * * @param TestCase $test A test object. * @param PHPUnit_Framework_MockObject_MockObject $mockObject The mock object. * @param array $options A set of options to configure the mock. * * @return PHPUnit_Framework_MockObject_MockObject The object with the behaviours added * * @since 3.4 */ public static function addBehaviours($test, $mockObject, $options) { // Mock calls to JApplicationWeb::getDocument(). $mockObject->expects($test->any())->method('getDocument')->will($test->returnValue(TestMockDocument::create($test))); // Mock calls to JApplicationWeb::getLanguage(). $mockObject->expects($test->any())->method('getLanguage')->will($test->returnValue(TestMockLanguage::create($test))); // Mock a call to JApplicationWeb::getSession(). if (isset($options['session'])) { $mockObject->expects($test->any())->method('getSession')->will($test->returnValue($options['session'])); } else { $mockObject->expects($test->any())->method('getSession')->will($test->returnValue(TestMockSession::create($test))); } $test->assignMockCallbacks($mockObject, array('appendBody' => array(is_callable(array($test, 'mockAppendBody')) ? $test : get_called_class(), 'mockAppendBody'), 'getBody' => array(is_callable(array($test, 'mockGetBody')) ? $test : get_called_class(), 'mockGetBody'), 'prependBody' => array(is_callable(array($test, 'mockPrependBody')) ? $test : get_called_class(), 'mockPrependBody'), 'setBody' => array(is_callable(array($test, 'mockSetBody')) ? $test : get_called_class(), 'mockSetBody'), 'getHeaders' => array(is_callable(array($test, 'mockGetHeaders')) ? $test : get_called_class(), 'mockGetHeaders'), 'setHeader' => array(is_callable(array($test, 'mockSetHeader')) ? $test : get_called_class(), 'mockSetHeader'), 'clearHeaders' => array(is_callable(array($test, 'mockClearHeaders')) ? $test : get_called_class(), 'mockClearHeaders'), 'allowCache' => array(is_callable(array($test, 'mockAllowCache')) ? $test : get_called_class(), 'mockAllowCache'))); // Reset the body storage. static::$body = array(); // Reset the headers storage. static::$headers = array(); // Reset the cache storage. static::$cachable = false; return parent::addBehaviours($test, $mockObject, $options); }
/** * Creates and instance of the mock JApplicationWeb object. * * @param object $test A test object. * @param array $options A set of options to configure the mock. * * @return object * * @since 11.3 */ public static function create($test, $options = array()) { // Set expected server variables. if (!isset($_SERVER['HTTP_HOST'])) { $_SERVER['HTTP_HOST'] = 'localhost'; } // Collect all the relevant methods in JApplicationWeb (work in progress). $methods = array('get', 'getDocument', 'getIdentity', 'getLanguage', 'getSession'); // Create the mock. $mockObject = $test->getMock('JApplicationWeb', $methods, array(), '', true); // Mock calls to JApplicationWeb::getDocument(). $mockObject->expects($test->any())->method('getDocument')->will($test->returnValue(TestMockDocument::create($test))); // Mock calls to JApplicationWeb::getLanguage(). $mockObject->expects($test->any())->method('getLanguage')->will($test->returnValue(TestMockLanguage::create($test))); // Mock a call to JApplicationWeb::getSession(). if (isset($options['session'])) { $mockObject->expects($test->any())->method('getSession')->will($test->returnValue($options['session'])); } else { $mockObject->expects($test->any())->method('getSession')->will($test->returnValue(TestMockSession::create($test))); } return $mockObject; }
/** * Gets a mock document object. * * @return JDocument * * @since 12.1 */ public function getMockDocument() { // Attempt to load the real class first. class_exists('JDocument'); return TestMockDocument::create($this); }