<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:Body>
<IdentifyCustomer>
<WebIdentification>
<Email>vernetto@yahoo.com</Email>
<Password>ciao</Password>
</WebIdentification>
</IdentifyCustomer>
</soapenv:Body>
</soapenv:Envelope>
and you must return this response whenever the email contains "@yahoo.com":
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:Body>
<IdentifyCustomerResponse>
<!--You have a CHOICE of the next 2 items at this level-->
<IdentificationSuccessful>
<MarketID>2</MarketID>
<CustomerID>123456</CustomerID>
</IdentificationSuccessful>
</IdentifyCustomerResponse>
</soapenv:Body>
</soapenv:Envelope>
and this response whenever the email contains "@gmail.com":
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:Body>
<IdentifyCustomerResponse>
<IdentificationFailed>
<ErrorCode>CUSTOMER_NOT_FOUND</ErrorCode>
<ErrorDescription>we cannot find this customer</ErrorDescription>
</IdentificationFailed>
</IdentifyCustomerResponse>
</soapenv:Body>
</soapenv:Envelope>
You can create a MockService and customize the MockResponse http://www.soapui.org/Getting-Started/mock-services/4-Customizing-a-MockResponse.html
this is the script:
def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
def holder = groovyUtils.getXmlHolder( mockRequest.requestContent )
def email = holder.getNodeValue("//Email")
if (email.contains("@yahoo.com")) {
context.setProperty( "myresponse", "<IdentificationSuccessful><MarketID>2</MarketID><CustomerID>123456</CustomerID></IdentificationSuccessful>" )
}
else {
context.setProperty( "myresponse", "<IdentificationFailed><ErrorCode>CUSTOMER_NOT_FOUND</ErrorCode><ErrorDescription>we cannot find this customer</ErrorDescription></IdentificationFailed>" )
}
and this the Groovy Response
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:Body>
<IdentifyCustomerResponse>
${myresponse}
</IdentifyCustomerResponse>
</soapenv:Body>
</soapenv:Envelope>
No comments:
Post a Comment