NoPayServiceTest.php 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. <?php
  2. namespace Tests\Unit;
  3. use App\Services\Payment\NoPayService;
  4. use PHPUnit\Framework\TestCase;
  5. class NoPayServiceTest extends TestCase
  6. {
  7. public function test_signature_matches_document_example(): void
  8. {
  9. $signature = NoPayService::signature([
  10. 'appId' => 'CZJS4BABJ1ZAPUN8',
  11. 'amount' => '50',
  12. 'merchantMemberNo' => 'shuri',
  13. 'merchantOrderNo' => 'order_01',
  14. 'notifyUrl' => 'www.http://weihao.com',
  15. 'paymentMethod' => 12,
  16. 'timestamp' => 1698043692,
  17. 'version' => 'v1',
  18. ], 'CZKb4DB0WNHx5K3ajvcVCeH3ykBCuDIS');
  19. $this->assertSame(
  20. '2ce6c3b7637266b74432faa1dd6a50de9ad358570759b86d9555c8d1a8decd13',
  21. $signature
  22. );
  23. }
  24. public function test_payment_method_matches_recharge_channel(): void
  25. {
  26. $this->assertSame(12, NoPayService::paymentMethod(NoPayService::CHANNEL_SCAN));
  27. $this->assertSame(13, NoPayService::paymentMethod(NoPayService::CHANNEL_BALANCE));
  28. }
  29. public function test_empty_recharge_user_allowlist_allows_every_user(): void
  30. {
  31. config(['app.no_pay_recharge_user_ids' => '']);
  32. $this->assertTrue(NoPayService::canUserRecharge(123));
  33. }
  34. public function test_recharge_user_allowlist_only_allows_configured_users(): void
  35. {
  36. config(['app.no_pay_recharge_user_ids' => '12, 34']);
  37. $this->assertTrue(NoPayService::canUserRecharge(12));
  38. $this->assertFalse(NoPayService::canUserRecharge(56));
  39. }
  40. }