tags:

views:

287

answers:

1

Hi,

I've got some soapUI tests, that use groovy scripts to first insert some data into a table

Previously, I've been using the following snippet of code to do this :

      def conn = context.dbConnEtopup
      conn.execute( "INSERT INTO A(ID, NAME) VALUES (1, "Johnny")" )

This works fine, however I have many test scripts that now do a similar (if not the same) SQL statements, so I'm trying to approach this by loading it in from a properties file, so my actual SQL statement is only in one place, for easier editing

However, my SQL statement that I'm trying to use is actually 2 inserts(or deletes), so the property being loaded in is :

DELETE * FROM TABLE_A; DELETE * FROM TABLE_B;

conn.execute() can't handle the ;, which means I could only use the first DELETE statement

How can I get around this? I don't want to have to load each property separately and execute them. Ideally I just want one property, so I can add further delete statements in the future

+1  A: 

Couldn't you just store them in the properties file with the semicolons, then remove them after reading them, e.g.

String sqlProperty = // read SQL property from file
def statements = sqlProperty.split(";")

// Execute each statment using conn (an instance of groov.sql.Sql?)
statements.each { conn.execute(it);
Don