У меня есть многошаговый тест Rest Assured, где я сначала выполняю GET и извлекаю некоторые строковые значения. Следующим шагом является УДАЛЕНИЕ, где мне нужно передать значения из GET. Мне нужно, чтобы один из параметров был достаточно умным, чтобы, если он равен нулю, использовать другую строку. Как бы я это сделал? Код ниже. Я поместил карту как попытку, но я знаю, что она неверна, поскольку код застревает там. Любая помощь приветствуется.
@Test
public void deleteExternalRecurringScheduledTransfers() throws IOException
{
//GET THE SCHEDULED EXTERNAL TRANSFER
ValidatableResponse vr2 = given().
contentType("application/json;charset=utf-8").
header("trace-id", UUID.randomUUID().toString()).
header("organization", ORGANIZATION).
header("session-id", UUID.randomUUID().toString()).
pathParam("customerId", CUSTOMER_ID).
when().
get("/customer-transfers/{customerId}/scheduled?extAcctInd=true").
then();
vr2.extract().response();
//GRAB THE NEEDED VALUES FOR THE DELETE CALL
transferSeriesId = vr2.extract().path("transferSchedule.find{it.sorInd == 'IBS' && it.editable == true}.transferSeriesId").toString();
externalTransferAmount = vr2.extract().path("transferSchedule.find{it.transferSeriesId == \""+transferSeriesId+"\" && it.editable == true && it.sorInd == 'IBS'}.transferAmount").toString();
lastModifiedDateTime = vr2.extract().path("transferSchedule.find{it.transferSeriesId == \""+transferSeriesId+"\" && it.editable == true && it.transferAmount.toString() == \""+externalTransferAmount+"\" && it.sorInd == 'IBS'}.lastModifiedDateTime").toString();
fromAccountId = vr2.extract().path("transferSchedule.find{it.transferSeriesId == \""+transferSeriesId+"\" && it.editable == true && it.transferAmount.toString() == \""+externalTransferAmount+"\" && it.sorInd == 'IBS'}.fromAccountId").toString();
toExternalAcctNumber = vr2.extract().path("transferSchedule.find{it.transferSeriesId == \""+transferSeriesId+"\" && it.editable == true && it.transferAmount.toString() == \""+externalTransferAmount+"\" && it.sorInd == 'IBS'}.toExternalAcctNumber").toString();
fromExternalAcctNumber = vr2.extract().path("transferSchedule.find{it.transferSeriesId == \""+transferSeriesId+"\" && it.editable == true && it.transferAmount.toString() == \""+externalTransferAmount+"\" && it.sorInd == 'IBS'}.fromExternalAcctNumber").toString();
// DELETE THE SCHEDULED TRANSFER
// IF TOEXTERNALACCOUNTNUMBER IS NULL, USE FROMEXTERNALACCOUNTNUMBER
Map<String, String> params = new HashMap<> ();
if(fromExternalAcctNumber == null){
params.put("externalAcctNumber", toExternalAcctNumber);
ValidatableResponse response = given().
contentType("application/json;charset=utf-8").
header("trace-id", UUID.randomUUID().toString()).
header("organization", ORGANIZATION).
header("session-id", UUID.randomUUID().toString()).
pathParam("transferSeriesId", transferSeriesId).
queryParam("sorInd", "IBS").
queryParam("fromAccountId", fromAccountId).
queryParam("lastModifiedDateTime", lastModifiedDateTime).
queryParam("externalAcctNumber", fromExternalAcctNumber).
when().
delete("/transfers/{transferSeriesId}").
then();
response.assertThat().statusCode(200).
and().contentType(ContentType.JSON).
and().
body("success", equalTo(true)).
and().
extract().
response();