mirror of
				https://github.com/Mibew/java.git
				synced 2025-10-31 02:26:00 +03:00 
			
		
		
		
	Create tests for RequestProcessor class
This commit is contained in:
		
							parent
							
								
									24ecf02e7b
								
							
						
					
					
						commit
						7b6a433ae6
					
				| @ -0,0 +1,462 @@ | ||||
| <?php | ||||
| 
 | ||||
| require_once dirname(__FILE__) . '/../../../../../webim/libs/classes/event_dispatcher.php'; | ||||
| require_once dirname(__FILE__) . '/../../../../../webim/libs/classes/plugin.php'; | ||||
| require_once dirname(__FILE__) . '/../../../../../webim/libs/classes/plugin_manager.php'; | ||||
| require_once dirname(__FILE__) . '/../../../../../webim/libs/classes/request_processor.php'; | ||||
| require_once dirname(__FILE__) . '/../../../../../webim/libs/classes/mibew_api.php'; | ||||
| require_once dirname(__FILE__) . '/../../../../../webim/libs/classes/mibew_api_interaction.php'; | ||||
| require_once dirname(__FILE__) . '/../../../../../webim/libs/classes/mibew_api_execution_context.php'; | ||||
| require_once dirname(__FILE__) . '/../request_processor_test.php'; | ||||
| require_once dirname(__FILE__) . '/mibew_api_test_interaction.php'; | ||||
| require_once dirname(__FILE__) . '/test_processor.php'; | ||||
| 
 | ||||
| /** | ||||
|  * Test class for RequestProcessor. | ||||
|  * Generated by PHPUnit on 2012-09-21 at 19:05:21. | ||||
|  */ | ||||
| class RequestProcessorTest extends PHPUnit_Framework_TestCase { | ||||
| 
 | ||||
| 	/** | ||||
| 	 * @var RequestProcessor | ||||
| 	 */ | ||||
| 	protected static $object; | ||||
| 
 | ||||
| 	/** | ||||
| 	 * @var MibewAPI | ||||
| 	 */ | ||||
| 	protected static $mibewAPI; | ||||
| 
 | ||||
| 	/** | ||||
| 	 * @var Request_processor_testPlugin | ||||
| 	 */ | ||||
| 	protected static $plugin; | ||||
| 
 | ||||
| 	public static function setUpBeforeClass() { | ||||
| 		// Load Mibew API
 | ||||
| 		self::$mibewAPI = MibewAPI::getAPI('MibewAPITestInteraction'); | ||||
| 		// Initialize TestProcessor object
 | ||||
| 		self::$object = new TestProcessor(array( | ||||
| 			'signature' => 'valid_signature', | ||||
| 			'trusted_signatures' => array('trusted_signature') | ||||
| 		)); | ||||
| 		// Initialize events listener plugin
 | ||||
| 		set_include_path(get_include_path() . PATH_SEPARATOR . realpath(dirname(__FILE__) . '/../../plugins/')); | ||||
| 		PluginManager::loadPlugins( | ||||
| 			array( | ||||
| 				array('name' => 'request_processor_test') | ||||
| 			) | ||||
| 		); | ||||
| 		self::$plugin = PluginManager::getPlugin('request_processor_test'); | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * Sets up the fixture, for example, opens a network connection. | ||||
| 	 * This method is called before a test is executed. | ||||
| 	 */ | ||||
| 	protected function setUp() {} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * Tears down the fixture, for example, closes a network connection. | ||||
| 	 * This method is called after a test is executed. | ||||
| 	 */ | ||||
| 	protected function tearDown() {} | ||||
| 
 | ||||
| 	public function test__construct() { | ||||
| 		// Try to get error with undefined signature
 | ||||
| 		try { | ||||
| 			new TestProcessor( | ||||
| 				array( | ||||
| 					'trusted_signatures' => array('') | ||||
| 				) | ||||
| 			); | ||||
| 			$this->fail('Error must be thrown'); | ||||
| 		} catch(PHPUnit_Framework_Error $e) {} | ||||
| 
 | ||||
| 		// Try to get error with undefined trusted signatures
 | ||||
| 		try { | ||||
| 			new TestProcessor( | ||||
| 				array('signature' => '') | ||||
| 			); | ||||
| 			$this->fail('Error must be thrown'); | ||||
| 		} catch(PHPUnit_Framework_Error $e) {} | ||||
| 
 | ||||
| 		// Try to create object
 | ||||
| 		$processor = new TestProcessor( | ||||
| 			array( | ||||
| 				'signature' => '', | ||||
| 				'trusted_signatures' => array(''), | ||||
| 				'event_prefix' => '_testProcessor' | ||||
| 			) | ||||
| 		); | ||||
| 
 | ||||
| 		unset($processor); | ||||
| 	} | ||||
| 
 | ||||
| 	public function testReceiveRequest() { | ||||
| 		// Test signature check
 | ||||
| 		// Create request
 | ||||
| 		$package = self::$mibewAPI->encodePackage( | ||||
| 			array( | ||||
| 				array( | ||||
| 					'token' => 'test', | ||||
| 					'functions' => array( | ||||
| 						array( | ||||
| 							'function' => 'test', | ||||
| 							'arguments' => array( | ||||
| 								'return' => array(), | ||||
| 								'references' => array() | ||||
| 							) | ||||
| 						) | ||||
| 					) | ||||
| 				) | ||||
| 			), | ||||
| 			'wrong signature', | ||||
| 			false | ||||
| 		); | ||||
| 		// Process request and check result
 | ||||
| 		$this->assertFalse(self::$object->receiveRequest($package)); | ||||
| 		// Check plugin call list
 | ||||
| 		$this->assertEquals(array('testRequestError'), self::$plugin->callList); | ||||
| 		self::$plugin->callList = array(); | ||||
| 		// Check error code
 | ||||
| 		$this->assertEquals(MibewAPIException::UNTRUSTED_SIGNATURE, self::$plugin->errorCode); | ||||
| 		// Check TestProcessor call list
 | ||||
| 		$this->assertEquals(array(), self::$object->callList); | ||||
| 
 | ||||
| 
 | ||||
| 		// Test synchronous request
 | ||||
| 		// Create request
 | ||||
| 		$package = self::$mibewAPI->encodePackage( | ||||
| 			array( | ||||
| 				array( | ||||
| 					'token' => 'sync_call_test', | ||||
| 					'functions' => array( | ||||
| 						array( | ||||
| 							'function' => 'call_func', | ||||
| 							'arguments' => array( | ||||
| 								'return' => array('processorCall' => 'processorCall', 'pluginCall' => 'pluginCall'), | ||||
| 								'references' => array() | ||||
| 							) | ||||
| 						) | ||||
| 					) | ||||
| 				) | ||||
| 			), | ||||
| 			'trusted_signature', | ||||
| 			false | ||||
| 		); | ||||
| 		// Process request and check result
 | ||||
| 		$this->assertTrue(self::$object->receiveRequest($package)); | ||||
| 		// Check plugin call list
 | ||||
| 		$this->assertEquals(array('testRequestReceived', 'testFunctionCall'), self::$plugin->callList); | ||||
| 		self::$plugin->callList = array(); | ||||
| 		// Check TestProcessor call list
 | ||||
| 		$this->assertEquals( | ||||
| 			array( | ||||
| 				'processRequest', | ||||
| 				'processFunction', | ||||
| 				'processorCall', | ||||
| 				'sendSyncResponses' | ||||
| 			), | ||||
| 			self::$object->callList | ||||
| 		); | ||||
| 		self::$object->callList = array(); | ||||
| 		// Check response
 | ||||
| 		$this->assertEquals( | ||||
| 			array( | ||||
| 				array( | ||||
| 					'token' => 'sync_call_test', | ||||
| 					'functions' => array( | ||||
| 						array( | ||||
| 							'function' => 'result', | ||||
| 							'arguments' => array( | ||||
| 								'processorCall' => true, | ||||
| 								'pluginCall' => true, | ||||
| 								'return' => array(), | ||||
| 								'references' => array() | ||||
| 							) | ||||
| 						) | ||||
| 					) | ||||
| 				) | ||||
| 			), | ||||
| 			self::$object->responses | ||||
| 		); | ||||
| 		self::$object->responses = array(); | ||||
| 
 | ||||
| 
 | ||||
| 		// Test first asynchronous request (no callbacks and no result function)
 | ||||
| 		// Create request
 | ||||
| 		$package = self::$mibewAPI->encodePackage( | ||||
| 			array( | ||||
| 				array( | ||||
| 					'token' => 'async_call_test', | ||||
| 					'functions' => array( | ||||
| 						array( | ||||
| 							'function' => 'call_func', | ||||
| 							'arguments' => array( | ||||
| 								'return' => array('processorCall' => 'processorCall', 'pluginCall' => 'pluginCall'), | ||||
| 								'references' => array() | ||||
| 							) | ||||
| 						) | ||||
| 					) | ||||
| 				) | ||||
| 			), | ||||
| 			'trusted_signature', | ||||
| 			true | ||||
| 		); | ||||
| 		// Process request and check result
 | ||||
| 		$this->assertTrue(self::$object->receiveRequest($package)); | ||||
| 		// Check plugin call list
 | ||||
| 		$this->assertEquals(array('testRequestReceived', 'testFunctionCall'), self::$plugin->callList); | ||||
| 		self::$plugin->callList = array(); | ||||
| 		// Check TestProcessor call list
 | ||||
| 		$this->assertEquals( | ||||
| 			array( | ||||
| 				'loadCallback', | ||||
| 				'processRequest', | ||||
| 				'processFunction', | ||||
| 				'processorCall', | ||||
| 				'sendAsyncResponses' | ||||
| 			), | ||||
| 			self::$object->callList | ||||
| 		); | ||||
| 		self::$object->callList = array(); | ||||
| 		// Check response
 | ||||
| 		$this->assertEquals( | ||||
| 			array( | ||||
| 				array( | ||||
| 					'token' => 'async_call_test', | ||||
| 					'functions' => array( | ||||
| 						array( | ||||
| 							'function' => 'result', | ||||
| 							'arguments' => array( | ||||
| 								'processorCall' => true, | ||||
| 								'pluginCall' => true, | ||||
| 								'return' => array(), | ||||
| 								'references' => array() | ||||
| 							) | ||||
| 						) | ||||
| 					) | ||||
| 				) | ||||
| 			), | ||||
| 			self::$object->responses | ||||
| 		); | ||||
| 		self::$object->responses = array(); | ||||
| 
 | ||||
| 
 | ||||
| 		// Test asynchronous request with result function and no callback
 | ||||
| 		// Create request
 | ||||
| 		$package = self::$mibewAPI->encodePackage( | ||||
| 			array( | ||||
| 				array( | ||||
| 					'token' => 'result_only_test', | ||||
| 					'functions' => array( | ||||
| 						array( | ||||
| 							'function' => 'result', | ||||
| 							'arguments' => array( | ||||
| 								'test_argument' => 'test_value', | ||||
| 								'return' => array(), | ||||
| 								'references' => array() | ||||
| 							) | ||||
| 						) | ||||
| 					) | ||||
| 				) | ||||
| 			), | ||||
| 			'trusted_signature', | ||||
| 			true | ||||
| 		); | ||||
| 		// Process request and check result
 | ||||
| 		$this->assertTrue(self::$object->receiveRequest($package)); | ||||
| 		// Check plugin call list
 | ||||
| 		$this->assertEquals(array('testRequestReceived'), self::$plugin->callList); | ||||
| 		self::$plugin->callList = array(); | ||||
| 		// Check TestProcessor call list
 | ||||
| 		$this->assertEquals(array('loadCallback'), self::$object->callList); | ||||
| 		self::$object->callList = array(); | ||||
| 		// Check response
 | ||||
| 		$this->assertEmpty(self::$object->responses); | ||||
| 
 | ||||
| 
 | ||||
| 		// Test asynchronous request with callback and no result function
 | ||||
| 		// Create request
 | ||||
| 		$package = self::$mibewAPI->encodePackage( | ||||
| 			array( | ||||
| 				array( | ||||
| 					'token' => 'callback_only_test', | ||||
| 					'functions' => array( | ||||
| 						array( | ||||
| 							'function' => 'not_result', | ||||
| 							'arguments' => array( | ||||
| 								'test_argument' => 'test_value', | ||||
| 								'return' => array(), | ||||
| 								'references' => array() | ||||
| 							) | ||||
| 						) | ||||
| 					) | ||||
| 				) | ||||
| 			), | ||||
| 			'trusted_signature', | ||||
| 			true | ||||
| 		); | ||||
| 		// Process request and check result
 | ||||
| 		$this->assertFalse(self::$object->receiveRequest($package)); | ||||
| 		// Check plugin call list
 | ||||
| 		$this->assertEquals(array('testRequestReceived', 'testRequestError'), self::$plugin->callList); | ||||
| 		self::$plugin->callList = array(); | ||||
| 		// Check error code
 | ||||
| 		$this->assertEquals(MibewAPIException::NO_RESULT_FUNCTION, self::$plugin->errorCode); | ||||
| 		// Check TestProcessor call list
 | ||||
| 		$this->assertEquals(array('loadCallback', 'processRequest'), self::$object->callList); | ||||
| 		self::$object->callList = array(); | ||||
| 		// Check response
 | ||||
| 		$this->assertEmpty(self::$object->responses); | ||||
| 
 | ||||
| 
 | ||||
| 		// Test asynchronous request with callback and result function
 | ||||
| 		// Create request
 | ||||
| 		$package = self::$mibewAPI->encodePackage( | ||||
| 			array( | ||||
| 				array( | ||||
| 					'token' => 'callback_and_result_test', | ||||
| 					'functions' => array( | ||||
| 						array( | ||||
| 							'function' => 'result', | ||||
| 							'arguments' => array( | ||||
| 								'first' => true, | ||||
| 								'return' => array(), | ||||
| 								'references' => array() | ||||
| 							) | ||||
| 						) | ||||
| 					) | ||||
| 				) | ||||
| 			), | ||||
| 			'trusted_signature', | ||||
| 			true | ||||
| 		); | ||||
| 		// Process request and check result
 | ||||
| 		$this->assertTrue(self::$object->receiveRequest($package)); | ||||
| 		// Check plugin call list
 | ||||
| 		$this->assertEquals(array('testRequestReceived', 'testRequestProcessorCallback'), self::$plugin->callList); | ||||
| 		self::$plugin->callList = array(); | ||||
| 		// Check callback arguments
 | ||||
| 		$this->assertEquals( | ||||
| 			array( | ||||
| 				'first' => true, | ||||
| 				'second' => true, // Set in TestProcessor::loadCallback method
 | ||||
| 				'return' => array(), | ||||
| 				'references' => array() | ||||
| 			), | ||||
| 			self::$plugin->callbackArguments | ||||
| 		); | ||||
| 		self::$plugin->callbackArguments = array(); | ||||
| 		// Check TestProcessor call list
 | ||||
| 		$this->assertEquals(array('loadCallback', 'processRequest'), self::$object->callList); | ||||
| 		self::$object->callList = array(); | ||||
| 		// Check response
 | ||||
| 		$this->assertEmpty(self::$object->responses); | ||||
| 	} | ||||
| 
 | ||||
| 	public function testCall() { | ||||
| 		// Check call to not a function
 | ||||
| 		// Call function
 | ||||
| 		$this->assertFalse(self::$object->call('', true)); | ||||
| 		// Check plugin call list
 | ||||
| 		$this->assertEquals(array('testCallError'), self::$plugin->callList); | ||||
| 		self::$plugin->callList = array(); | ||||
| 		// Check error code
 | ||||
| 		$this->assertEquals(RequestProcessorException::WRONG_ARGUMENTS, self::$plugin->errorCode); | ||||
| 		// Check TestProcessor call list
 | ||||
| 		$this->assertEmpty(self::$object->callList); | ||||
| 
 | ||||
| 
 | ||||
| 		// Check call to wrong function array. Only empty function's arguments checked. Other errors tested with
 | ||||
| 		// MibewAPI class.
 | ||||
| 		// Specify function
 | ||||
| 		$function = array( | ||||
| 			'function' => 'not a function' | ||||
| 		); | ||||
| 		// Call function
 | ||||
| 		$this->assertFalse(self::$object->call(array($function), true)); | ||||
| 		// Check plugin call list
 | ||||
| 		$this->assertEquals(array('testCallError'), self::$plugin->callList); | ||||
| 		self::$plugin->callList = array(); | ||||
| 		// Check error code
 | ||||
| 		$this->assertEquals(MibewAPIException::EMPTY_ARGUMENTS, self::$plugin->errorCode); | ||||
| 		// Check TestProcessor call list
 | ||||
| 		$this->assertEmpty(self::$object->callList); | ||||
| 
 | ||||
| 
 | ||||
| 		// Check asynchronous request
 | ||||
| 		// Specify function
 | ||||
| 		$function = array( | ||||
| 			'function' => 'test_func', | ||||
| 			'arguments' => array( | ||||
| 				'return' => array(), | ||||
| 				'references' => array() | ||||
| 			) | ||||
| 		); | ||||
| 		// Call function
 | ||||
| 		$this->assertTrue( | ||||
| 			self::$object->call( | ||||
| 				array($function), | ||||
| 				true, | ||||
| 				array('function' => 'callback', 'arguments' => array()) | ||||
| 			) | ||||
| 		); | ||||
| 		// Check plugin call list
 | ||||
| 		$this->assertEquals(array(), self::$plugin->callList); | ||||
| 		self::$plugin->callList = array(); | ||||
| 		// Check TestProcessor call list
 | ||||
| 		$this->assertEquals(array('saveCallback', 'sendAsyncRequest'), self::$object->callList); | ||||
| 		self::$object->callList = array(); | ||||
| 
 | ||||
| 
 | ||||
| 		// Check synchronous request with function that have result in response package
 | ||||
| 		// Specify function
 | ||||
| 		$function = array( | ||||
| 			'function' => 'return_result', | ||||
| 			'arguments' => array( | ||||
| 				'return' => array(), | ||||
| 				'references' => array() | ||||
| 			) | ||||
| 		); | ||||
| 		// Call function
 | ||||
| 		$this->assertNotEquals(false, self::$object->call(array($function), false)); | ||||
| 		// Check plugin call list
 | ||||
| 		$this->assertEquals(array('testResponseReceived'), self::$plugin->callList); | ||||
| 		self::$plugin->callList = array(); | ||||
| 		// Check TestProcessor call list
 | ||||
| 		$this->assertEquals( | ||||
| 			array('sendSyncRequest', 'processRequest'), | ||||
| 			self::$object->callList | ||||
| 		); | ||||
| 		self::$object->callList = array(); | ||||
| 
 | ||||
| 
 | ||||
| 		// Check synchronous request with function that have no result in response package
 | ||||
| 		// Specify function
 | ||||
| 		$function = array( | ||||
| 			'function' => 'some_test_func', | ||||
| 			'arguments' => array( | ||||
| 				'return' => array(), | ||||
| 				'references' => array() | ||||
| 			) | ||||
| 		); | ||||
| 		// Call function
 | ||||
| 		$this->assertFalse(self::$object->call(array($function), false)); | ||||
| 		// Check plugin call list
 | ||||
| 		$this->assertEquals(array('testResponseReceived', 'testCallError'), self::$plugin->callList); | ||||
| 		self::$plugin->callList = array(); | ||||
| 		// Check error code
 | ||||
| 		$this->assertEquals(MibewAPIException::NO_RESULT_FUNCTION, self::$plugin->errorCode); | ||||
| 		// Check TestProcessor call list
 | ||||
| 		$this->assertEquals( | ||||
| 			array('sendSyncRequest', 'processRequest'), | ||||
| 			self::$object->callList | ||||
| 		); | ||||
| 		self::$object->callList = array(); | ||||
| 	} | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| ?>
 | ||||
| @ -0,0 +1,115 @@ | ||||
| <?php | ||||
| 
 | ||||
| class TestProcessor extends RequestProcessor { | ||||
| 
 | ||||
| 	public $callList = array(); | ||||
| 
 | ||||
| 	public $responses = array(); | ||||
| 
 | ||||
| 	public function __construct($config = array()) { | ||||
| 		$config += array( | ||||
| 			'event_prefix' => 'test' | ||||
| 		); | ||||
| 		parent::__construct($config); | ||||
| 	} | ||||
| 
 | ||||
| 	protected function getMibewAPIInstance() { | ||||
| 		return MibewAPI::getAPI('MibewAPITestInteraction'); | ||||
| 	} | ||||
| 
 | ||||
| 	protected function processRequest($request, $result_function = null) { | ||||
| 		array_push($this->callList, 'processRequest'); | ||||
| 		return parent::processRequest($request, $result_function); | ||||
| 	} | ||||
| 
 | ||||
| 	protected function processFunction($function, MibewAPIExecutionContext &$context) { | ||||
| 		array_push($this->callList, 'processFunction'); | ||||
| 		return parent::processFunction($function, $context); | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * @todo Think about callbacks saving | ||||
| 	 */ | ||||
| 	protected function saveCallback($token, $callback) { | ||||
| 		array_push($this->callList, 'saveCallback'); | ||||
| 	} | ||||
| 
 | ||||
| 	protected function loadCallback($token) { | ||||
| 		array_push($this->callList, 'loadCallback'); | ||||
| 		if ($token == 'callback_only_test') { | ||||
| 			return array('function' => 'time', 'arguments' => array()); | ||||
| 		} elseif($token == 'callback_and_result_test') { | ||||
| 			return array('function' => 'request_processor_callback', 'arguments' => array('second' => true)); | ||||
| 		} | ||||
| 		return null; | ||||
| 	} | ||||
| 
 | ||||
| 	protected function sendSyncRequest($request) { | ||||
| 		array_push($this->callList, 'sendSyncRequest'); | ||||
| 		$return_result = false; | ||||
| 		foreach ($request['functions'] as $function) { | ||||
| 			if ($function['function'] == 'return_result') { | ||||
| 				$return_result = true; | ||||
| 				break; | ||||
| 			} | ||||
| 		} | ||||
| 		if ($return_result) { | ||||
| 			return array( | ||||
| 				'requests' => array( | ||||
| 					array( | ||||
| 						'token' => $request['token'], | ||||
| 						'functions' => array( | ||||
| 							array( | ||||
| 								'function' => 'result', | ||||
| 								'arguments' => array( | ||||
| 									'some_argument' => 'some_value', | ||||
| 									'return' => array(), | ||||
| 									'references' => array() | ||||
| 								) | ||||
| 							) | ||||
| 						) | ||||
| 					) | ||||
| 				) | ||||
| 			); | ||||
| 		} | ||||
| 		return array( | ||||
| 			'requests' => array( | ||||
| 				array( | ||||
| 					'token' => $request['token'], | ||||
| 					'functions' => array( | ||||
| 						array( | ||||
| 							'function' => 'not_a_result', | ||||
| 							'arguments' => array( | ||||
| 								'some_argument' => 'some_value', | ||||
| 								'return' => array(), | ||||
| 								'references' => array() | ||||
| 							) | ||||
| 						) | ||||
| 					) | ||||
| 				) | ||||
| 			) | ||||
| 		); | ||||
| 	} | ||||
| 
 | ||||
| 	protected function sendAsyncRequest($request) { | ||||
| 		array_push($this->callList, 'sendAsyncRequest'); | ||||
| 	} | ||||
| 
 | ||||
| 	protected function sendSyncResponses($responses) { | ||||
| 		array_push($this->callList, 'sendSyncResponses'); | ||||
| 		$this->responses = $responses; | ||||
| 	} | ||||
| 
 | ||||
| 	protected function sendAsyncResponses($responses) { | ||||
| 		array_push($this->callList, 'sendAsyncResponses'); | ||||
| 	} | ||||
| 
 | ||||
| 	protected function processorCall(&$func) { | ||||
| 		array_push($this->callList, 'processorCall'); | ||||
| 		if ($func['function'] == 'call_func') { | ||||
| 			$func['results']['processorCall'] = true; | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| ?>
 | ||||
| @ -0,0 +1,8 @@ | ||||
| <?php | ||||
| 
 | ||||
| function request_processor_callback($arguments) { | ||||
| 	$dispatcher = EventDispatcher::getInstance(); | ||||
| 	$dispatcher->triggerEvent('testRequestProcessorCallback', $arguments); | ||||
| } | ||||
| 
 | ||||
| ?>
 | ||||
| @ -0,0 +1,73 @@ | ||||
| <?php | ||||
| 
 | ||||
| /** | ||||
|  * Test plugin for PHPUnit tests | ||||
|  */ | ||||
| Class Request_processor_testPlugin extends Plugin{ | ||||
| 
 | ||||
| 	public $callList = array(); | ||||
| 
 | ||||
| 	public $errorCode = 0; | ||||
| 
 | ||||
| 	public $callbackArguments = array(); | ||||
| 
 | ||||
| 	public function __construct() { | ||||
| 		$this->initialized = true; | ||||
| 	} | ||||
| 
 | ||||
| 	public function getWeight() { | ||||
| 		return 10; | ||||
| 	} | ||||
| 
 | ||||
| 	public function registerEvents() { | ||||
| 		$dispatcher = EventDispatcher::getInstance(); | ||||
| 		$dispatcher->registerEvent('testRequestProcessorCallback'); | ||||
| 	} | ||||
| 
 | ||||
| 	public function registerListeners() { | ||||
| 		$registered_events = array( | ||||
| 			'testRequestReceived', | ||||
| 			'testRequestError', | ||||
| 			'testResponseReceived', | ||||
| 			'testCallError', | ||||
| 			'testFunctionCall', | ||||
| 			'testRequestProcessorCallback' | ||||
| 		); | ||||
| 		$dispatcher = EventDispatcher::getInstance(); | ||||
| 		foreach ($registered_events as $event) { | ||||
| 			$dispatcher->attachListener($event, $this, $event); | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	public function testRequestReceived(&$arguments) { | ||||
| 		array_push($this->callList, 'testRequestReceived'); | ||||
| 	} | ||||
| 
 | ||||
| 	public function testRequestError(&$arguments) { | ||||
| 		array_push($this->callList, 'testRequestError'); | ||||
| 		$this->errorCode = $arguments['exception']->getCode(); | ||||
| 	} | ||||
| 
 | ||||
| 	public function testResponseReceived(&$arguments) { | ||||
| 		array_push($this->callList, 'testResponseReceived'); | ||||
| 	} | ||||
| 
 | ||||
| 	public function testCallError(&$arguments) { | ||||
| 		array_push($this->callList, 'testCallError'); | ||||
| 		$this->errorCode = $arguments['exception']->getCode(); | ||||
| 	} | ||||
| 
 | ||||
| 	public function testFunctionCall(&$arguments) { | ||||
| 		array_push($this->callList, 'testFunctionCall'); | ||||
| 		if ($arguments['function'] == 'call_func') { | ||||
| 			$arguments['results']['pluginCall'] = true; | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	public function testRequestProcessorCallback(&$arguments) { | ||||
| 		array_push($this->callList, 'testRequestProcessorCallback'); | ||||
| 		$this->callbackArguments = $arguments; | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| ?>
 | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user