NoPayServiceTest.php 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  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. ], 'CZKb4DB0WNHx5K3ajvcVCeH3ykBCuDIS');
  18. $this->assertSame(
  19. '2ce6c3b7637266b74432faa1dd6a50de9ad358570759b86d9555c8d1a8decd13',
  20. $signature
  21. );
  22. }
  23. public function test_payment_method_matches_recharge_channel(): void
  24. {
  25. $this->assertSame(12, NoPayService::paymentMethod(NoPayService::CHANNEL_SCAN));
  26. $this->assertSame(13, NoPayService::paymentMethod(NoPayService::CHANNEL_BALANCE));
  27. }
  28. public function test_empty_recharge_user_allowlist_allows_every_user(): void
  29. {
  30. config(['app.no_pay_recharge_user_ids' => '']);
  31. $this->assertTrue(NoPayService::canUserRecharge(123));
  32. }
  33. public function test_recharge_user_allowlist_only_allows_configured_users(): void
  34. {
  35. config(['app.no_pay_recharge_user_ids' => '12, 34']);
  36. $this->assertTrue(NoPayService::canUserRecharge(12));
  37. $this->assertFalse(NoPayService::canUserRecharge(56));
  38. }
  39. }