| <?php | 
| /** | 
|  * PhpUnderControl_PhalApiApi_Test | 
|  * | 
|  * 针对 ../PhalApi/Api.php PhalApi_Api 类的PHPUnit单元测试 | 
|  * | 
|  * @author: dogstar 20141004 | 
|  */ | 
|   | 
| require_once dirname(__FILE__) . '/test_env.php'; | 
|   | 
| if (!class_exists('PhalApi_Api')) { | 
|     require dirname(__FILE__) . '/../PhalApi/Api.php'; | 
| } | 
|   | 
| class PhpUnderControl_PhalApiApi_Test extends PHPUnit_Framework_TestCase | 
| { | 
|     public $coreApi; | 
|   | 
|     protected function setUp() | 
|     { | 
|         parent::setUp(); | 
|   | 
|         $this->coreApi = new PhalApi_Api(); | 
|     } | 
|   | 
|     protected function tearDown() | 
|     { | 
|         DI()->filter = NULL; | 
|     } | 
|   | 
|     /** | 
|      * @group testInitialize | 
|      */  | 
|     public function testInitialize() | 
|     { | 
|         DI()->request = new PhalApi_Request(array('service' => 'Default.Index')); | 
|         $rs = $this->coreApi->init(); | 
|     } | 
|   | 
|   | 
|     public function testInitializeWithWrongSign() | 
|     { | 
|         $data = array(); | 
|         $data['service'] = 'Default.Index'; | 
|   | 
|         DI()->request = new PhalApi_Request($data); | 
|         $rs = $this->coreApi->init(); | 
|     } | 
|   | 
|     public function testInitializeWithRightSign() | 
|     { | 
|         $data = array(); | 
|         $data['service'] = 'Default.Index'; | 
|   | 
|         DI()->request = new PhalApi_Request($data); | 
|         $rs = $this->coreApi->init(); | 
|   | 
|     } | 
|   | 
|     public function testSetterAndGetter() | 
|     { | 
|         $this->coreApi->username = 'phalapi'; | 
|         $this->assertEquals('phalapi', $this->coreApi->username); | 
|     } | 
|   | 
|     /** | 
|      * @expectedException PhalApi_Exception_InternalServerError | 
|      */ | 
|     public function testGetUndefinedProperty() | 
|     { | 
|         $this->coreApi->name = 'PhalApi'; | 
|         $rs = $this->coreApi->noThisKey; | 
|     } | 
|   | 
|     public function testApiImpl() | 
|     { | 
|         $data = array(); | 
|         $data['service'] = 'Impl.Add'; | 
|         $data['version'] = '1.1.0'; | 
|         $data['left'] = '6'; | 
|         $data['right'] = '1'; | 
|   | 
|         DI()->request = new PhalApi_Request($data); | 
|         DI()->filter = 'PhalApi_Filter_Impl'; | 
|   | 
|         $impl = new PhalApi_Api_Impl(); | 
|         $impl->init(); | 
|   | 
|         $rs = $impl->add(); | 
|         $this->assertEquals(7, $rs); | 
|     } | 
|   | 
|     /** | 
|      * @expectedException PhalApi_Exception_InternalServerError | 
|      */ | 
|     public function testIllegalFilter() | 
|     { | 
|         DI()->filter = 'PhalApi_Filter_Impl_NotFound'; | 
|   | 
|         $impl = new PhalApi_Api_Impl(); | 
|         $impl->init(); | 
|     } | 
| } |