<?xml version="1.0" encoding="UTF-8"?>
<con:soapui-project id="c79306b3-f5bf-4b47-895c-22d78fa82a5f" name="Pipe Delimiter Demo" lastOpened="2017-05-22T16:11:36.902+01:00" resourceRoot="" soapui-version="6.0.0" activeEnvironment="Default environment" xmlns:con="http://eviware.com/soapui/config">
<con:settings><con:setting id="com.eviware.soapui.impl.wsdl.actions.iface.tools.soapui.ProTestRunnerAction@values-local"><![CDATA[<xml-fragment xmlns:con="http://eviware.com/soapui/config">
  <con:entry key="Report Format(s)" value=""/>
  <con:entry key="Host:Port" value=""/>
  <con:entry key="Export JUnit Results" value="false"/>
  <con:entry key="Export All" value="false"/>
  <con:entry key="Save After" value="false"/>
  <con:entry key="Add Settings" value="false"/>
  <con:entry key="WSS Password Type" value=""/>
  <con:entry key="TestSuite" value="TestSuite 1"/>
  <con:entry key="Endpoint" value=""/>
  <con:entry key="Select Report Type" value="TestCase Report"/>
  <con:entry key="System Properties" value=""/>
  <con:entry key="Run in-process" value="false"/>
  <con:entry key="Password" value=""/>
  <con:entry key="Print Report" value="false"/>
  <con:entry key="Open Report" value="false"/>
  <con:entry key="Test Case Tags" value=""/>
  <con:entry key="Export JUnit Results with test properties" value="false"/>
  <con:entry key="Global Properties" value=""/>
  <con:entry key="Project Properties" value=""/>
  <con:entry key="Project Password" value=""/>
  <con:entry key="TestCase" value="TestCase 4  - directory datasource - ben"/>
  <con:entry key="Username" value=""/>
  <con:entry key="user-settings.xml Password" value=""/>
  <con:entry key="TestRunner Path" value=""/>
  <con:entry key="Environment" value="Default environment"/>
  <con:entry key="Coverage Report" value="false"/>
  <con:entry key="Enable UI" value="false"/>
  <con:entry key="Root Folder" value=""/>
  <con:entry key="Ignore Errors" value="false"/>
  <con:entry key="Domain" value=""/>
  <con:entry key="Tool Args" value=""/>
  <con:entry key="Save Project" value="false"/>
</xml-fragment>]]></con:setting></con:settings>
<con:interface xsi:type="con:RestService" id="b8b298d9-917c-4828-8db3-6bcfa617f018" wadlVersion="http://wadl.dev.java.net/2009/02" name="REST Service 1" type="rest" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:settings/><con:definitionCache type="TEXT" rootPart=""/><con:endpoints/><con:resource name="/csm/sit6/donor/crm/entities/contact/synchronous-upload" path="/csm/sit6/donor/crm/entities/contact/synchronous-upload" id="c053949c-06b4-4e9e-b20a-34c4b9ced06f"><con:settings/><con:parameters/><con:method name="POST" id="7c641b00-a60a-411c-8799-85fc6f17e6af" method="POST"><con:settings/><con:parameters/><con:representation type="FAULT"><con:mediaType>text/html</con:mediaType><con:status>502</con:status><con:params/><con:element xmlns:xht="http://www.w3.org/1999/xhtml">xht:html</con:element></con:representation><con:representation type="REQUEST"><con:mediaType>text/plain</con:mediaType><con:params/></con:representation><con:representation type="FAULT"><con:mediaType>text/html; charset=iso-8859-1</con:mediaType><con:status>503</con:status><con:params/><con:element>html</con:element></con:representation><con:representation type="REQUEST"><con:mediaType>application/json</con:mediaType><con:params/></con:representation><con:representation type="FAULT"><con:mediaType xsi:nil="true"/><con:status>401</con:status><con:params/><con:element>data</con:element></con:representation><con:representation type="FAULT"><con:mediaType xsi:nil="true"/><con:status>401</con:status><con:params/><con:element>data</con:element></con:representation><con:representation type="RESPONSE"><con:mediaType xsi:nil="true"/><con:status>0</con:status><con:params/><con:element>data</con:element></con:representation><con:request name="POST Request" id="4cc1c1cc-bc8c-4110-bc2f-623635cda4cf" mediaType="application/json" postQueryString="false"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;xml-fragment/></con:setting></con:settings><con:endpoint>https://exttest.ARCRONYM.mipaas.io</con:endpoint><con:request/><con:originalUri>https://exttest.nhsbt.mipaas.io/csm/sit6/donor/crm/entities/contact/synchronous-upload</con:originalUri><con:credentials><con:selectedAuthProfile>No Authorization</con:selectedAuthProfile><con:authType>No Authorization</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:parameters/><con:parameterOrder/></con:request></con:method></con:resource></con:interface><con:testSuite id="da098b6d-4ff6-470b-907a-abbd5d56751c" name="TestSuite 1">
<con:settings/>
<con:savedRecentRuns>1</con:savedRecentRuns><con:runType>SEQUENTIAL</con:runType>
<con:testCase id="8acedcd4-f016-4836-821b-ac33c7c0d408" discardOkResults="true" failOnError="true" failTestCaseOnErrors="true" keepSession="false" name="TestCase - Radford" searchProperties="true" maxResults="0" disabled="true">
<con:settings/>
<con:savedRecentRuns>1</con:savedRecentRuns><con:testStep type="datasource" name="DataSource" id="b6a82e7d-0c64-4f16-ab9c-454a5d34bbfd">
<con:settings/>
<con:config xsi:type="con:DataSourceStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<con:dataSource type="Groovy">
<con:configuration><script>//richedit def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context)
//richedit def projectPath = groovyUtils.projectPath
//richedit def projectDir = new File(projectPath + "/input_data")

//roichedit projectDir.eachFile { 
//richedit	log.info it
//rihedit}

//richedit result.

// Required imports for the Apache Commons CSV library, ensure that the latest library jar file from: 
// https://commons.apache.org/proper/commons-csv/download_csv.cgi 
// is in your Ready API bin/ext directory. 
import org.apache.commons.csv.CSVFormat 
import org.apache.commons.csv.CSVParser 
// Insert the path to your file here. 




//richedit return



def fileReader = new File('D:\\Donor Marketing\\SoapUI\\testdata file\\pipedelimiteddata.dat').newReader() 
// Define your delimiter parameters here, For full range of options see: 
// https://commons.apache.org/proper/commons-csv/apidocs/org/apache/commons/csv/CSVFormat.html 
def pipeDelimFormat = CSVFormat.newFormat('|'.toCharacter()).withRecordSeparator('\r\n').withHeader() 
def pipeDataParser = new CSVParser(fileReader, pipeDelimFormat); 
def records = pipeDataParser.getRecords() 
def row = testRunner.getTestCase().getTestStepByName('DataSource').currentRow 
// The next line looks a little odd because I wanted to emphasise what is going on. 
// "row" is a zero based index, so we normally just compare row + 1 to the record size, 
// But because your record has a footer row that we want to ignore, we compare to the record size - 1 
if ( (row + 1) &lt;= records.size - 1) { log.info('Current DataSource row = ' + row.toString())	
// Add the current rows data to the built in object "result" 
// &lt;--- You MUST add the properties to the list to the left! 
// I recommend you keep the list of property name the same as the file header names. 
result['CustRefID'] = records[row].get('CustRefID') 
result['title'] = records[row].get('title') 
result['firstname'] = records[row].get('firstname') 
result['lastname'] = records[row].get('lastname') 
result['addressline1'] = records[row].get('addressline1') 
result['addressline2'] = records[row].get('addressline2')	
result['addressline3'] = records[row].get('addressline3') 
result['postcode'] = records[row].get('postcode') }
</script></con:configuration>
</con:dataSource>
<con:property>CustRefID</con:property>
<con:property>title</con:property>
<con:property>firstname</con:property>
<con:property>lastname</con:property>
<con:property>addressline1</con:property>
<con:property>addressline2</con:property>
<con:property>addressline3</con:property>
<con:property>postcode</con:property>
<con:startRow>0</con:startRow><con:endRow/><con:recordsPerIteration>1</con:recordsPerIteration><con:completeLastOperation>true</con:completeLastOperation>
<con:trimValues>false</con:trimValues><con:entitizeValues>false</con:entitizeValues><con:restartOnRun>true</con:restartOnRun>
<con:expandProperties>false</con:expandProperties></con:config>
</con:testStep>
<con:testStep type="groovy" name="Groovy Script" id="5a7e3573-13bc-471c-a0df-eb5363fa4cc5">
<con:settings/>
<con:config><script>
// This Groovy test step is just to demo we have the data in the loop. 
// Replace with actual test steps, but remember to update your data source loop step 
// to point to the new step. 
def custRefID = context.expand( '${DataSource#CustRefID}' ) 
def title = context.expand( '${DataSource#title}' ) 
def lastname = context.expand( '${DataSource#lastname}' ) 
log.info('Cust Ref ' + custRefID + ' is ' + title + ' ' + lastname)
</script></con:config>
</con:testStep>
<con:testStep type="datasourceloop" name="DataSource Loop" id="93202f6a-90eb-4f88-8708-fb9ff9d03633">
<con:settings/>
<con:config><dataSourceStep>DataSource</dataSourceStep><targetStep>Groovy Script</targetStep></con:config>
</con:testStep>
<con:properties/>
<con:reportParameters/>
<con:breakPoints>
<con:testStepId>3f16edd4-dd9a-4b46-9f55-d7d002bb7d19</con:testStepId>
<con:status>NONE</con:status>
<con:properties/>
</con:breakPoints>
<con:breakPoints><con:testStepId>b6a82e7d-0c64-4f16-ab9c-454a5d34bbfd</con:testStepId><con:status>NONE</con:status><con:properties/></con:breakPoints><con:breakPoints><con:testStepId>5a7e3573-13bc-471c-a0df-eb5363fa4cc5</con:testStepId><con:status>NONE</con:status><con:properties/></con:breakPoints><con:breakPoints><con:testStepId>93202f6a-90eb-4f88-8708-fb9ff9d03633</con:testStepId><con:status>NONE</con:status><con:properties/></con:breakPoints></con:testCase>
<con:testCase id="2a05dfa0-399c-4a46-80d9-967648b34f05" discardOkResults="true" failOnError="true" failTestCaseOnErrors="true" keepSession="false" name="TestCase 2 - IgorG with Rao script" searchProperties="true" timeout="0" maxResults="0" disabled="true"><con:settings/><con:savedRecentRuns>1</con:savedRecentRuns><con:testStep type="datasource" name="DataSource" id="193ae895-1594-4686-8a32-795821a50a8a"><con:settings/><con:config xsi:type="con:DataSourceStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:dataSource type="File"><con:configuration><fileName>D:/Donor Marketing/SoapUI/testdata file/pipedelimiteddata.dat</fileName><separator>|</separator><trim>true</trim><charset>Cp1252</charset><quotedValues>false</quotedValues></con:configuration></con:dataSource><con:property>CustRefID</con:property><con:property>title</con:property><con:property>firstname</con:property><con:property>lastname</con:property><con:property>addressline1</con:property><con:property>addressline2</con:property><con:property>addressline3</con:property><con:property>postcode</con:property><con:completeLastOperation>true</con:completeLastOperation><con:restartOnRun>true</con:restartOnRun></con:config></con:testStep><con:testStep type="groovy" name="Groovy Script" id="93f6ae20-923b-4ea1-8fdd-5f0982e84610"><con:settings/><con:config><script>def lines = new File('D:\\Donor Marketing\\SoapUI\\nongroovyscriptfile\\New Text Document.dat').readLines()
lines.eachWithIndex { line, index ->
    if (index) {
    	def data = line.split('|')*.trim()
	log.info data[0]            	   
    }	    	
}

  //lines.eachWithIndex { line, index ->
    //        if (index) {
      //      	def data = line.split(',')*.trim()
        //    	food {
          //  	    CustRefID (data[0])
            //	    title (data[1])
            	//    firstname (data[2])
            	 //   
           // 	}
          //  }	    	
      //  }</script></con:config></con:testStep><con:testStep type="groovy" name="Copy of Groovy Script" id="8ecc62ae-4c20-49a6-a329-2bcbc3ef7c5e"><con:settings/><con:config><script>def lines = new File('D:\\Donor Marketing\\SoapUI\\nongroovyscriptfile\\New Text Document.dat').readLines()
lines.eachWithIndex { line, index ->
    if (index) {
    	def data = line.split('|')*.trim()
	log.info data[0]            	   
    }	    	
}

//lines.eachWithIndex { line, index ->
//        if (index) {
//     	def data = line.split(',')*.trim()
 //    	details {
   //  	    CustRefID (data[0])
     // 	    title (data[1])
       //       firstname (data[2])
//              lastname (data[3])
  //            addressline1 (data[4])
    //          addressline2 (data[5])
      //        addressline3 (data[5])
        //      postcode (data[6])
       //   	}
       //    }	    	
//}</script></con:config></con:testStep><con:properties/><con:reportParameters/><con:breakPoints><con:testStepId>193ae895-1594-4686-8a32-795821a50a8a</con:testStepId><con:status>NONE</con:status><con:properties/></con:breakPoints><con:breakPoints><con:testStepId>93f6ae20-923b-4ea1-8fdd-5f0982e84610</con:testStepId><con:status>NONE</con:status><con:properties/></con:breakPoints></con:testCase><con:testCase id="6227b295-45f9-4964-ac48-2a644c658f1b" discardOkResults="true" failOnError="true" failTestCaseOnErrors="true" keepSession="false" name="TestCase 3  - directory datasource#" searchProperties="true" timeout="0" maxResults="0" disabled="true"><con:settings/><con:savedRecentRuns>1</con:savedRecentRuns><con:testStep type="datasource" name="DataSource - directory" id="9969fc61-f3ba-45e7-9006-03e852202a7b"><con:settings/><con:config xsi:type="con:DataSourceStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:dataSource type="Directory"><con:configuration><directory>D:/Donor Marketing/SoapUI/nongroovyscriptfilesdirectory</directory><filter>*.dat</filter><encoding/></con:configuration></con:dataSource><con:property>title</con:property><con:property>firstname</con:property><con:property>lastname</con:property><con:property>CustRefID</con:property><con:property>addressline1</con:property><con:property>addressline2</con:property><con:property>addressline3</con:property><con:property>postcode</con:property><con:property>FileContents</con:property><con:startRow/><con:endRow/><con:recordsPerIteration>1</con:recordsPerIteration><con:completeLastOperation>true</con:completeLastOperation><con:trimValues>false</con:trimValues><con:entitizeValues>true</con:entitizeValues><con:restartOnRun>true</con:restartOnRun><con:expandProperties>false</con:expandProperties></con:config></con:testStep><con:properties/><con:reportParameters/></con:testCase><con:testCase id="92471fc7-d6b7-493b-9bf1-05af9cf5fff2" discardOkResults="true" failOnError="true" failTestCaseOnErrors="true" keepSession="false" name="TestCase 4  - directory datasource - ben" searchProperties="true" timeout="0" maxResults="0"><con:settings/><con:savedRecentRuns>1</con:savedRecentRuns><con:testStep type="datasource" name="DataSource - directory" id="e180bb1a-55fe-49d7-a4cd-8563453ec9f3"><con:settings/><con:config xsi:type="con:DataSourceStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:dataSource type="Directory"><con:configuration><directory>D:/Donor Marketing/SoapUI/nongroovyscriptfilesdirectory</directory><filter>*.dat</filter><encoding/></con:configuration></con:dataSource><con:property>fileContents</con:property><con:startRow/><con:endRow/><con:recordsPerIteration>1</con:recordsPerIteration><con:completeLastOperation>true</con:completeLastOperation><con:trimValues>false</con:trimValues><con:entitizeValues>false</con:entitizeValues><con:restartOnRun>true</con:restartOnRun><con:expandProperties>false</con:expandProperties></con:config></con:testStep><con:testStep type="groovy" name="Groovy Script" id="f2cfe350-78e1-40a4-8fe0-dd15fdf53505"><con:settings/><con:config><script>def lines = new File('D:\\Donor Marketing\\SoapUI\\nongroovyscriptfile\\New Text Document.dat').readLines()
lines.eachWithIndex { line, index ->
    if (index) {
    	def data = line.split('|')*.trim()
	log.info data[0]            	   
    }	    	
}</script></con:config></con:testStep><con:testStep type="restrequest" name="ESB Donor upload" id="c38fb2de-070c-4627-9388-1cbffe8819d3"><con:settings/><con:config service="REST Service 1" resourcePath="/csm/sit6/donor/crm/entities/contact/synchronous-upload" methodName="POST" xsi:type="con:RestRequestStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:restRequest name="ESB Donor upload" id="4cc1c1cc-bc8c-4110-bc2f-623635cda4cf" mediaType="text/plain" postQueryString="false"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;xml-fragment/></con:setting></con:settings><con:endpoint>https://exttest.ACRONYM.mipaas.io</con:endpoint><con:request>${DataSource - directory#fileContents}</con:request><con:originalUri>https://exttest.nhsbt.mipaas.io/csm/sit6/donor/crm/entities/contact/synchronous-upload</con:originalUri><con:assertion type="Valid HTTP Status Codes" id="bc3113a5-f134-40b3-81af-2c0a7d54578e" name="Valid HTTP Status Codes"><con:settings/><con:configuration><codes>200</codes></con:configuration></con:assertion><con:credentials><con:selectedAuthProfile>Inherit From Parent</con:selectedAuthProfile><con:authType>No Authorization</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:parameters/><con:parameterOrder/></con:restRequest></con:config></con:testStep><con:testStep type="datasourceloop" name="DataSource Loop" id="ce82d924-867a-423f-a8b4-30527b816b13"><con:settings/><con:config><dataSourceStep>DataSource - directory</dataSourceStep><targetStep>ESB Donor upload</targetStep></con:config></con:testStep><con:properties/><con:reportParameters/><con:breakPoints><con:testStepId>ce82d924-867a-423f-a8b4-30527b816b13</con:testStepId><con:status>NONE</con:status><con:properties/></con:breakPoints><con:breakPoints><con:testStepId>c38fb2de-070c-4627-9388-1cbffe8819d3</con:testStepId><con:status>NONE</con:status><con:properties/></con:breakPoints><con:breakPoints><con:testStepId>e180bb1a-55fe-49d7-a4cd-8563453ec9f3</con:testStepId><con:status>NONE</con:status><con:properties/></con:breakPoints><con:breakPoints><con:testStepId>f2cfe350-78e1-40a4-8fe0-dd15fdf53505</con:testStepId><con:status>NONE</con:status><con:properties/></con:breakPoints></con:testCase><con:properties/>
<con:reportParameters/>
</con:testSuite>
<con:savedRecentRuns>1</con:savedRecentRuns><con:requirements/>
<con:properties/>
<con:wssContainer/>
<con:databaseConnectionContainer/>
<con:oAuth2ProfileContainer/>
<con:oAuth1ProfileContainer/><con:reporting>
<con:xmlTemplates/>
<con:parameters/>
</con:reporting>
<con:authRepository/>
<con:tags/>
</con:soapui-project>