Submit and vote on feature ideas.

Welcome to the new Parasoft forums! We hope you will enjoy the site and try out some of the new features, like sharing an idea you may have for one of our products or following a category.

How to Verify Date Time difference in Parasoft

Roy
Roy Posts: 6

I want to verify the difference between two dates in Parasoft.
My responce looks like below:

<TodaysDate>06/28/2017 14:02:06</TodaysDate>
<FutureDate>08/28/2017 16:18:55</FutureDate>

Along with the Date in my response Time is also displayed but I want only the date Difference.

Tagged:

Answers

  • benken_parasoft
    benken_parasoft Posts: 1,228 ✭✭✭

    The XML/JSON Assertor tools have a "Date Difference Assertion".

  • Roy
    Roy Posts: 6

    Thanks for the Reply.
    According to Date Difference Assertion I converted my dates format to yyyy-MM-dd. I used following XPATH to change the date Format:

    /*:Envelope/*:Body/*:Response/*:FutureDate/concat(substring(., 7, 4), '-', substring(., 1, 2), '-', substring(., 4, 2))

    But when I ran my test case I am getting following error:

    Error Message:
    An error occurred while processing an assertion: net.sf.saxon.trans.XPathException: Cannot convert
    XPath value to Java object: required class is org.w3c.dom.NodeList; supplied value has type
    xs:string

  • jakubiak
    jakubiak Posts: 795 admin

    Your XPath is constructing a string, but SOAtest currently requires that XPaths in the Assertor tools describe a node in the XML document. There may be an easier way, but another approach to solving this problem is use XML Data Bank to store both of the dates, and then to use a script like the following to compare them:

    import com.parasoft.api.*;
    
    public boolean checkDates(Object obj, ScriptingContext context) {
        todaysDate = new Date(context.getValue(null, "Test 1: TodaysDate"));
        futureDate = new Date(context.getValue(null, "Test 1: FutureDate"));
    
        if (todaysDate.getYear() != futureDate.getYear() || todaysDate.getMonth() != futureDate.getMonth() || todaysDate.getDay() != futureDate.getDay()) {
            context.report(todaysDate.toString() + " does not match " + futureDate.toString());
        }
    }
    

Tagged