WalletTest.php 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <?php
  2. namespace mattvb91\TronTrx\Tests\Unit;
  3. use mattvb91\TronTrx\Exceptions\TronErrorException;
  4. use mattvb91\TronTrx\Wallet;
  5. class WalletTest extends \PHPUnit\Framework\TestCase
  6. {
  7. /**
  8. * @covers \mattvb91\TronTrx\Wallet::getAddressHex
  9. */
  10. public function testGetAddressHexFromPubKeyHex()
  11. {
  12. $publicHex = '0469231c045fd16b02429ba4aa04c14d49cfae09e834052d27f8ab4a5c50000cf7de06fddb08d27ddbfaef93896b102b98e74326b0cca74647422c869a4c3758c0';
  13. $expectedAddressHex = '41fe7323249972344af4dad2f4dab2fcdbf254120e';
  14. /** @var \mattvb91\TronTrx\Wallet $wallet */
  15. $wallet = $this->getMockBuilder(\mattvb91\TronTrx\Wallet::class)
  16. ->disableOriginalConstructor()
  17. ->setMethodsExcept(['getAddressHex'])
  18. ->getMock();
  19. $addressHex = $wallet->getAddressHex(hex2bin($publicHex));
  20. $this->assertEquals($expectedAddressHex, $addressHex);
  21. }
  22. /**
  23. * @covers \mattvb91\TronTrx\Wallet::getBase58CheckAddress
  24. */
  25. public function testGetBase58CheckAddress()
  26. {
  27. /** @var \mattvb91\TronTrx\Wallet $wallet */
  28. $wallet = $this->getMockBuilder(\mattvb91\TronTrx\Wallet::class)
  29. ->disableOriginalConstructor()
  30. ->setMethodsExcept(['getBase58CheckAddress'])
  31. ->getMock();
  32. $expectedOutput = 'TZAcZfMseztuzBRXniZH4uxBF6jXBD38N3';
  33. $addressBase58 = $wallet->getBase58CheckAddress(hex2bin('41fe7323249972344af4dad2f4dab2fcdbf254120e'));
  34. $this->assertEquals($expectedOutput, $addressBase58);
  35. }
  36. /**
  37. * @covers \mattvb91\TronTrx\Wallet::generateAddress
  38. */
  39. public function testAttemptLimitWillThrowException()
  40. {
  41. $this->expectException(TronErrorException::class);
  42. /** @var Wallet $wallet */
  43. $wallet = $this->getMockBuilder(\mattvb91\TronTrx\Wallet::class)
  44. ->disableOriginalConstructor()
  45. ->setMethodsExcept(['generateAddress'])
  46. ->getMock();
  47. $wallet->expects(self::exactly(5))
  48. ->method('genKeyPair')
  49. ->willReturn(['private_key_hex' => 'bla', 'public_key' => 'bla']);
  50. $wallet->generateAddress();
  51. }
  52. }