У меня есть файл службы impl, который заполняет DTO и файл конечной точки REST, который выдает POST и помещает ответ в переменную.Я могу распечатать содержимое DTO в файле конечной точки, но не могу напечатать данные ответа в файле службы impl с помощью Picocontainer DI.Вот подробности файла
// Endpoint File that does the POST and can correctly display the DTO details
// via Picoconntainer DI
import com.constantcontact.xyzreachsvc.domain.xyzPostDto;
import io.restassured.RestAssured;
import io.restassured.builder.RequestSpecBuilder;
import io.restassured.internal.RestAssuredResponseImpl;
import utilities.TestLogger;
public class xyzPostEndpoint extends RestAssured {
private RequestSpecBuilder request ;
private RestAssuredResponseImpl response;
private xyzPostDto xyzPostDto;
public xyzlPostEndpoint(
RequestSpecBuilder request,
RestAssuredResponseImpl response,
xyzPostDto xyzPostDto) {
this.response = response;
this.xyzPostDto = xyzPostDto;
RestAssured.enableLoggingOfRequestAndResponseIfValidationFails();
this.request = request;
}
public void xyzPostPostMethod() {
RestAssured.enableLoggingOfRequestAndResponseIfValidationFails();
TestLogger.info("*************************Starting the POST*************************");
response = (RestAssuredResponseImpl) given().spec(request.build()).when().post();
System.out.println("*****************>"+xyzPostDto.getMessage());//Get the correct string here
System.out.println("*****************>>"+xyzPostDto.getImageUrl());
System.out.println("*****************>"+response.getStatusCode());//Get 200 here
System.out.println("*****************>>"+response.getBody().asString());
}
}
Файл службы Impl
Вот в чем проблема.Это не в состоянии получить данные ответа из файла конечной точки выше.Он печатает -1 в качестве кода состояния, а попытка распечатать тело дает мне NPE.
public class xyzPostImpl implements xyzPostI {
private xyzPostDto xyzPostDto;
private BuildRequest buildRequest;
private xyzPostEndpoint xyzPostEndpoint;
private RestAssuredResponseImpl response;
public xyzPostImpl(xyzPostDto xyzPostDto,
BuildRequest buildRequest,
xyzPostEndpoint xyzPostEndpoint ,
RestAssuredResponseImpl response
){
this.xyzPostDto = xyzPostDto;
this.buildRequest = buildRequest;
this.xyzPostEndpoint = xyzPostEndpoint;
this.response = response;
}
public void buildxyzlPostDto(String imageUrl, String message,
List<String> networkIds ){
xyzPostDto.setImageUrl(imageUrl);
xyzPostDto.setMessage(message);
xyzPostDto.setNetworkIds(networkIds);
}
public void buildxyzPostDtoRequest(){
buildRequest.buildRequest(xyzPostDto);
}
public void issuexyzPostDtoPost(){
xyzlPostEndpoint.xyzPostPostMethod();
}
public Boolean verifyResponseCode(Integer responseCode){
Boolean expectedResponseCode = false;
System.out.println("RESPONSE code = *******************************"+response.getStatusCode());//< get -1 here
if(response.getStatusCode() == responseCode) {
expectedResponseCode = true;
}
return expectedResponseCode;
}
}