/** @test */ public function shouldCatchInvalidBody() { $json = '{}'; $headers = ['X-Required-Header' => ['123456'], 'X-Long-Optional-Header' => ['Abcdefghijkl']]; $map = [['X-Required-Header', [['123456']]], ['X-Long-Optional-Header', [['Abcdefg', 'Abc']]]]; $body = $this->getMock('\\Psr\\Http\\Message\\StreamInterface'); $body->method('getContents')->willReturn($json); $this->request->method('getMethod')->willReturn('post'); $this->uri->method('getPath')->willReturn('/songs'); $this->response->method('getStatusCode')->willReturn(200); $this->response->method('getHeader')->willReturnMap($map); $this->response->method('getHeaders')->willReturn($headers); $this->response->method('getHeaderLine')->with('Content-Type')->willReturn('application/json'); $this->response->method('getBody')->willReturn($body); $this->setExpectedException('\\Raml\\Validator\\ValidatorResponseException', 'title (required), artist (required)'); $validator = $this->getValidatorForSchema(__DIR__ . '/../fixture/validator/responseBody.raml'); $validator->validateResponse($this->request, $this->response); }