UrsRequestTest.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. <?php
  2. namespace Tests\Unit\ThirdParty;
  3. use PHPUnit\Framework\TestCase;
  4. /**
  5. * URS Request机制测试
  6. *
  7. * 测试重构后的URS Request类是否正确实现单一职责原则
  8. * 验证每个Request类只处理一种特定的请求类型
  9. */
  10. class UrsRequestTest extends TestCase
  11. {
  12. /**
  13. * 测试URS Request类是否存在
  14. */
  15. public function testUrsRequestClassesExist()
  16. {
  17. // 测试获取用户信息Request类
  18. $this->assertTrue(
  19. class_exists('ThirdParty\\Urs\\Request\\UrsGetUserInfoRequest'),
  20. 'UrsGetUserInfoRequest类应该存在'
  21. );
  22. // 测试获取用户团队关系Request类
  23. $this->assertTrue(
  24. class_exists('ThirdParty\\Urs\\Request\\UrsGetUserTeamRequest'),
  25. 'UrsGetUserTeamRequest类应该存在'
  26. );
  27. // 测试获取用户下级统计Request类
  28. $this->assertTrue(
  29. class_exists('ThirdParty\\Urs\\Request\\UrsGetUserLevelCountRequest'),
  30. 'UrsGetUserLevelCountRequest类应该存在'
  31. );
  32. }
  33. /**
  34. * 测试URS服务类是否存在
  35. */
  36. public function testUrsServiceClassExists()
  37. {
  38. $this->assertTrue(
  39. class_exists('ThirdParty\\Urs\\Services\\UrsService'),
  40. 'UrsService类应该存在'
  41. );
  42. }
  43. /**
  44. * 测试只存在3个URS Request类,没有多余的类
  45. */
  46. public function testOnlyThreeUrsRequestClassesExist()
  47. {
  48. // 确保不存在之前错误创建的Request类
  49. $nonExistentClasses = [
  50. 'ThirdParty\\Urs\\Request\\UrsRegisterRequest',
  51. 'ThirdParty\\Urs\\Request\\UrsDepositRequest',
  52. 'ThirdParty\\Urs\\Request\\UrsWithdrawRequest',
  53. 'ThirdParty\\Urs\\Request\\UrsCheckBalanceRequest',
  54. ];
  55. foreach ($nonExistentClasses as $className) {
  56. $this->assertFalse(
  57. class_exists($className),
  58. "{$className}不应该存在,因为URS没有提供对应的接口"
  59. );
  60. }
  61. }
  62. /**
  63. * 测试URS文件是否存在
  64. */
  65. public function testUrsFilesExist()
  66. {
  67. $expectedFiles = [
  68. 'ThirdParty/Urs/Request/UrsGetUserInfoRequest.php',
  69. 'ThirdParty/Urs/Request/UrsGetUserTeamRequest.php',
  70. 'ThirdParty/Urs/Request/UrsGetUserLevelCountRequest.php',
  71. 'ThirdParty/Urs/Services/UrsService.php',
  72. ];
  73. foreach ($expectedFiles as $file) {
  74. $this->assertFileExists(
  75. $file,
  76. "文件 {$file} 应该存在"
  77. );
  78. }
  79. }
  80. /**
  81. * 测试删除的文件不存在
  82. */
  83. public function testDeletedFilesDoNotExist()
  84. {
  85. $deletedFiles = [
  86. 'ThirdParty/Urs/Request/UrsRegisterRequest.php',
  87. 'ThirdParty/Urs/Request/UrsDepositRequest.php',
  88. 'ThirdParty/Urs/Request/UrsWithdrawRequest.php',
  89. 'ThirdParty/Urs/Request/UrsCheckBalanceRequest.php',
  90. ];
  91. foreach ($deletedFiles as $file) {
  92. $this->assertFileDoesNotExist(
  93. $file,
  94. "文件 {$file} 不应该存在,因为对应的接口不存在"
  95. );
  96. }
  97. }
  98. }