You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

119 lines
2.9 KiB

  1. <?php
  2. /**
  3. * PhpUnderControl_PhalApiRequest_Test
  4. *
  5. * 针对 ../PhalApi/Request.php PhalApi_Request 类的PHPUnit单元测试
  6. *
  7. * @author: dogstar 20141004
  8. */
  9. require_once dirname(__FILE__) . '/test_env.php';
  10. if (!class_exists('PhalApi_Request')) {
  11. require dirname(__FILE__) . '/../PhalApi/Request.php';
  12. }
  13. class PhpUnderControl_PhalApiRequest_Test extends PHPUnit_Framework_TestCase
  14. {
  15. public $coreRequest;
  16. protected function setUp()
  17. {
  18. parent::setUp();
  19. $data = array('year' => '2014', 'version' => '1.0.0');
  20. $this->coreRequest = new PhalApi_Request($data);
  21. }
  22. protected function tearDown()
  23. {
  24. }
  25. /**
  26. * @group testGet
  27. */
  28. public function testGet()
  29. {
  30. $key = 'year';
  31. $default = '2015';
  32. $rs = $this->coreRequest->get($key, $default);
  33. $this->assertSame('2014', $rs);
  34. }
  35. /**
  36. * @group testGetByRule
  37. */
  38. public function testGetByRule()
  39. {
  40. $rule = array('name' => 'version', 'type' => 'string', 'default' => '0.0.0');
  41. $rs = $this->coreRequest->getByRule($rule);
  42. $this->assertEquals('1.0.0', $rs);
  43. }
  44. /**
  45. * @expectedException PhalApi_Exception_BadRequest
  46. */
  47. public function testGetByComplexRule()
  48. {
  49. $rule = array('name' => 'year', 'type' => 'int', 'min' => '2000', 'max' => '2013');
  50. $rs = $this->coreRequest->getByRule($rule);
  51. $this->assertSame(2013, $rs);
  52. }
  53. /**
  54. * @group testGetAll
  55. */
  56. public function testGetAll()
  57. {
  58. $rs = $this->coreRequest->getAll();
  59. $this->assertEquals(array('year' => '2014', 'version' => '1.0.0'), $rs);
  60. }
  61. public function testConstructWithREQUEST()
  62. {
  63. $request = new PhalApi_Request();
  64. }
  65. /**
  66. * @expectedException PhalApi_Exception_InternalServerError
  67. */
  68. public function testIllegalRule()
  69. {
  70. $this->coreRequest->getByRule(array());
  71. }
  72. /**
  73. * @expectedException PhalApi_Exception_BadRequest
  74. */
  75. public function testGetRequireVal()
  76. {
  77. $this->coreRequest->getByRule(array('name' => 'requireVal', 'require' => true));
  78. }
  79. public function testGetHeader()
  80. {
  81. $_SERVER['HTTP_ACCEPT'] = 'application/text';
  82. $_SERVER['HTTP_ACCEPT_CHARSET'] = 'utf-8';
  83. //$_SERVER['PHP_AUTH_DIGEST'] = 'xxx';
  84. $request = new PhalApi_Request();
  85. $this->assertEquals('application/text', $request->getHeader('Accept'));
  86. $this->assertEquals('utf-8', $request->getHeader('Accept-Charset'));
  87. //$this->assertEquals('xxx', $request->getHeader('AUTHORIZATION'));
  88. $this->assertEquals('123', $request->getHeader('no-this-key', '123'));
  89. $this->assertSame(NULL, $request->getHeader('no-this-key'));
  90. unset($_SERVER['HTTP_ACCEPT']);
  91. unset($_SERVER['HTTP_ACCEPT_CHARSET']);
  92. unset($_SERVER['PHP_AUTH_DIGEST']);
  93. }
  94. }