You can do it with a script assertion:
And the content of this can be:
def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context) // Set Namespaces def holder = groovyUtils.getXmlHolder(messageExchange.responseContent) //holder.namespaces["soapenv"] = "http://schemas.xmlsoap.org/soap/envelope/" def dateFoundStr = holder.getNodeValue("/Results/ResultSet/Row[1]/DATE_FOUND") def dateFound = new Date().parse("yyyy-MM-dd hh:mm:ss", dateFoundStr) dateFoundStr = dateFound.format("yyyy-MM-dd") //Current Date def date = new Date() def currentDate=date.format("yyyy-MM-dd") // assert dateFoundStr == currentDate
First we need to fetch and parse the response content using the holder variable, parsing the messageExchange.responseContent using groovyUtils.getXmlHolder.
Second, the particular date is found, here dateFound as a field from a JDBC response. A JDBC response does not have namespaces, but from a SOAP response it helps to declare namespaces. For an example see the commented line for holder.namespaces["soapenv"].
Third, I parse the found date, which is a string as fetched from the xml, to a date time, then format it to a string to get only the date part. This could be done simply using substring methods, but I wanted to try this. And get and formatthe currentDate as a string.
In the end just do assert with a comparison of both values.
There you go.
No comments:
Post a Comment