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());
 }
 private function getBuilder()
 {
     return ResponseBuilder::create('1.2', HttpMethod::GET());
 }
 public function testShouldAddParameterCollection()
 {
     $builder = SuccessResponseBuilder::create(new SuccessDataBuilder(), '1.2', HttpMethod::GET());
     $builder->addParameters(new ParameterCollection([Parameter::create('firstName', 'john'), Parameter::create('name', 'doe')]));
     $this->assertSame('{"apiVersion":"1.2","method":"GET","params":{"firstName":"john","name":"doe"},"data":{"items":[],"totalItems":0}}', json_encode($builder->build()));
 }
 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()));
 }