GuzzleHttp\Tests\MiddlewareTest::testTapsBeforeAndAfter PHP Method

testTapsBeforeAndAfter() public method

    public function testTapsBeforeAndAfter()
    {
        $calls = [];
        $m = function ($handler) use(&$calls) {
            return function ($request, $options) use($handler, &$calls) {
                $calls[] = '2';
                return $handler($request, $options);
            };
        };
        $m2 = Middleware::tap(function (RequestInterface $request, array $options) use(&$calls) {
            $calls[] = '1';
        }, function (RequestInterface $request, array $options, PromiseInterface $p) use(&$calls) {
            $calls[] = '3';
        });
        $h = new MockHandler([new Response()]);
        $b = new HandlerStack($h);
        $b->push($m2);
        $b->push($m);
        $comp = $b->resolve();
        $p = $comp(new Request('GET', 'http://foo.com'), []);
        $this->assertEquals('123', implode('', $calls));
        $this->assertInstanceOf(PromiseInterface::class, $p);
        $this->assertEquals(200, $p->wait()->getStatusCode());
    }