getMockBuilder(GuzzleEventCaptured::class) ->disableOriginalConstructor() ->getMock(); $middleware = new GuzzleLoggingMiddleware(); $handlerStack = \GuzzleHttp\HandlerStack::create(new MockHandler([ function ($request, $options) use ($eventMock) { // Assert that the event is triggered with the correct arguments $this->assertInstanceOf(RequestInterface::class, $request); $this->assertIsArray($options); // Simulate the event trigger event(new GuzzleEventCaptured($request, $options)); return new Response(200); } ])); $handlerStack->push($middleware); $client = new Client(['handler' => $handlerStack]); $response = $client->request('GET', 'https://example.com'); $this->assertInstanceOf(ResponseInterface::class, $response); } }