Forum Discussion
SpiderHibs
16 years agoNew Contributor
I resolved my own issue. I'm sure that this is a bit of a convoluted way to do it but it works and I couldn't get any of the simpler methods to work for me.
import com.eviware.soapui.model.mock.MockRunner;
import com.eviware.soapui.model.mock.MockResult;
import com.eviware.soapui.model.mock.MockRequest;
import com.eviware.soapui.model.mock.MockService;
import com.eviware.soapui.model.mock.MockOperation;
import org.apache.commons.codec.binary.Base64;
// Get the SOAP message
MockRunner runner = context.getMockRunner()
MockService service = runner.getMockService()
MockOperation operation = service.getMockOperationByName("createRecord")
MockResult result = operation.getLastMockResult()
MockRequest request = result.getMockRequest()
String content = request.getRequestContent()
// Open output file
filename = "/tmp/soapUI.mpg"
def objFile = new java.io.File(filename)
// Find binaryData node
def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context );
def holder = groovyUtils.getXmlHolder(content);
def byteArray = holder.getNodeValue("//binaryData")
// Decode base64
def b64 = new Base64()
def textBytes = b64.decode(byteArray.getBytes())
// Write & close output file
FileOutputStream fos = new java.io.FileOutputStream(objFile);
fos.write( textBytes );
fos.flush();
fos.close();
log.info("Output file: " + filename)
import com.eviware.soapui.model.mock.MockRunner;
import com.eviware.soapui.model.mock.MockResult;
import com.eviware.soapui.model.mock.MockRequest;
import com.eviware.soapui.model.mock.MockService;
import com.eviware.soapui.model.mock.MockOperation;
import org.apache.commons.codec.binary.Base64;
// Get the SOAP message
MockRunner runner = context.getMockRunner()
MockService service = runner.getMockService()
MockOperation operation = service.getMockOperationByName("createRecord")
MockResult result = operation.getLastMockResult()
MockRequest request = result.getMockRequest()
String content = request.getRequestContent()
// Open output file
filename = "/tmp/soapUI.mpg"
def objFile = new java.io.File(filename)
// Find binaryData node
def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context );
def holder = groovyUtils.getXmlHolder(content);
def byteArray = holder.getNodeValue("//binaryData")
// Decode base64
def b64 = new Base64()
def textBytes = b64.decode(byteArray.getBytes())
// Write & close output file
FileOutputStream fos = new java.io.FileOutputStream(objFile);
fos.write( textBytes );
fos.flush();
fos.close();
log.info("Output file: " + filename)