/** * @dataProvider provideParseExpectations */ public function testIncrementalParse($msg, $method, $uri, $protocol, $headers, $body) { $msgParser = new Parser(); $byteIncrement = 1; $msgLen = strlen($msg); for ($i = 0; $i < $msgLen; $i += $byteIncrement) { $msgPart = $msg[$i]; $parsedRequestArr = $msgParser->parse($msgPart); if (NULL !== $parsedRequestArr) { break; } } $actualBody = $parsedRequestArr['body'] ? stream_get_contents($parsedRequestArr['body']) : $parsedRequestArr['body']; $this->assertEquals($method, $parsedRequestArr['method']); $this->assertEquals($uri, $parsedRequestArr['uri']); $this->assertEquals($protocol, $parsedRequestArr['protocol']); $this->assertEquals($headers, $parsedRequestArr['headers']); $this->assertEquals($body, $actualBody); }