I have a request that takes 1..n items to add to the cart. the request by default has one item item with some children, I want to add N no items with a child. I can add an Item parent using creaeElementNS. Now I want to add children to the "item" as shown below, can someone shed some light on this
<basket:item> <basket:itemId>222</basket:itemId> <basket:itemCode>DEF</basket:itemCode> <basket:item>
Groovy script
def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context ) def holder = groovyUtils.getXmlHolder( "createBasket#Request" ) def parentnode = holder.getDomNode( "//basket:createBasketRequest" ) def basketTotal= holder.getDomNode( "//basket:itemsTotal" ) def itemsTag = requestDoc.createElementNS(parentnode.getNamespaceURI(), "item") parentnode.insertBefore(itemsTag , basketTotal) holder.updateProperty()
Current output
<basket:createBasketRequest> <basket:item> <basket:itemId>111</basket:itemId> <basket:itemCode>ABC</basket:itemCode> </basket:item> <basket:item> </basket:item> <basket:itemsTotal>500.00</basket:itemsTotal> </basket:createBasketRequest>
Desired output
<basket:createBasketRequest> <basket:item> <basket:itemId>111</basket:itemId> <basket:itemCode>ABC</basket:itemCode> </basket:item> <basket:item> <basket:itemId>222</basket:itemId> <basket:itemCode>DEF</basket:itemCode> <basket:item> <basket:itemsTotal>500.00</basket:itemsTotal> </basket:createBasketRequest>
EDIT: I use the soapUI and TestCase parameters, GroovyScript step is required before adding the basket, groovy script prepares the basket request before sending the request, for example, if there is 1 element in my test document, it should request one element by default, so I donβt have to worry about adding other Item elements, but when my test file says I have two elements, I need to create Second Items elements (along with the child elements) and prepare the request for the add basket using the groovy script. actually sending a basket request
source share