RestAssured 将项目添加到 List POJO
RestAssured adding item to List POJO
我正在尝试使用以下 JSON 文件作为输入:
{
"partnerID": "529",
"requests": [
{
"agencyId": "461007",
"lobCd": "LM"
},
{
"agencyId": "023000",
"lobCd": "LM"
},
{
"agencyId": "103000",
"lobCd": "GL"
},
{
"agencyId": "023000",
"lobCd": "GL"
}
]
}
这是我的 2 个 POJO 文件:
@Getter
@Setter
public class Root {
public String partnerID;
public List<Request> requests;
}
@Getter
@Setter
public class Request {
public String agencyId;
public String lobCd;
}
请求正文
public class SuccessfulRequestBody {
public Object getLobSycbBody_Successful() {
Root root = new Root();
Request request = new Request();
List<Request> requests = new ArrayList<Request>();
root.setPartnerID("529");
request.setAgencyId("461007");
request.setLobCd("LM");
requests.add(request);
root.setRequests(requests);
requests = new ArrayList<Request>();
request.setAgencyId("023000");
request.setLobCd("LM");
requests.add(request);
root.setRequests(requests);
requests = new ArrayList<Request>();
request.setAgencyId("103000");
request.setLobCd("GL");
requests.add(request);
root.setRequests(requests);
requests = new ArrayList<Request>();
request.setAgencyId("103000");
request.setLobCd("GL");
requests.add(request);
root.setRequests(requests);
requests = new ArrayList<Request>();
request.setAgencyId("023000");
request.setLobCd("GL");
requests.add(request);
root.setRequests(requests);
return root;
}
}
问题:当我运行测试时我只得到最后一个代理023000,其他的没有被添加到列表中。我想在我的输出文件中看到所有其他机构,lob。
@Test
public void getSuccessResponse(){
String token= generateToken.getGenerateToken();
SuccessfulRequestBody successfulRequestBody = new SuccessfulRequestBody();
Response response = given().log().all().contentType("application/json; charset=utf-8").
contentType("application/json; charset=utf-8").
header("Content-Type", "application/json").
header("Authorization", "Bearer "+token).
//baseUri("https://test-cerebria.test.homesitecommercial.kitchen/api/msaivanspolicyservice/agent/lobSync").
body(successfulRequestBody.getLobSycbBody_Successful()).
when().
post("https://test-cerebria.test.homesitecommercial.kitchen/api/msaivanspolicyservice/agent/lobSync").
then().
extract().response();
}
}
输出:
{
"partnerID": "529",
"requests": [
{
"agencyId": "023000",
"lobCd": "GL"
}
]
}
提前感谢您的时间和想法。
正确的方法是为 class request
创建多个对象,设置值并将它们添加到 list
Root root = new Root();
Request request1 = new Request();
Request request2 = new Request();
Request request3 = new Request();
Request request4 = new Request();
request1.setAgencyId("461007");
request1.setLobCd("LM");
request2.setAgencyId("023000");
request2.setLobCd("LM");
request3.setAgencyId("103000");
request3.setLobCd("GL");
request4.setAgencyId("023000");
request4.setLobCd("GL");
List<Request> list = new LinkedList<Request>();
list.add(request1);
list.add(request2);
list.add(request3);
list.add(request4);
root.setPartnerID("529");
root.setRequests(list);
我正在尝试使用以下 JSON 文件作为输入:
{
"partnerID": "529",
"requests": [
{
"agencyId": "461007",
"lobCd": "LM"
},
{
"agencyId": "023000",
"lobCd": "LM"
},
{
"agencyId": "103000",
"lobCd": "GL"
},
{
"agencyId": "023000",
"lobCd": "GL"
}
]
}
这是我的 2 个 POJO 文件:
@Getter
@Setter
public class Root {
public String partnerID;
public List<Request> requests;
}
@Getter
@Setter
public class Request {
public String agencyId;
public String lobCd;
}
请求正文
public class SuccessfulRequestBody {
public Object getLobSycbBody_Successful() {
Root root = new Root();
Request request = new Request();
List<Request> requests = new ArrayList<Request>();
root.setPartnerID("529");
request.setAgencyId("461007");
request.setLobCd("LM");
requests.add(request);
root.setRequests(requests);
requests = new ArrayList<Request>();
request.setAgencyId("023000");
request.setLobCd("LM");
requests.add(request);
root.setRequests(requests);
requests = new ArrayList<Request>();
request.setAgencyId("103000");
request.setLobCd("GL");
requests.add(request);
root.setRequests(requests);
requests = new ArrayList<Request>();
request.setAgencyId("103000");
request.setLobCd("GL");
requests.add(request);
root.setRequests(requests);
requests = new ArrayList<Request>();
request.setAgencyId("023000");
request.setLobCd("GL");
requests.add(request);
root.setRequests(requests);
return root;
}
}
问题:当我运行测试时我只得到最后一个代理023000,其他的没有被添加到列表中。我想在我的输出文件中看到所有其他机构,lob。
@Test
public void getSuccessResponse(){
String token= generateToken.getGenerateToken();
SuccessfulRequestBody successfulRequestBody = new SuccessfulRequestBody();
Response response = given().log().all().contentType("application/json; charset=utf-8").
contentType("application/json; charset=utf-8").
header("Content-Type", "application/json").
header("Authorization", "Bearer "+token).
//baseUri("https://test-cerebria.test.homesitecommercial.kitchen/api/msaivanspolicyservice/agent/lobSync").
body(successfulRequestBody.getLobSycbBody_Successful()).
when().
post("https://test-cerebria.test.homesitecommercial.kitchen/api/msaivanspolicyservice/agent/lobSync").
then().
extract().response();
}
}
输出:
{
"partnerID": "529",
"requests": [
{
"agencyId": "023000",
"lobCd": "GL"
}
]
}
提前感谢您的时间和想法。
正确的方法是为 class request
创建多个对象,设置值并将它们添加到 list
Root root = new Root();
Request request1 = new Request();
Request request2 = new Request();
Request request3 = new Request();
Request request4 = new Request();
request1.setAgencyId("461007");
request1.setLobCd("LM");
request2.setAgencyId("023000");
request2.setLobCd("LM");
request3.setAgencyId("103000");
request3.setLobCd("GL");
request4.setAgencyId("023000");
request4.setLobCd("GL");
List<Request> list = new LinkedList<Request>();
list.add(request1);
list.add(request2);
list.add(request3);
list.add(request4);
root.setPartnerID("529");
root.setRequests(list);