コード例 #1
0
 public function testShouldHaveTheFirstErrorMessage()
 {
     $response = Response::create(HttpMethod::GET(), '1.2', true, HttpErrorCode::code412(), [Error::create('first error', 'Error'), Error::create('second error', 'Error')]);
     $this->assertSame('first error', $response->getErrorMessage()->getValue());
     $response = Response::create(HttpMethod::GET(), '1.2', true, HttpErrorCode::code412());
     $this->assertSame('', $response->getErrorMessage()->getValue());
 }
コード例 #2
0
 public function testShouldBuildAnErrorResponse()
 {
     $item = new \stdClass();
     $item->firstname = 'john';
     $builder = ResponseBuilder::create('1.2', HttpMethod::GET());
     $builder->addParameter(Parameter::create('id', '42'))->addItem($item)->addError(Error::create('error message 1', 'reason1'))->addError(Error::create('error message 2', 'reason2', 'location2'))->setHttpErrorCode(HttpErrorCode::code402());
     $this->assertSame('{"apiVersion":"1.2","method":"GET","params":{"id":"42"},"code":402,"message":"error message 1","errors":[{"message":"error message 1","reason":"reason1","location":""},{"message":"error message 2","reason":"reason2","location":"location2"}]}', json_encode($builder->build()));
 }
コード例 #3
0
 /**
  * @param \stdClass $stdObj
  * @return ResponseInterface
  * @throws ResponseParserException
  */
 private function buildErrorResponse(\stdClass $stdObj)
 {
     $errorCode = HttpErrorCode::valueOf((int) $stdObj->code);
     if (is_null($errorCode)) {
         throw new ResponseParserException('Invalid HttpErrorCode: ' . $stdObj->code);
     }
     if (!is_array($stdObj->errors)) {
         throw new ResponseParserException('Error array expected');
     }
     if (!count($stdObj->errors)) {
         throw new ResponseParserException('No error found');
     }
     $errors = [];
     foreach ($stdObj->errors as $error) {
         $errors[] = Error::create($error->message, $error->reason, $error->location);
     }
     return Response::create($this->getHttpMethod($stdObj), $stdObj->apiVersion, true, $errorCode, $errors, $this->getParameters($stdObj));
 }
コード例 #4
0
 public function testShouldAddErrorCollection()
 {
     $builder = ErrorResponseBuilder::create(new ErrorDataBuilder(), '1.2', HttpMethod::GET(), HttpErrorCode::code500());
     $builder->addErrors(new ErrorCollection([Error::create('e1', 'ErrorType'), Error::create('e2', 'ErrorType')]));
     $this->assertSame('{"apiVersion":"1.2","method":"GET","params":{},"code":500,"message":"e1","errors":[{"message":"e1","reason":"ErrorType","location":""},{"message":"e2","reason":"ErrorType","location":""}]}', json_encode($builder->build()));
 }