Read and write a file in groovy

groovysoapui

I'm new to groovy and SOAP UI free. I'm using a groovy script to drive my test for SOAP UI.

I want to write a script that reads a file of person IDs, removes the first one, sets a property, writes the file back out without the one I just read.

Here's my first cut at it:

List pids = new ArrayList()

new File("c:/dev/pids.csv").eachLine { line -> pids.add(line) }

String pid = pids.get(0);
testRunner.testCase.setPropertyValue( "personId", pid )
pids.remove(0)

new File("c:/dev/pids.csv").withWriter { out ->
    pids.each() { aPid ->
        out.writeLine(aPid)
    }
}

The output gets displayed on SOAP UI and the file doesn't get touched. I'm lost.

Best Answer

ArrayList pids = null
PrintWriter writer = null

File f = new File("c:/temp/pids.txt")

if (f.length() > 0){
   pids = new ArrayList()

   f.eachLine { line -> pids.add(line) }

   println("Item to be removed: " + pids.get(0))
   //testRunner.testCase.setPropertyValue( "personId", pid )
   pids.remove(0)

   println pids

   writer = new PrintWriter(f)
   pids.each { id -> writer.println(id) }

   writer.close()
}
else{
   println "File is empty!"
}
Related Topic