/** @test */
 public function shouldCatchInvalidBody()
 {
     $body = $this->getMock('\\Psr\\Http\\Message\\StreamInterface');
     $body->method('getContents')->willReturn('{"title":"Aaa"}');
     $this->request->method('getMethod')->willReturn('post');
     $this->uri->method('getPath')->willReturn('/songs');
     $this->request->method('getHeaderLine')->with('Content-Type')->willReturn('application/json');
     $this->request->method('getBody')->willReturn($body);
     $this->setExpectedException('\\Raml\\Validator\\ValidatorRequestException', 'title (minLength), artist (required)');
     $validator = $this->getValidatorForSchema(__DIR__ . '/../fixture/validator/requestBody.raml');
     $validator->validateRequest($this->request);
 }
Example #2
0
 public function testDestructorCallsCurlCloseOnUsedObject()
 {
     $uriMock = $this->getMockForAbstractClass('\\Psr\\Http\\Message\\UriInterface');
     $uriMock->method('getScheme')->willReturn('ftp');
     $this->request->method('getUri')->willReturn($uriMock);
     $this->getFunctionMock(self::SUT_NAMESPACE, 'curl_exec')->expects($this->any())->willReturn(true);
     $this->getFunctionMock(self::SUT_NAMESPACE, 'curl_setopt_array')->expects($this->any())->willReturn(true);
     $this->subjectUnderTest->execute();
     $this->getFunctionMock(self::SUT_NAMESPACE, 'curl_close')->expects($this->atLeastOnce());
     $this->subjectUnderTest->__destruct();
 }
 /** @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);
 }