public function testAddsTransferEncodingWhenNoContentLength() { $body = FnStream::decorate(Psr7\stream_for('foo'), ['getSize' => function () { return null; }]); $h = new MockHandler([function (RequestInterface $request) { $this->assertFalse($request->hasHeader('Content-Length')); $this->assertEquals('chunked', $request->getHeaderLine('Transfer-Encoding')); return new Response(200); }]); $m = Middleware::prepareBody(); $stack = new HandlerStack($h); $stack->push($m); $comp = $stack->resolve(); $p = $comp(new Request('PUT', 'http://www.google.com', [], $body), []); $this->assertInstanceOf(PromiseInterface::class, $p); $response = $p->wait(); $this->assertEquals(200, $response->getStatusCode()); }