Activity Forums Salesforce® Discussions How to specify multiple responses in SOAP callout?

  • Vikas Kumar

    Member
    February 14, 2017 at 7:23 am

    Hi sushant,

    You could create a constructor for example:

    @isTest
    global class PuchaseWSMock_IsTest implements WebServiceMock {

    public String type;

    global PuchaseWSMock_IsTest(final String type){
    this.type = type;
    }

    global void doInvoke(Object stub,
    Object request,
    Map<String, Object> response,
    String endpoint,
    String soapAction,
    String requestName,
    String responseNS,
    String responseName,
    String responseType) {

    if(type == 'A'){
    //set response for web service method 1
    PurchaseWS.ProgramInfoResponse responseElementA = new PurchaseWS.ProgramInfoResponse();
    responseElement.AgreementID = 344;
    response.put('response_x', responseElementA);
    }
    //set response for web service method2?
    if(type == 'B'){
    //set response for web service method 2
    PurchaseWS.ProgramInfoResponse responseElementB = new PurchaseWS.ProgramInfoResponse();
    responseElement.AgreementID = 100;
    response.put('response_x', responseElementB);
    }
    }
    }

    Test method:
    static testMethod void myTestA() {
    Test.setMock(WebServiceMock.class, new PurchaseWSMock_IsTest('A'));

    Test.startTest();
    //call web service method 1
    Test.startTest();
    }

    static testMethod void myTestB() {
    Test.setMock(WebServiceMock.class, new PurchaseWSMock_IsTest('B'));

    Test.startTest();
    //call web service method 2
    Test.startTest();
    }

Log In to reply.

Popular Salesforce Blogs

Popular Salesforce Videos

Pros & Cons of Lightning Component vs. 3rd party frameworks in Salesforce UI development

Video in

Nikita drops by to share his invaluable experience of using popular 3rd party frameworks in Salesforce. http://media.blubrry.com/salesforceway/audio.xmcdn.com/group42/M05/25/57/wKgJ81rXk6XjaZIAAU_I_KtprFM998.m4a