Будьте уверены - Как определить параметр на основе строкового значения из предыдущего GET - PullRequest
0 голосов
/ 09 апреля 2020

У меня есть многошаговый тест 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(); 

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...