NetBatchTest.php 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <?php
  2. namespace Test\Unit;
  3. use RuntimeException;
  4. use Test\TestCase;
  5. use phpseclib\Math\BigInteger as BigNumber;
  6. class NetBatchTest extends TestCase
  7. {
  8. /**
  9. * net
  10. *
  11. * @var Web3\Net
  12. */
  13. protected $net;
  14. /**
  15. * setUp
  16. *
  17. * @return void
  18. */
  19. public function setUp(): void
  20. {
  21. parent::setUp();
  22. $this->net = $this->web3->net;
  23. }
  24. /**
  25. * testBatch
  26. *
  27. * @return void
  28. */
  29. public function testBatch()
  30. {
  31. $net = $this->net;
  32. $net->batch(true);
  33. $net->version();
  34. $net->listening();
  35. $net->peerCount();
  36. $net->provider->execute(function ($err, $data) {
  37. if ($err !== null) {
  38. return $this->fail($err->getMessage());
  39. }
  40. $this->assertTrue(is_string($data[0]));
  41. $this->assertTrue(is_bool($data[1]));
  42. $this->assertTrue($data[2] instanceof BigNumber);
  43. });
  44. }
  45. /**
  46. * testBatchAsync
  47. *
  48. * @return void
  49. */
  50. public function testBatchAsync()
  51. {
  52. $net = $this->net;
  53. $net->provider = $this->asyncHttpProvider;
  54. $net->batch(true);
  55. $net->version();
  56. $net->listening();
  57. $net->peerCount();
  58. // should return reactphp promise
  59. $promise = $net->provider->execute(function ($err, $data) {
  60. if ($err !== null) {
  61. return $this->fail($err->getMessage());
  62. }
  63. $this->assertTrue(is_string($data[0]));
  64. $this->assertTrue(is_bool($data[1]));
  65. $this->assertTrue($data[2] instanceof BigNumber);
  66. });
  67. $this->assertTrue($promise instanceof \React\Promise\PromiseInterface);
  68. \React\Async\await($promise);
  69. }
  70. }