/** @test */ public function writeWithAPostRequestShouldSendToTheStream() { $requestData = new RequestData('POST', 'http://www.example.com'); $request = new Request($this->loop, $this->connector, $requestData); $this->successfulConnectionMock(); $this->stream->expects($this->at(4))->method('write')->with($this->matchesRegularExpression("#^POST / HTTP/1\\.0\r\nHost: www.example.com\r\nUser-Agent:.*\r\n\r\n\$#")); $this->stream->expects($this->at(5))->method('write')->with($this->identicalTo("some")); $this->stream->expects($this->at(6))->method('write')->with($this->identicalTo("post")); $this->stream->expects($this->at(7))->method('write')->with($this->identicalTo("data")); $factory = $this->createCallableMock(); $factory->expects($this->once())->method('__invoke')->will($this->returnValue($this->response)); $request->setResponseFactory($factory); $request->write("some"); $request->write("post"); $request->end("data"); $request->handleData("HTTP/1.0 200 OK\r\n"); $request->handleData("Content-Type: text/plain\r\n"); $request->handleData("\r\nbody"); }