ProxyTest.php 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <?php
  2. namespace GuzzleHttp\Test\Handler;
  3. use GuzzleHttp\Handler\MockHandler;
  4. use GuzzleHttp\Handler\Proxy;
  5. use GuzzleHttp\Psr7\Request;
  6. use GuzzleHttp\RequestOptions;
  7. use PHPUnit\Framework\TestCase;
  8. /**
  9. * @covers \GuzzleHttp\Handler\Proxy
  10. */
  11. class ProxyTest extends TestCase
  12. {
  13. public function testSendsToNonSync()
  14. {
  15. $a = $b = null;
  16. $m1 = new MockHandler([static function ($v) use (&$a) {
  17. $a = $v;
  18. }]);
  19. $m2 = new MockHandler([static function ($v) use (&$b) {
  20. $b = $v;
  21. }]);
  22. $h = Proxy::wrapSync($m1, $m2);
  23. $h(new Request('GET', 'http://foo.com'), []);
  24. self::assertNotNull($a);
  25. self::assertNull($b);
  26. }
  27. public function testSendsToSync()
  28. {
  29. $a = $b = null;
  30. $m1 = new MockHandler([static function ($v) use (&$a) {
  31. $a = $v;
  32. }]);
  33. $m2 = new MockHandler([static function ($v) use (&$b) {
  34. $b = $v;
  35. }]);
  36. $h = Proxy::wrapSync($m1, $m2);
  37. $h(new Request('GET', 'http://foo.com'), [RequestOptions::SYNCHRONOUS => true]);
  38. self::assertNull($a);
  39. self::assertNotNull($b);
  40. }
  41. public function testSendsToStreaming()
  42. {
  43. $a = $b = null;
  44. $m1 = new MockHandler([static function ($v) use (&$a) {
  45. $a = $v;
  46. }]);
  47. $m2 = new MockHandler([static function ($v) use (&$b) {
  48. $b = $v;
  49. }]);
  50. $h = Proxy::wrapStreaming($m1, $m2);
  51. $h(new Request('GET', 'http://foo.com'), []);
  52. self::assertNotNull($a);
  53. self::assertNull($b);
  54. }
  55. public function testSendsToNonStreaming()
  56. {
  57. $a = $b = null;
  58. $m1 = new MockHandler([static function ($v) use (&$a) {
  59. $a = $v;
  60. }]);
  61. $m2 = new MockHandler([static function ($v) use (&$b) {
  62. $b = $v;
  63. }]);
  64. $h = Proxy::wrapStreaming($m1, $m2);
  65. $h(new Request('GET', 'http://foo.com'), ['stream' => true]);
  66. self::assertNull($a);
  67. self::assertNotNull($b);
  68. }
  69. }