Skip to Content.
Sympa Menu

perfsonar-dev - perfsonar: r4048 - trunk/functional-testing/Flow_Monitoring/FlowsaMAsoapUI

Subject: perfsonar development work

List archive

perfsonar: r4048 - trunk/functional-testing/Flow_Monitoring/FlowsaMAsoapUI


Chronological Thread 
  • From:
  • To:
  • Subject: perfsonar: r4048 - trunk/functional-testing/Flow_Monitoring/FlowsaMAsoapUI
  • Date: Tue, 24 Jun 2008 06:31:57 -0400

Author: sasa.cavara
Date: 2008-06-24 06:31:57 -0400 (Tue, 24 Jun 2008)
New Revision: 4048

Modified:

trunk/functional-testing/Flow_Monitoring/FlowsaMAsoapUI/FlowsaMA-soapui-project.xml
Log:


Modified:
trunk/functional-testing/Flow_Monitoring/FlowsaMAsoapUI/FlowsaMA-soapui-project.xml
===================================================================
---
trunk/functional-testing/Flow_Monitoring/FlowsaMAsoapUI/FlowsaMA-soapui-project.xml
2008-06-24 10:29:37 UTC (rev 4047)
+++
trunk/functional-testing/Flow_Monitoring/FlowsaMAsoapUI/FlowsaMA-soapui-project.xml
2008-06-24 10:31:57 UTC (rev 4048)
@@ -2389,4 +2389,6407 @@
def validator = schema.newValidator();
def node = holder.getDomNode("//nmwg:message")
validator.validate(new DOMSource(node));
-</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:properties/></con:testCase><con:properties/></con:testSuite><con:testSuite
name="Malformed and invalid
requests"><con:settings/><con:runType>SEQUENTIAL</con:runType><con:properties/></con:testSuite><con:testSuite
name="Requests with invalid
data"><con:settings/><con:runType>SEQUENTIAL</con:runType><con:properties/></con:testSuite><con:properties/><con:wssContainer/></con:soapui-project>
\ No newline at end of file
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:properties/></con:testCase><con:properties/></con:testSuite><con:testSuite
name="Malformed and invalid
requests"><con:settings/><con:runType>SEQUENTIAL</con:runType><con:testCase
failOnError="true" failTestCaseOnErrors="true" keepSession="false" name="Test
Steps" searchProperties="true"><con:settings/><con:testStep type="request"
name="rawFlows-first element not message"><con:settings/><con:config
xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="rawFlows-first element not
message"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/e
nvelope/" xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:NOTmessage id="msg1" type="SetupDataRequest"
+xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
+xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
+xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
+xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
+xmlns:raw="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";
+xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";>
+
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+ <nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+ <nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/raw/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1">
+
+ <nmwg:parameter name="filterRule">ip 194.171.26.203</nmwg:parameter>
+ <nmwg:parameter name="showFieldTimeFirstSeen"/><nmwg:parameter
name="showFieldTimeLastSeen"/><nmwg:parameter
name="showFieldProtocol"/><nmwg:parameter
name="showFieldSrcAddress"/><nmwg:parameter
name="showFieldSrcPort"/><nmwg:parameter
name="showFieldDstAddress"/><nmwg:parameter
name="showFieldDstPort"/><nmwg:parameter
name="showFieldPackets"/><nmwg:parameter
name="showFieldBytes"/></flow:parameters>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO" value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO" value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+
+</nmwg:NOTmessage>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="filterRule")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="filterRule"]
eq "ip 194.171.26.203")
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";)</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="topFlows-first element not
message"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="topFlows-first element not
message"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+ <nmwg:NOTmessage id="msg1" type="SetupDataRequest"
xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
xmlns:top="http://ggf.org/ns/nmwg/tools/flow/top/2.0/";>
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+
<nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+
<nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/top/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1">
+ <nmwg:parameter name="topStatistic">Srcip</nmwg:parameter>

+ <nmwg:parameter name="orderBy">Bytes</nmwg:parameter>
+ <nmwg:parameter name="splitProtocol">no</nmwg:parameter>

+ <nmwg:parameter name="topN">10</nmwg:parameter>

+ </flow:parameters>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO"
value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO"
value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+ </nmwg:NOTmessage>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace nmwgtopo3='http://ggf.org/ns/nmwg/topology/base/3.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace nmtm='http://ggf.org/ns/nmwg/time/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/top/2.0/";)
+and
+((//nmwg:message/nmwg:metadata/flow:subject/nmwgtopo3:network/nmwgtopo3:node[@id="router2"]/nmwgtopo3:hostName)="xsr03.asd002a.surf.net")
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="topStatistic")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="topStatistic"]
eq
"Srcip")</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="flowStatistics-first element not
message"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="flowStatistics-first element not
message"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:NOTmessage id="msg1" type="SetupDataRequest"
xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
xmlns:stat="http://ggf.org/ns/nmwg/tools/flow/stat/2.0/";>
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+
<nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+
<nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/stat/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1"/>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO"
value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO"
value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+ </nmwg:NOTmessage>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace nmwgtopo3='http://ggf.org/ns/nmwg/topology/base/3.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace nmtm='http://ggf.org/ns/nmwg/time/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/stat/2.0/";)
+and
+((//nmwg:message/nmwg:metadata/flow:subject/nmwgtopo3:network/nmwgtopo3:node[@id="router2"]/nmwgtopo3:hostName)="xsr03.asd002a.surf.net")</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="rawFlows-no type in message"><con:settings/><con:config
xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="rawFlows-no type in
message"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:message id="msg1"
+xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
+xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
+xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
+xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
+xmlns:raw="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";
+xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";>
+
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+ <nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+ <nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/raw/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1">
+
+ <nmwg:parameter name="filterRule">ip 194.171.26.203</nmwg:parameter>
+ <nmwg:parameter name="showFieldTimeFirstSeen"/><nmwg:parameter
name="showFieldTimeLastSeen"/><nmwg:parameter
name="showFieldProtocol"/><nmwg:parameter
name="showFieldSrcAddress"/><nmwg:parameter
name="showFieldSrcPort"/><nmwg:parameter
name="showFieldDstAddress"/><nmwg:parameter
name="showFieldDstPort"/><nmwg:parameter
name="showFieldPackets"/><nmwg:parameter
name="showFieldBytes"/></flow:parameters>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO" value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO" value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+
+</nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="filterRule")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="filterRule"]
eq "ip 194.171.26.203")
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";)</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="topFlows-no type in message"><con:settings/><con:config
xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="topFlows-no type in
message"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+ <nmwg:message id="msg1"
xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
xmlns:top="http://ggf.org/ns/nmwg/tools/flow/top/2.0/";>
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+
<nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+
<nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/top/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1">
+ <nmwg:parameter name="topStatistic">Srcip</nmwg:parameter>

+ <nmwg:parameter name="orderBy">Bytes</nmwg:parameter>
+ <nmwg:parameter name="splitProtocol">no</nmwg:parameter>

+ <nmwg:parameter name="topN">10</nmwg:parameter>

+ </flow:parameters>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO"
value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO"
value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+ </nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace nmwgtopo3='http://ggf.org/ns/nmwg/topology/base/3.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace nmtm='http://ggf.org/ns/nmwg/time/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/top/2.0/";)
+and
+((//nmwg:message/nmwg:metadata/flow:subject/nmwgtopo3:network/nmwgtopo3:node[@id="router2"]/nmwgtopo3:hostName)="xsr03.asd002a.surf.net")
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="topStatistic")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="topStatistic"]
eq
"Srcip")</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="flowStatistics-no type in
message"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="flowStatistics-no type in
message"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:message id="msg1" xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
xmlns:stat="http://ggf.org/ns/nmwg/tools/flow/stat/2.0/";>
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+
<nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+
<nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/stat/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1"/>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO"
value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO"
value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+ </nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace nmwgtopo3='http://ggf.org/ns/nmwg/topology/base/3.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace nmtm='http://ggf.org/ns/nmwg/time/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/stat/2.0/";)
+and
+((//nmwg:message/nmwg:metadata/flow:subject/nmwgtopo3:network/nmwgtopo3:node[@id="router2"]/nmwgtopo3:hostName)="xsr03.asd002a.surf.net")</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="rawFlows-non existing type in
message"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="rawFlows-non existing type in
message"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:message id="msg1" type="SetupData"
+xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
+xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
+xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
+xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
+xmlns:raw="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";
+xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";>
+
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+ <nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+ <nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/raw/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1">
+
+ <nmwg:parameter name="filterRule">ip 194.171.26.203</nmwg:parameter>
+ <nmwg:parameter name="showFieldTimeFirstSeen"/><nmwg:parameter
name="showFieldTimeLastSeen"/><nmwg:parameter
name="showFieldProtocol"/><nmwg:parameter
name="showFieldSrcAddress"/><nmwg:parameter
name="showFieldSrcPort"/><nmwg:parameter
name="showFieldDstAddress"/><nmwg:parameter
name="showFieldDstPort"/><nmwg:parameter
name="showFieldPackets"/><nmwg:parameter
name="showFieldBytes"/></flow:parameters>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO" value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO" value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+
+</nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="filterRule")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="filterRule"]
eq "ip 194.171.26.203")
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";)</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="topFlows-non existing type in
message"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="topFlows-non existing type in
message"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+ <nmwg:message id="msg1" type="SetupData"
xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
xmlns:top="http://ggf.org/ns/nmwg/tools/flow/top/2.0/";>
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+
<nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+
<nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/top/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1">
+ <nmwg:parameter name="topStatistic">Srcip</nmwg:parameter>

+ <nmwg:parameter name="orderBy">Bytes</nmwg:parameter>
+ <nmwg:parameter name="splitProtocol">no</nmwg:parameter>

+ <nmwg:parameter name="topN">10</nmwg:parameter>

+ </flow:parameters>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO"
value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO"
value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+ </nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace nmwgtopo3='http://ggf.org/ns/nmwg/topology/base/3.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace nmtm='http://ggf.org/ns/nmwg/time/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/top/2.0/";)
+and
+((//nmwg:message/nmwg:metadata/flow:subject/nmwgtopo3:network/nmwgtopo3:node[@id="router2"]/nmwgtopo3:hostName)="xsr03.asd002a.surf.net")
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="topStatistic")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="topStatistic"]
eq
"Srcip")</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="flowStatistics-non existing type in
message"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="flowStatistics-non existing type in
message"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:message id="msg1" type="SetupData"
xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
xmlns:stat="http://ggf.org/ns/nmwg/tools/flow/stat/2.0/";>
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+
<nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+
<nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/stat/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1"/>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO"
value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO"
value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+ </nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace nmwgtopo3='http://ggf.org/ns/nmwg/topology/base/3.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace nmtm='http://ggf.org/ns/nmwg/time/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/stat/2.0/";)
+and
+((//nmwg:message/nmwg:metadata/flow:subject/nmwgtopo3:network/nmwgtopo3:node[@id="router2"]/nmwgtopo3:hostName)="xsr03.asd002a.surf.net")</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="rawFlows-no metadata and
data"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="rawFlows-no metadata and
data"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:message id="msg1" type="SetupDataRequest"
+xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
+xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
+xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
+xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
+xmlns:raw="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";
+xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";>
+
+
+
+</nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="filterRule")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="filterRule"]
eq "ip 194.171.26.203")
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";)</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="topFlows-no metadata and
data"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="topFlows-no metadata and
data"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+ <nmwg:message id="msg1" type="SetupDataRequest"
xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
xmlns:top="http://ggf.org/ns/nmwg/tools/flow/top/2.0/";>
+
+ </nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace nmwgtopo3='http://ggf.org/ns/nmwg/topology/base/3.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace nmtm='http://ggf.org/ns/nmwg/time/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/top/2.0/";)
+and
+((//nmwg:message/nmwg:metadata/flow:subject/nmwgtopo3:network/nmwgtopo3:node[@id="router2"]/nmwgtopo3:hostName)="xsr03.asd002a.surf.net")
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="topStatistic")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="topStatistic"]
eq
"Srcip")</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="flowStatistics-no metadata and
data"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="flowStatistics-no metadata and
data"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:message id="msg1" type="SetupDataRequest"
xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
xmlns:stat="http://ggf.org/ns/nmwg/tools/flow/stat/2.0/";>
+
+ </nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace nmwgtopo3='http://ggf.org/ns/nmwg/topology/base/3.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace nmtm='http://ggf.org/ns/nmwg/time/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/stat/2.0/";)
+and
+((//nmwg:message/nmwg:metadata/flow:subject/nmwgtopo3:network/nmwgtopo3:node[@id="router2"]/nmwgtopo3:hostName)="xsr03.asd002a.surf.net")</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="rawFlows-no metadata"><con:settings/><con:config
xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="rawFlows-no
metadata"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:message id="msg1" type="SetupDataRequest"
+xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
+xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
+xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
+xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
+xmlns:raw="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";
+xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";>
+
+
+
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+
+</nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="filterRule")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="filterRule"]
eq "ip 194.171.26.203")
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";)</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="rawFlows-no data"><con:settings/><con:config
xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="rawFlows-no
data"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:message id="msg1" type="SetupDataRequest"
+xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
+xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
+xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
+xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
+xmlns:raw="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";
+xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";>
+
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+ <nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+ <nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/raw/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1">
+
+ <nmwg:parameter name="filterRule">ip 194.171.26.203</nmwg:parameter>
+ <nmwg:parameter name="showFieldTimeFirstSeen"/><nmwg:parameter
name="showFieldTimeLastSeen"/><nmwg:parameter
name="showFieldProtocol"/><nmwg:parameter
name="showFieldSrcAddress"/><nmwg:parameter
name="showFieldSrcPort"/><nmwg:parameter
name="showFieldDstAddress"/><nmwg:parameter
name="showFieldDstPort"/><nmwg:parameter
name="showFieldPackets"/><nmwg:parameter
name="showFieldBytes"/></flow:parameters>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO" value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO" value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+
+
+</nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="filterRule")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="filterRule"]
eq "ip 194.171.26.203")
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";)</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="topFlows-no metadata"><con:settings/><con:config
xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="topFlows-no
metadata"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+ <nmwg:message id="msg1" type="SetupDataRequest"
xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
xmlns:top="http://ggf.org/ns/nmwg/tools/flow/top/2.0/";>
+
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+ </nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace nmwgtopo3='http://ggf.org/ns/nmwg/topology/base/3.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace nmtm='http://ggf.org/ns/nmwg/time/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/top/2.0/";)
+and
+((//nmwg:message/nmwg:metadata/flow:subject/nmwgtopo3:network/nmwgtopo3:node[@id="router2"]/nmwgtopo3:hostName)="xsr03.asd002a.surf.net")
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="topStatistic")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="topStatistic"]
eq
"Srcip")</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="topFlows-no data"><con:settings/><con:config
xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="topFlows-no
data"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+ <nmwg:message id="msg1" type="SetupDataRequest"
xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
xmlns:top="http://ggf.org/ns/nmwg/tools/flow/top/2.0/";>
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+
<nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+
<nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/top/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1">
+ <nmwg:parameter name="topStatistic">Srcip</nmwg:parameter>

+ <nmwg:parameter name="orderBy">Bytes</nmwg:parameter>
+ <nmwg:parameter name="splitProtocol">no</nmwg:parameter>

+ <nmwg:parameter name="topN">10</nmwg:parameter>

+ </flow:parameters>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO"
value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO"
value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+
+ </nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace nmwgtopo3='http://ggf.org/ns/nmwg/topology/base/3.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace nmtm='http://ggf.org/ns/nmwg/time/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/top/2.0/";)
+and
+((//nmwg:message/nmwg:metadata/flow:subject/nmwgtopo3:network/nmwgtopo3:node[@id="router2"]/nmwgtopo3:hostName)="xsr03.asd002a.surf.net")
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="topStatistic")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="topStatistic"]
eq
"Srcip")</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="flowStatistics-no metadata"><con:settings/><con:config
xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="flowStatistics-no
metadata"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:message id="msg1" type="SetupDataRequest"
xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
xmlns:stat="http://ggf.org/ns/nmwg/tools/flow/stat/2.0/";>
+
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+ </nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace nmwgtopo3='http://ggf.org/ns/nmwg/topology/base/3.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace nmtm='http://ggf.org/ns/nmwg/time/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/stat/2.0/";)
+and
+((//nmwg:message/nmwg:metadata/flow:subject/nmwgtopo3:network/nmwgtopo3:node[@id="router2"]/nmwgtopo3:hostName)="xsr03.asd002a.surf.net")</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="flowStatistics-no data"><con:settings/><con:config
xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="flowStatistics-no
data"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:message id="msg1" type="SetupDataRequest"
xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
xmlns:stat="http://ggf.org/ns/nmwg/tools/flow/stat/2.0/";>
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+
<nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+
<nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/stat/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1"/>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO"
value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO"
value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+
+ </nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace nmwgtopo3='http://ggf.org/ns/nmwg/topology/base/3.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace nmtm='http://ggf.org/ns/nmwg/time/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/stat/2.0/";)
+and
+((//nmwg:message/nmwg:metadata/flow:subject/nmwgtopo3:network/nmwgtopo3:node[@id="router2"]/nmwgtopo3:hostName)="xsr03.asd002a.surf.net")</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="rawFlows-empty id in
metadata"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="rawFlows-empty id in
metadata"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:message id="msg1" type="SetupDataRequest"
+xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
+xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
+xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
+xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
+xmlns:raw="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";
+xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";>
+
+ <nmwg:metadata id="">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+ <nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+ <nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/raw/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1">
+
+ <nmwg:parameter name="filterRule">ip 194.171.26.203</nmwg:parameter>
+ <nmwg:parameter name="showFieldTimeFirstSeen"/><nmwg:parameter
name="showFieldTimeLastSeen"/><nmwg:parameter
name="showFieldProtocol"/><nmwg:parameter
name="showFieldSrcAddress"/><nmwg:parameter
name="showFieldSrcPort"/><nmwg:parameter
name="showFieldDstAddress"/><nmwg:parameter
name="showFieldDstPort"/><nmwg:parameter
name="showFieldPackets"/><nmwg:parameter
name="showFieldBytes"/></flow:parameters>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO" value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO" value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+
+</nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="filterRule")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="filterRule"]
eq "ip 194.171.26.203")
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";)</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="rawFlows-no id in metadata"><con:settings/><con:config
xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="rawFlows-no id in
metadata"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:message id="msg1" type="SetupDataRequest"
+xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
+xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
+xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
+xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
+xmlns:raw="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";
+xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";>
+
+ <nmwg:metadata>
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+ <nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+ <nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/raw/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1">
+
+ <nmwg:parameter name="filterRule">ip 194.171.26.203</nmwg:parameter>
+ <nmwg:parameter name="showFieldTimeFirstSeen"/><nmwg:parameter
name="showFieldTimeLastSeen"/><nmwg:parameter
name="showFieldProtocol"/><nmwg:parameter
name="showFieldSrcAddress"/><nmwg:parameter
name="showFieldSrcPort"/><nmwg:parameter
name="showFieldDstAddress"/><nmwg:parameter
name="showFieldDstPort"/><nmwg:parameter
name="showFieldPackets"/><nmwg:parameter
name="showFieldBytes"/></flow:parameters>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO" value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO" value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+
+</nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="filterRule")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="filterRule"]
eq "ip 194.171.26.203")
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";)</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="topFlows-empty id in
metadata"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="topFlows-empty id in
metadata"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+ <nmwg:message id="msg1" type="SetupDataRequest"
xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
xmlns:top="http://ggf.org/ns/nmwg/tools/flow/top/2.0/";>
+ <nmwg:metadata id="">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+
<nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+
<nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/top/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1">
+ <nmwg:parameter name="topStatistic">Srcip</nmwg:parameter>

+ <nmwg:parameter name="orderBy">Bytes</nmwg:parameter>
+ <nmwg:parameter name="splitProtocol">no</nmwg:parameter>

+ <nmwg:parameter name="topN">10</nmwg:parameter>

+ </flow:parameters>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO"
value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO"
value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+ </nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace nmwgtopo3='http://ggf.org/ns/nmwg/topology/base/3.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace nmtm='http://ggf.org/ns/nmwg/time/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/top/2.0/";)
+and
+((//nmwg:message/nmwg:metadata/flow:subject/nmwgtopo3:network/nmwgtopo3:node[@id="router2"]/nmwgtopo3:hostName)="xsr03.asd002a.surf.net")
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="topStatistic")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="topStatistic"]
eq
"Srcip")</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="topFlows-no id in metadata"><con:settings/><con:config
xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="topFlows-no id in
metadata"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+ <nmwg:message id="msg1" type="SetupDataRequest"
xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
xmlns:top="http://ggf.org/ns/nmwg/tools/flow/top/2.0/";>
+ <nmwg:metadata>
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+
<nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+
<nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/top/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1">
+ <nmwg:parameter name="topStatistic">Srcip</nmwg:parameter>

+ <nmwg:parameter name="orderBy">Bytes</nmwg:parameter>
+ <nmwg:parameter name="splitProtocol">no</nmwg:parameter>

+ <nmwg:parameter name="topN">10</nmwg:parameter>

+ </flow:parameters>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO"
value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO"
value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+ </nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace nmwgtopo3='http://ggf.org/ns/nmwg/topology/base/3.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace nmtm='http://ggf.org/ns/nmwg/time/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/top/2.0/";)
+and
+((//nmwg:message/nmwg:metadata/flow:subject/nmwgtopo3:network/nmwgtopo3:node[@id="router2"]/nmwgtopo3:hostName)="xsr03.asd002a.surf.net")
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="topStatistic")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="topStatistic"]
eq
"Srcip")</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="flowStatistics-empty id in
metadata"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="flowStatistics-empty id in
metadata"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:message id="msg1" type="SetupDataRequest"
xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
xmlns:stat="http://ggf.org/ns/nmwg/tools/flow/stat/2.0/";>
+ <nmwg:metadata id="">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+
<nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+
<nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/stat/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1"/>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO"
value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO"
value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+ </nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace nmwgtopo3='http://ggf.org/ns/nmwg/topology/base/3.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace nmtm='http://ggf.org/ns/nmwg/time/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/stat/2.0/";)
+and
+((//nmwg:message/nmwg:metadata/flow:subject/nmwgtopo3:network/nmwgtopo3:node[@id="router2"]/nmwgtopo3:hostName)="xsr03.asd002a.surf.net")</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="flowStatistics-no id in
metadata"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="flowStatistics-no id in
metadata"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:message id="msg1" type="SetupDataRequest"
xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
xmlns:stat="http://ggf.org/ns/nmwg/tools/flow/stat/2.0/";>
+ <nmwg:metadata>
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+
<nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+
<nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/stat/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1"/>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO"
value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO"
value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+ </nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace nmwgtopo3='http://ggf.org/ns/nmwg/topology/base/3.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace nmtm='http://ggf.org/ns/nmwg/time/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/stat/2.0/";)
+and
+((//nmwg:message/nmwg:metadata/flow:subject/nmwgtopo3:network/nmwgtopo3:node[@id="router2"]/nmwgtopo3:hostName)="xsr03.asd002a.surf.net")</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="rawFlows-subject element
malformed"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="rawFlows-subject element
malformed"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:message id="msg1" type="SetupDataRequest"
+xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
+xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
+xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
+xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
+xmlns:raw="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";
+xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";>
+
+ <nmwg:metadata id="meta1">
+ <flow:WRONGsubject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+ <nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+ <nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:WRONGsubject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/raw/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1">
+
+ <nmwg:parameter name="filterRule">ip 194.171.26.203</nmwg:parameter>
+ <nmwg:parameter name="showFieldTimeFirstSeen"/><nmwg:parameter
name="showFieldTimeLastSeen"/><nmwg:parameter
name="showFieldProtocol"/><nmwg:parameter
name="showFieldSrcAddress"/><nmwg:parameter
name="showFieldSrcPort"/><nmwg:parameter
name="showFieldDstAddress"/><nmwg:parameter
name="showFieldDstPort"/><nmwg:parameter
name="showFieldPackets"/><nmwg:parameter
name="showFieldBytes"/></flow:parameters>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO" value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO" value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+
+</nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="filterRule")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="filterRule"]
eq "ip 194.171.26.203")
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";)</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="topFlows-subject element
malformed"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="topFlows-subject element
malformed"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+ <nmwg:message id="msg1" type="SetupDataRequest"
xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
xmlns:top="http://ggf.org/ns/nmwg/tools/flow/top/2.0/";>
+ <nmwg:metadata id="meta1">
+ <flow:WRONGsubject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+
<nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+
<nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:WRONGsubject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/top/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1">
+ <nmwg:parameter name="topStatistic">Srcip</nmwg:parameter>

+ <nmwg:parameter name="orderBy">Bytes</nmwg:parameter>
+ <nmwg:parameter name="splitProtocol">no</nmwg:parameter>

+ <nmwg:parameter name="topN">10</nmwg:parameter>

+ </flow:parameters>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO"
value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO"
value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+ </nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace nmwgtopo3='http://ggf.org/ns/nmwg/topology/base/3.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace nmtm='http://ggf.org/ns/nmwg/time/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/top/2.0/";)
+and
+((//nmwg:message/nmwg:metadata/flow:subject/nmwgtopo3:network/nmwgtopo3:node[@id="router2"]/nmwgtopo3:hostName)="xsr03.asd002a.surf.net")
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="topStatistic")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="topStatistic"]
eq
"Srcip")</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="flowStatistics-subject element
malformed"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="flowStatistics-subject element
malformed"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:message id="msg1" type="SetupDataRequest"
xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
xmlns:stat="http://ggf.org/ns/nmwg/tools/flow/stat/2.0/";>
+ <nmwg:metadata id="meta1">
+ <flow:WRONGsubject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+
<nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+
<nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:WRONGsubject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/stat/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1"/>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO"
value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO"
value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+ </nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace nmwgtopo3='http://ggf.org/ns/nmwg/topology/base/3.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace nmtm='http://ggf.org/ns/nmwg/time/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/stat/2.0/";)
+and
+((//nmwg:message/nmwg:metadata/flow:subject/nmwgtopo3:network/nmwgtopo3:node[@id="router2"]/nmwgtopo3:hostName)="xsr03.asd002a.surf.net")</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="rawFlows-no nodes"><con:settings/><con:config
xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="rawFlows-no
nodes"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:message id="msg1" type="SetupDataRequest"
+xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
+xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
+xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
+xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
+xmlns:raw="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";
+xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";>
+
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/raw/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1">
+
+ <nmwg:parameter name="filterRule">ip 194.171.26.203</nmwg:parameter>
+ <nmwg:parameter name="showFieldTimeFirstSeen"/><nmwg:parameter
name="showFieldTimeLastSeen"/><nmwg:parameter
name="showFieldProtocol"/><nmwg:parameter
name="showFieldSrcAddress"/><nmwg:parameter
name="showFieldSrcPort"/><nmwg:parameter
name="showFieldDstAddress"/><nmwg:parameter
name="showFieldDstPort"/><nmwg:parameter
name="showFieldPackets"/><nmwg:parameter
name="showFieldBytes"/></flow:parameters>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO" value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO" value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+
+</nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="filterRule")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="filterRule"]
eq "ip 194.171.26.203")
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";)</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="topFlows-no nodes"><con:settings/><con:config
xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="topFlows-no
nodes"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+ <nmwg:message id="msg1" type="SetupDataRequest"
xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
xmlns:top="http://ggf.org/ns/nmwg/tools/flow/top/2.0/";>
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/top/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1">
+ <nmwg:parameter name="topStatistic">Srcip</nmwg:parameter>

+ <nmwg:parameter name="orderBy">Bytes</nmwg:parameter>
+ <nmwg:parameter name="splitProtocol">no</nmwg:parameter>

+ <nmwg:parameter name="topN">10</nmwg:parameter>

+ </flow:parameters>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO"
value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO"
value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+ </nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace nmwgtopo3='http://ggf.org/ns/nmwg/topology/base/3.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace nmtm='http://ggf.org/ns/nmwg/time/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/top/2.0/";)
+and
+((//nmwg:message/nmwg:metadata/flow:subject/nmwgtopo3:network/nmwgtopo3:node[@id="router2"]/nmwgtopo3:hostName)="xsr03.asd002a.surf.net")
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="topStatistic")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="topStatistic"]
eq
"Srcip")</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="flowStatistics-no nodes"><con:settings/><con:config
xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="flowStatistics-no
nodes"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:message id="msg1" type="SetupDataRequest"
xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
xmlns:stat="http://ggf.org/ns/nmwg/tools/flow/stat/2.0/";>
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/stat/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1"/>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO"
value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO"
value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+ </nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace nmwgtopo3='http://ggf.org/ns/nmwg/topology/base/3.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace nmtm='http://ggf.org/ns/nmwg/time/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/stat/2.0/";)
+and
+((//nmwg:message/nmwg:metadata/flow:subject/nmwgtopo3:network/nmwgtopo3:node[@id="router2"]/nmwgtopo3:hostName)="xsr03.asd002a.surf.net")</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="rawFlows-element name other than
node"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="rawFlows-element name other than
node"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:message id="msg1" type="SetupDataRequest"
+xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
+xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
+xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
+xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
+xmlns:raw="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";
+xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";>
+
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:nodeWRONG id="router1">
+ <nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:nodeWRONG>
+ <nmwgtopo3:nodeWRONG id="router2">
+ <nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:nodeWRONG>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/raw/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1">
+
+ <nmwg:parameter name="filterRule">ip 194.171.26.203</nmwg:parameter>
+ <nmwg:parameter name="showFieldTimeFirstSeen"/><nmwg:parameter
name="showFieldTimeLastSeen"/><nmwg:parameter
name="showFieldProtocol"/><nmwg:parameter
name="showFieldSrcAddress"/><nmwg:parameter
name="showFieldSrcPort"/><nmwg:parameter
name="showFieldDstAddress"/><nmwg:parameter
name="showFieldDstPort"/><nmwg:parameter
name="showFieldPackets"/><nmwg:parameter
name="showFieldBytes"/></flow:parameters>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO" value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO" value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+
+</nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="filterRule")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="filterRule"]
eq "ip 194.171.26.203")
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";)</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="topFlows-element name other than
node"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="topFlows-element name other than
node"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+ <nmwg:message id="msg1" type="SetupDataRequest"
xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
xmlns:top="http://ggf.org/ns/nmwg/tools/flow/top/2.0/";>
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:nodeWRONG id="router1">
+
<nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:nodeWRONG>
+ <nmwgtopo3:nodeWRONG id="router2">
+
<nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:nodeWRONG>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/top/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1">
+ <nmwg:parameter name="topStatistic">Srcip</nmwg:parameter>

+ <nmwg:parameter name="orderBy">Bytes</nmwg:parameter>
+ <nmwg:parameter name="splitProtocol">no</nmwg:parameter>

+ <nmwg:parameter name="topN">10</nmwg:parameter>

+ </flow:parameters>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO"
value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO"
value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+ </nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace nmwgtopo3='http://ggf.org/ns/nmwg/topology/base/3.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace nmtm='http://ggf.org/ns/nmwg/time/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/top/2.0/";)
+and
+((//nmwg:message/nmwg:metadata/flow:subject/nmwgtopo3:network/nmwgtopo3:node[@id="router2"]/nmwgtopo3:hostName)="xsr03.asd002a.surf.net")
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="topStatistic")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="topStatistic"]
eq
"Srcip")</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="flowStatistics-element name other than
node"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="flowStatistics-element name other than
node"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:message id="msg1" type="SetupDataRequest"
xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
xmlns:stat="http://ggf.org/ns/nmwg/tools/flow/stat/2.0/";>
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:nodeWRONG id="router1">
+
<nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:nodeWRONG>
+ <nmwgtopo3:nodeWRONG id="router2">
+
<nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:nodeWRONG>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/stat/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1"/>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO"
value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO"
value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+ </nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace nmwgtopo3='http://ggf.org/ns/nmwg/topology/base/3.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace nmtm='http://ggf.org/ns/nmwg/time/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/stat/2.0/";)
+and
+((//nmwg:message/nmwg:metadata/flow:subject/nmwgtopo3:network/nmwgtopo3:node[@id="router2"]/nmwgtopo3:hostName)="xsr03.asd002a.surf.net")</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="rawFlows-node element empty"><con:settings/><con:config
xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="rawFlows-node element
empty"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:message id="msg1" type="SetupDataRequest"
+xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
+xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
+xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
+xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
+xmlns:raw="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";
+xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";>
+
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/raw/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1">
+
+ <nmwg:parameter name="filterRule">ip 194.171.26.203</nmwg:parameter>
+ <nmwg:parameter name="showFieldTimeFirstSeen"/><nmwg:parameter
name="showFieldTimeLastSeen"/><nmwg:parameter
name="showFieldProtocol"/><nmwg:parameter
name="showFieldSrcAddress"/><nmwg:parameter
name="showFieldSrcPort"/><nmwg:parameter
name="showFieldDstAddress"/><nmwg:parameter
name="showFieldDstPort"/><nmwg:parameter
name="showFieldPackets"/><nmwg:parameter
name="showFieldBytes"/></flow:parameters>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO" value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO" value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+
+</nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="filterRule")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="filterRule"]
eq "ip 194.171.26.203")
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";)</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="topFlows-node element empty"><con:settings/><con:config
xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="topFlows-node element
empty"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+ <nmwg:message id="msg1" type="SetupDataRequest"
xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
xmlns:top="http://ggf.org/ns/nmwg/tools/flow/top/2.0/";>
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/top/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1">
+ <nmwg:parameter name="topStatistic">Srcip</nmwg:parameter>

+ <nmwg:parameter name="orderBy">Bytes</nmwg:parameter>
+ <nmwg:parameter name="splitProtocol">no</nmwg:parameter>

+ <nmwg:parameter name="topN">10</nmwg:parameter>

+ </flow:parameters>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO"
value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO"
value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+ </nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace nmwgtopo3='http://ggf.org/ns/nmwg/topology/base/3.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace nmtm='http://ggf.org/ns/nmwg/time/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/top/2.0/";)
+and
+((//nmwg:message/nmwg:metadata/flow:subject/nmwgtopo3:network/nmwgtopo3:node[@id="router2"]/nmwgtopo3:hostName)="xsr03.asd002a.surf.net")
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="topStatistic")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="topStatistic"]
eq
"Srcip")</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="flowStatistics-node element
empty"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="flowStatistics-node element
empty"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:message id="msg1" type="SetupDataRequest"
xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
xmlns:stat="http://ggf.org/ns/nmwg/tools/flow/stat/2.0/";>
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/stat/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1"/>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO"
value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO"
value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+ </nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace nmwgtopo3='http://ggf.org/ns/nmwg/topology/base/3.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace nmtm='http://ggf.org/ns/nmwg/time/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/stat/2.0/";)
+and
+((//nmwg:message/nmwg:metadata/flow:subject/nmwgtopo3:network/nmwgtopo3:node[@id="router2"]/nmwgtopo3:hostName)="xsr03.asd002a.surf.net")</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="rawFlows-node element with empty
id"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="rawFlows-node element with empty
id"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:message id="msg1" type="SetupDataRequest"
+xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
+xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
+xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
+xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
+xmlns:raw="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";
+xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";>
+
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="">
+ <nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="">
+ <nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/raw/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1">
+
+ <nmwg:parameter name="filterRule">ip 194.171.26.203</nmwg:parameter>
+ <nmwg:parameter name="showFieldTimeFirstSeen"/><nmwg:parameter
name="showFieldTimeLastSeen"/><nmwg:parameter
name="showFieldProtocol"/><nmwg:parameter
name="showFieldSrcAddress"/><nmwg:parameter
name="showFieldSrcPort"/><nmwg:parameter
name="showFieldDstAddress"/><nmwg:parameter
name="showFieldDstPort"/><nmwg:parameter
name="showFieldPackets"/><nmwg:parameter
name="showFieldBytes"/></flow:parameters>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO" value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO" value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+
+</nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="filterRule")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="filterRule"]
eq "ip 194.171.26.203")
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";)</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="topFlows-node element with empty
id"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="topFlows-node element with empty
id"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+ <nmwg:message id="msg1" type="SetupDataRequest"
xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
xmlns:top="http://ggf.org/ns/nmwg/tools/flow/top/2.0/";>
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="">
+
<nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="">
+
<nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/top/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1">
+ <nmwg:parameter name="topStatistic">Srcip</nmwg:parameter>

+ <nmwg:parameter name="orderBy">Bytes</nmwg:parameter>
+ <nmwg:parameter name="splitProtocol">no</nmwg:parameter>

+ <nmwg:parameter name="topN">10</nmwg:parameter>

+ </flow:parameters>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO"
value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO"
value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+ </nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace nmwgtopo3='http://ggf.org/ns/nmwg/topology/base/3.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace nmtm='http://ggf.org/ns/nmwg/time/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/top/2.0/";)
+and
+((//nmwg:message/nmwg:metadata/flow:subject/nmwgtopo3:network/nmwgtopo3:node[@id="router2"]/nmwgtopo3:hostName)="xsr03.asd002a.surf.net")
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="topStatistic")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="topStatistic"]
eq
"Srcip")</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="flowStatistics-node element with empty
id"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="flowStatistics-node element with empty
id"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:message id="msg1" type="SetupDataRequest"
xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
xmlns:stat="http://ggf.org/ns/nmwg/tools/flow/stat/2.0/";>
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="">
+
<nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="">
+
<nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/stat/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1"/>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO"
value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO"
value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+ </nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace nmwgtopo3='http://ggf.org/ns/nmwg/topology/base/3.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace nmtm='http://ggf.org/ns/nmwg/time/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/stat/2.0/";)
+and
+((//nmwg:message/nmwg:metadata/flow:subject/nmwgtopo3:network/nmwgtopo3:node[@id="router2"]/nmwgtopo3:hostName)="xsr03.asd002a.surf.net")</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="rawFlows-element other then
hostName"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="rawFlows-element other then
hostName"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:message id="msg1" type="SetupDataRequest"
+xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
+xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
+xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
+xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
+xmlns:raw="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";
+xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";>
+
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+ <flow:subject id="flowsub1">
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+ <flow:subject id="flowsub1">
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/raw/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1">
+
+ <nmwg:parameter name="filterRule">ip 194.171.26.203</nmwg:parameter>
+ <nmwg:parameter name="showFieldTimeFirstSeen"/><nmwg:parameter
name="showFieldTimeLastSeen"/><nmwg:parameter
name="showFieldProtocol"/><nmwg:parameter
name="showFieldSrcAddress"/><nmwg:parameter
name="showFieldSrcPort"/><nmwg:parameter
name="showFieldDstAddress"/><nmwg:parameter
name="showFieldDstPort"/><nmwg:parameter
name="showFieldPackets"/><nmwg:parameter
name="showFieldBytes"/></flow:parameters>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO" value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO" value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+
+</nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="filterRule")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="filterRule"]
eq "ip 194.171.26.203")
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";)</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="topFlows-element other then
hostName"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="topFlows-element other then
hostName"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+ <nmwg:message id="msg1" type="SetupDataRequest"
xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
xmlns:top="http://ggf.org/ns/nmwg/tools/flow/top/2.0/";>
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+ <flow:subject id="flowsub1">
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+ <flow:subject id="flowsub1">
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/top/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1">
+ <nmwg:parameter name="topStatistic">Srcip</nmwg:parameter>

+ <nmwg:parameter name="orderBy">Bytes</nmwg:parameter>
+ <nmwg:parameter name="splitProtocol">no</nmwg:parameter>

+ <nmwg:parameter name="topN">10</nmwg:parameter>

+ </flow:parameters>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO"
value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO"
value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+ </nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace nmwgtopo3='http://ggf.org/ns/nmwg/topology/base/3.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace nmtm='http://ggf.org/ns/nmwg/time/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/top/2.0/";)
+and
+((//nmwg:message/nmwg:metadata/flow:subject/nmwgtopo3:network/nmwgtopo3:node[@id="router2"]/nmwgtopo3:hostName)="xsr03.asd002a.surf.net")
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="topStatistic")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="topStatistic"]
eq
"Srcip")</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="flowStatistics-element other then
hostName"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="flowStatistics-element other then
hostName"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:message id="msg1" type="SetupDataRequest"
xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
xmlns:stat="http://ggf.org/ns/nmwg/tools/flow/stat/2.0/";>
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+ <flow:subject id="flowsub1">
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+ <flow:subject id="flowsub1">
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/stat/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1"/>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO"
value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO"
value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+ </nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace nmwgtopo3='http://ggf.org/ns/nmwg/topology/base/3.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace nmtm='http://ggf.org/ns/nmwg/time/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/stat/2.0/";)
+and
+((//nmwg:message/nmwg:metadata/flow:subject/nmwgtopo3:network/nmwgtopo3:node[@id="router2"]/nmwgtopo3:hostName)="xsr03.asd002a.surf.net")</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="rawFlows-event Type element
missing"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="rawFlows-event Type element
missing"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:message id="msg1" type="SetupDataRequest"
+xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
+xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
+xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
+xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
+xmlns:raw="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";
+xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";>
+
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+ <nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+ <nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1">
+
+ <nmwg:parameter name="filterRule">ip 194.171.26.203</nmwg:parameter>
+ <nmwg:parameter name="showFieldTimeFirstSeen"/><nmwg:parameter
name="showFieldTimeLastSeen"/><nmwg:parameter
name="showFieldProtocol"/><nmwg:parameter
name="showFieldSrcAddress"/><nmwg:parameter
name="showFieldSrcPort"/><nmwg:parameter
name="showFieldDstAddress"/><nmwg:parameter
name="showFieldDstPort"/><nmwg:parameter
name="showFieldPackets"/><nmwg:parameter
name="showFieldBytes"/></flow:parameters>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO" value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO" value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+
+</nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="filterRule")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="filterRule"]
eq "ip 194.171.26.203")
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";)</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="topFlows-event Type element
missing"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="topFlows-event Type element
missing"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+ <nmwg:message id="msg1" type="SetupDataRequest"
xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
xmlns:top="http://ggf.org/ns/nmwg/tools/flow/top/2.0/";>
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+
<nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+
<nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
+ </nmwg:metadata>
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1">
+ <nmwg:parameter name="topStatistic">Srcip</nmwg:parameter>

+ <nmwg:parameter name="orderBy">Bytes</nmwg:parameter>
+ <nmwg:parameter name="splitProtocol">no</nmwg:parameter>

+ <nmwg:parameter name="topN">10</nmwg:parameter>

+ </flow:parameters>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO"
value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO"
value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+ </nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace nmwgtopo3='http://ggf.org/ns/nmwg/topology/base/3.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace nmtm='http://ggf.org/ns/nmwg/time/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/top/2.0/";)
+and
+((//nmwg:message/nmwg:metadata/flow:subject/nmwgtopo3:network/nmwgtopo3:node[@id="router2"]/nmwgtopo3:hostName)="xsr03.asd002a.surf.net")
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="topStatistic")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="topStatistic"]
eq
"Srcip")</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="flowStatistics-event Type element
missing"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="flowStatistics-event Type element
missing"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:message id="msg1" type="SetupDataRequest"
xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
xmlns:stat="http://ggf.org/ns/nmwg/tools/flow/stat/2.0/";>
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+
<nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+
<nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
+ </nmwg:metadata>
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1"/>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO"
value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO"
value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+ </nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace nmwgtopo3='http://ggf.org/ns/nmwg/topology/base/3.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace nmtm='http://ggf.org/ns/nmwg/time/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/stat/2.0/";)
+and
+((//nmwg:message/nmwg:metadata/flow:subject/nmwgtopo3:network/nmwgtopo3:node[@id="router2"]/nmwgtopo3:hostName)="xsr03.asd002a.surf.net")</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="rawFlows-invalid event Type"><con:settings/><con:config
xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="rawFlows-invalid event
Type"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:message id="msg1" type="SetupDataRequest"
+xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
+xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
+xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
+xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
+xmlns:raw="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";
+xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";>
+
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+ <nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+ <nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/rawWRONG/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1">
+
+ <nmwg:parameter name="filterRule">ip 194.171.26.203</nmwg:parameter>
+ <nmwg:parameter name="showFieldTimeFirstSeen"/><nmwg:parameter
name="showFieldTimeLastSeen"/><nmwg:parameter
name="showFieldProtocol"/><nmwg:parameter
name="showFieldSrcAddress"/><nmwg:parameter
name="showFieldSrcPort"/><nmwg:parameter
name="showFieldDstAddress"/><nmwg:parameter
name="showFieldDstPort"/><nmwg:parameter
name="showFieldPackets"/><nmwg:parameter
name="showFieldBytes"/></flow:parameters>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO" value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO" value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+
+</nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="filterRule")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="filterRule"]
eq "ip 194.171.26.203")
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";)</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="topFlows-invalid event Type"><con:settings/><con:config
xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="topFlows-invalid event
Type"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+ <nmwg:message id="msg1" type="SetupDataRequest"
xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
xmlns:top="http://ggf.org/ns/nmwg/tools/flow/top/2.0/";>
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+
<nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+
<nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/topWRONG/2.0/</nmwg:eventType>

+ </nmwg:metadata>
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1">
+ <nmwg:parameter name="topStatistic">Srcip</nmwg:parameter>

+ <nmwg:parameter name="orderBy">Bytes</nmwg:parameter>
+ <nmwg:parameter name="splitProtocol">no</nmwg:parameter>

+ <nmwg:parameter name="topN">10</nmwg:parameter>

+ </flow:parameters>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO"
value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO"
value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+ </nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace nmwgtopo3='http://ggf.org/ns/nmwg/topology/base/3.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace nmtm='http://ggf.org/ns/nmwg/time/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/top/2.0/";)
+and
+((//nmwg:message/nmwg:metadata/flow:subject/nmwgtopo3:network/nmwgtopo3:node[@id="router2"]/nmwgtopo3:hostName)="xsr03.asd002a.surf.net")
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="topStatistic")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="topStatistic"]
eq
"Srcip")</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="flowStatistics-invalid event
Type"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="flowStatistics-invalid event
Type"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:message id="msg1" type="SetupDataRequest"
xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
xmlns:stat="http://ggf.org/ns/nmwg/tools/flow/stat/2.0/";>
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+
<nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+
<nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/statWRONG/2.0/</nmwg:eventType>

+ </nmwg:metadata>
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1"/>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO"
value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO"
value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+ </nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace nmwgtopo3='http://ggf.org/ns/nmwg/topology/base/3.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace nmtm='http://ggf.org/ns/nmwg/time/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/stat/2.0/";)
+and
+((//nmwg:message/nmwg:metadata/flow:subject/nmwgtopo3:network/nmwgtopo3:node[@id="router2"]/nmwgtopo3:hostName)="xsr03.asd002a.surf.net")</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="rawFlows-no metadataIdRef in flow filter
metadata"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="rawFlows-no metadataIdRef in flow filter
metadata"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:message id="msg1" type="SetupDataRequest"
+xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
+xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
+xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
+xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
+xmlns:raw="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";
+xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";>
+
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+ <nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+ <nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/raw/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2"/>
+ <flow:parameters id="flowparamid1">
+
+ <nmwg:parameter name="filterRule">ip 194.171.26.203</nmwg:parameter>
+ <nmwg:parameter name="showFieldTimeFirstSeen"/><nmwg:parameter
name="showFieldTimeLastSeen"/><nmwg:parameter
name="showFieldProtocol"/><nmwg:parameter
name="showFieldSrcAddress"/><nmwg:parameter
name="showFieldSrcPort"/><nmwg:parameter
name="showFieldDstAddress"/><nmwg:parameter
name="showFieldDstPort"/><nmwg:parameter
name="showFieldPackets"/><nmwg:parameter
name="showFieldBytes"/></flow:parameters>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO" value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO" value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+
+</nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="filterRule")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="filterRule"]
eq "ip 194.171.26.203")
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";)</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="topFlows-no metadataIdRef in flow filter
metadata"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="topFlows-no metadataIdRef in flow filter
metadata"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+ <nmwg:message id="msg1" type="SetupDataRequest"
xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
xmlns:top="http://ggf.org/ns/nmwg/tools/flow/top/2.0/";>
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+
<nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+
<nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/top/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2"/>
+ <flow:parameters id="flowparamid1">
+ <nmwg:parameter name="topStatistic">Srcip</nmwg:parameter>

+ <nmwg:parameter name="orderBy">Bytes</nmwg:parameter>
+ <nmwg:parameter name="splitProtocol">no</nmwg:parameter>

+ <nmwg:parameter name="topN">10</nmwg:parameter>

+ </flow:parameters>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO"
value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO"
value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+ </nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace nmwgtopo3='http://ggf.org/ns/nmwg/topology/base/3.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace nmtm='http://ggf.org/ns/nmwg/time/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/top/2.0/";)
+and
+((//nmwg:message/nmwg:metadata/flow:subject/nmwgtopo3:network/nmwgtopo3:node[@id="router2"]/nmwgtopo3:hostName)="xsr03.asd002a.surf.net")
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="topStatistic")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="topStatistic"]
eq
"Srcip")</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="flowStatistics-no metadataIdRef in flow filter
metadata"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="flowStatistics-no metadataIdRef in flow filter
metadata"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:message id="msg1" type="SetupDataRequest"
xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
xmlns:stat="http://ggf.org/ns/nmwg/tools/flow/stat/2.0/";>
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+
<nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+
<nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/stat/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2"/>
+ <flow:parameters id="flowparamid1"/>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO"
value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO"
value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+ </nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace nmwgtopo3='http://ggf.org/ns/nmwg/topology/base/3.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace nmtm='http://ggf.org/ns/nmwg/time/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/stat/2.0/";)
+and
+((//nmwg:message/nmwg:metadata/flow:subject/nmwgtopo3:network/nmwgtopo3:node[@id="router2"]/nmwgtopo3:hostName)="xsr03.asd002a.surf.net")</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="rawFlows-wrong metadataIdRef in flow filter
metadata"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="rawFlows-wrong metadataIdRef in flow filter
metadata"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:message id="msg1" type="SetupDataRequest"
+xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
+xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
+xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
+xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
+xmlns:raw="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";
+xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";>
+
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+ <nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+ <nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/raw/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1">
+
+ <nmwg:parameter name="filterRule">ip 194.171.26.203</nmwg:parameter>
+ <nmwg:parameter name="showFieldTimeFirstSeen"/><nmwg:parameter
name="showFieldTimeLastSeen"/><nmwg:parameter
name="showFieldProtocol"/><nmwg:parameter
name="showFieldSrcAddress"/><nmwg:parameter
name="showFieldSrcPort"/><nmwg:parameter
name="showFieldDstAddress"/><nmwg:parameter
name="showFieldDstPort"/><nmwg:parameter
name="showFieldPackets"/><nmwg:parameter
name="showFieldBytes"/></flow:parameters>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="WRONG"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO" value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO" value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+
+</nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="filterRule")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="filterRule"]
eq "ip 194.171.26.203")
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";)</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="topFlows-wrong metadataIdRef in flow filter
metadata"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="topFlows-wrong metadataIdRef in flow filter
metadata"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+ <nmwg:message id="msg1" type="SetupDataRequest"
xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
xmlns:top="http://ggf.org/ns/nmwg/tools/flow/top/2.0/";>
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+
<nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+
<nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/top/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1">
+ <nmwg:parameter name="topStatistic">Srcip</nmwg:parameter>

+ <nmwg:parameter name="orderBy">Bytes</nmwg:parameter>
+ <nmwg:parameter name="splitProtocol">no</nmwg:parameter>

+ <nmwg:parameter name="topN">10</nmwg:parameter>

+ </flow:parameters>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="WRONG"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO"
value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO"
value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+ </nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace nmwgtopo3='http://ggf.org/ns/nmwg/topology/base/3.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace nmtm='http://ggf.org/ns/nmwg/time/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/top/2.0/";)
+and
+((//nmwg:message/nmwg:metadata/flow:subject/nmwgtopo3:network/nmwgtopo3:node[@id="router2"]/nmwgtopo3:hostName)="xsr03.asd002a.surf.net")
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="topStatistic")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="topStatistic"]
eq
"Srcip")</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="flowStatistics-wrong metadataIdRef in flow filter
metadata"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="flowStatistics-wrong metadataIdRef in flow filter
metadata"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:message id="msg1" type="SetupDataRequest"
xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
xmlns:stat="http://ggf.org/ns/nmwg/tools/flow/stat/2.0/";>
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+
<nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+
<nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/stat/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="WRONG"/>
+ <flow:parameters id="flowparamid1"/>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO"
value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO"
value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+ </nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace nmwgtopo3='http://ggf.org/ns/nmwg/topology/base/3.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace nmtm='http://ggf.org/ns/nmwg/time/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/stat/2.0/";)
+and
+((//nmwg:message/nmwg:metadata/flow:subject/nmwgtopo3:network/nmwgtopo3:node[@id="router2"]/nmwgtopo3:hostName)="xsr03.asd002a.surf.net")</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="rawFlows-wrong metadataIdRef in filter
metadata"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="rawFlows-wrong metadataIdRef in filter
metadata"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:message id="msg1" type="SetupDataRequest"
+xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
+xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
+xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
+xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
+xmlns:raw="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";
+xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";>
+
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+ <nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+ <nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/raw/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1">
+
+ <nmwg:parameter name="filterRule">ip 194.171.26.203</nmwg:parameter>
+ <nmwg:parameter name="showFieldTimeFirstSeen"/><nmwg:parameter
name="showFieldTimeLastSeen"/><nmwg:parameter
name="showFieldProtocol"/><nmwg:parameter
name="showFieldSrcAddress"/><nmwg:parameter
name="showFieldSrcPort"/><nmwg:parameter
name="showFieldDstAddress"/><nmwg:parameter
name="showFieldDstPort"/><nmwg:parameter
name="showFieldPackets"/><nmwg:parameter
name="showFieldBytes"/></flow:parameters>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="WRONG"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO" value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO" value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+
+</nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="filterRule")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="filterRule"]
eq "ip 194.171.26.203")
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";)</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="topFlows-wrong metadataIdRef in filter
metadata"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="topFlows-wrong metadataIdRef in filter
metadata"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+ <nmwg:message id="msg1" type="SetupDataRequest"
xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
xmlns:top="http://ggf.org/ns/nmwg/tools/flow/top/2.0/";>
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+
<nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+
<nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/top/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1">
+ <nmwg:parameter name="topStatistic">Srcip</nmwg:parameter>

+ <nmwg:parameter name="orderBy">Bytes</nmwg:parameter>
+ <nmwg:parameter name="splitProtocol">no</nmwg:parameter>

+ <nmwg:parameter name="topN">10</nmwg:parameter>

+ </flow:parameters>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="WRONG"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO"
value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO"
value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+ </nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace nmwgtopo3='http://ggf.org/ns/nmwg/topology/base/3.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace nmtm='http://ggf.org/ns/nmwg/time/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/top/2.0/";)
+and
+((//nmwg:message/nmwg:metadata/flow:subject/nmwgtopo3:network/nmwgtopo3:node[@id="router2"]/nmwgtopo3:hostName)="xsr03.asd002a.surf.net")
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="topStatistic")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="topStatistic"]
eq
"Srcip")</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="flowStatistics-wrong metadataIdRef in filter
metadata"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="flowStatistics-wrong metadataIdRef in filter
metadata"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:message id="msg1" type="SetupDataRequest"
xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
xmlns:stat="http://ggf.org/ns/nmwg/tools/flow/stat/2.0/";>
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+
<nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+
<nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/stat/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1"/>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="WRONG"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO"
value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO"
value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+ </nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace nmwgtopo3='http://ggf.org/ns/nmwg/topology/base/3.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace nmtm='http://ggf.org/ns/nmwg/time/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/stat/2.0/";)
+and
+((//nmwg:message/nmwg:metadata/flow:subject/nmwgtopo3:network/nmwgtopo3:node[@id="router2"]/nmwgtopo3:hostName)="xsr03.asd002a.surf.net")</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="rawFlows-subject element missing from filter
metadata"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="rawFlows-subject element missing from filter
metadata"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:message id="msg1" type="SetupDataRequest"
+xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
+xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
+xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
+xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
+xmlns:raw="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";
+xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";>
+
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+ <nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+ <nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/raw/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1">
+
+ <nmwg:parameter name="filterRule">ip 194.171.26.203</nmwg:parameter>
+ <nmwg:parameter name="showFieldTimeFirstSeen"/><nmwg:parameter
name="showFieldTimeLastSeen"/><nmwg:parameter
name="showFieldProtocol"/><nmwg:parameter
name="showFieldSrcAddress"/><nmwg:parameter
name="showFieldSrcPort"/><nmwg:parameter
name="showFieldDstAddress"/><nmwg:parameter
name="showFieldDstPort"/><nmwg:parameter
name="showFieldPackets"/><nmwg:parameter
name="showFieldBytes"/></flow:parameters>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta3">
+
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO" value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO" value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+
+</nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="filterRule")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="filterRule"]
eq "ip 194.171.26.203")
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";)</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="topFlows-subject element missing from filter
metadata"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="topFlows-subject element missing from filter
metadata"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+ <nmwg:message id="msg1" type="SetupDataRequest"
xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
xmlns:top="http://ggf.org/ns/nmwg/tools/flow/top/2.0/";>
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+
<nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+
<nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/top/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1">
+ <nmwg:parameter name="topStatistic">Srcip</nmwg:parameter>

+ <nmwg:parameter name="orderBy">Bytes</nmwg:parameter>
+ <nmwg:parameter name="splitProtocol">no</nmwg:parameter>

+ <nmwg:parameter name="topN">10</nmwg:parameter>

+ </flow:parameters>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta3">
+
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO"
value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO"
value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+ </nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace nmwgtopo3='http://ggf.org/ns/nmwg/topology/base/3.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace nmtm='http://ggf.org/ns/nmwg/time/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/top/2.0/";)
+and
+((//nmwg:message/nmwg:metadata/flow:subject/nmwgtopo3:network/nmwgtopo3:node[@id="router2"]/nmwgtopo3:hostName)="xsr03.asd002a.surf.net")
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="topStatistic")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="topStatistic"]
eq
"Srcip")</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="flowStatistics-subject element missing from filter
metadata"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="flowStatistics-subject element missing from filter
metadata"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:message id="msg1" type="SetupDataRequest"
xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
xmlns:stat="http://ggf.org/ns/nmwg/tools/flow/stat/2.0/";>
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+
<nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+
<nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/stat/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1"/>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta3">
+
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO"
value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO"
value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+ </nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace nmwgtopo3='http://ggf.org/ns/nmwg/topology/base/3.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace nmtm='http://ggf.org/ns/nmwg/time/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/stat/2.0/";)
+and
+((//nmwg:message/nmwg:metadata/flow:subject/nmwgtopo3:network/nmwgtopo3:node[@id="router2"]/nmwgtopo3:hostName)="xsr03.asd002a.surf.net")</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="rawFlows-no parameter elements in filter
metadata"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="rawFlows-no parameter elements in filter
metadata"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:message id="msg1" type="SetupDataRequest"
+xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
+xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
+xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
+xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
+xmlns:raw="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";
+xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";>
+
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+ <nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+ <nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/raw/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1">
+
+ <nmwg:parameter name="filterRule">ip 194.171.26.203</nmwg:parameter>
+ <nmwg:parameter name="showFieldTimeFirstSeen"/><nmwg:parameter
name="showFieldTimeLastSeen"/><nmwg:parameter
name="showFieldProtocol"/><nmwg:parameter
name="showFieldSrcAddress"/><nmwg:parameter
name="showFieldSrcPort"/><nmwg:parameter
name="showFieldDstAddress"/><nmwg:parameter
name="showFieldDstPort"/><nmwg:parameter
name="showFieldPackets"/><nmwg:parameter
name="showFieldBytes"/></flow:parameters>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+
+ </select:parameters>
+ </nmwg:metadata>
+
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+
+</nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="filterRule")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="filterRule"]
eq "ip 194.171.26.203")
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";)</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="topFlows-no parameter elements in filter
metadata"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="topFlows-no parameter elements in filter
metadata"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+ <nmwg:message id="msg1" type="SetupDataRequest"
xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
xmlns:top="http://ggf.org/ns/nmwg/tools/flow/top/2.0/";>
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+
<nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+
<nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/top/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1">
+ <nmwg:parameter name="topStatistic">Srcip</nmwg:parameter>

+ <nmwg:parameter name="orderBy">Bytes</nmwg:parameter>
+ <nmwg:parameter name="splitProtocol">no</nmwg:parameter>

+ <nmwg:parameter name="topN">10</nmwg:parameter>

+ </flow:parameters>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+
+ </select:parameters>
+ </nmwg:metadata>
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+ </nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace nmwgtopo3='http://ggf.org/ns/nmwg/topology/base/3.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace nmtm='http://ggf.org/ns/nmwg/time/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/top/2.0/";)
+and
+((//nmwg:message/nmwg:metadata/flow:subject/nmwgtopo3:network/nmwgtopo3:node[@id="router2"]/nmwgtopo3:hostName)="xsr03.asd002a.surf.net")
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="topStatistic")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="topStatistic"]
eq
"Srcip")</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="flowStatistics-no parameter elements in filter
metadata"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="flowStatistics-no parameter elements in filter
metadata"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:message id="msg1" type="SetupDataRequest"
xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
xmlns:stat="http://ggf.org/ns/nmwg/tools/flow/stat/2.0/";>
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+
<nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+
<nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/stat/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1"/>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+
+ </select:parameters>
+ </nmwg:metadata>
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+ </nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace nmwgtopo3='http://ggf.org/ns/nmwg/topology/base/3.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace nmtm='http://ggf.org/ns/nmwg/time/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/stat/2.0/";)
+and
+((//nmwg:message/nmwg:metadata/flow:subject/nmwgtopo3:network/nmwgtopo3:node[@id="router2"]/nmwgtopo3:hostName)="xsr03.asd002a.surf.net")</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="rawFlows-wrong parameter name in filter
metadata"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="rawFlows-wrong parameter name in filter
metadata"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:message id="msg1" type="SetupDataRequest"
+xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
+xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
+xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
+xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
+xmlns:raw="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";
+xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";>
+
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+ <nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+ <nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/raw/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1">
+
+ <nmwg:parameter name="filterRule">ip 194.171.26.203</nmwg:parameter>
+ <nmwg:parameter name="showFieldTimeFirstSeen"/><nmwg:parameter
name="showFieldTimeLastSeen"/><nmwg:parameter
name="showFieldProtocol"/><nmwg:parameter
name="showFieldSrcAddress"/><nmwg:parameter
name="showFieldSrcPort"/><nmwg:parameter
name="showFieldDstAddress"/><nmwg:parameter
name="showFieldDstPort"/><nmwg:parameter
name="showFieldPackets"/><nmwg:parameter
name="showFieldBytes"/></flow:parameters>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTimeWRONG">
+ <nmtm:time type="ISO" value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO" value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+
+</nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="filterRule")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="filterRule"]
eq "ip 194.171.26.203")
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";)</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="topFlows-wrong parameter name in filter
metadata"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="topFlows-wrong parameter name in filter
metadata"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+ <nmwg:message id="msg1" type="SetupDataRequest"
xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
xmlns:top="http://ggf.org/ns/nmwg/tools/flow/top/2.0/";>
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+
<nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+
<nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/top/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1">
+ <nmwg:parameter name="topStatistic">Srcip</nmwg:parameter>

+ <nmwg:parameter name="orderBy">Bytes</nmwg:parameter>
+ <nmwg:parameter name="splitProtocol">no</nmwg:parameter>

+ <nmwg:parameter name="topN">10</nmwg:parameter>

+ </flow:parameters>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTimeWRONG">
+ <nmtm:time type="ISO"
value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO"
value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+ </nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace nmwgtopo3='http://ggf.org/ns/nmwg/topology/base/3.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace nmtm='http://ggf.org/ns/nmwg/time/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/top/2.0/";)
+and
+((//nmwg:message/nmwg:metadata/flow:subject/nmwgtopo3:network/nmwgtopo3:node[@id="router2"]/nmwgtopo3:hostName)="xsr03.asd002a.surf.net")
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="topStatistic")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="topStatistic"]
eq
"Srcip")</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="flowStatistics-wrong parameter name in filter
metadata"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="flowStatistics-wrong parameter name in filter
metadata"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:message id="msg1" type="SetupDataRequest"
xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
xmlns:stat="http://ggf.org/ns/nmwg/tools/flow/stat/2.0/";>
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+
<nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+
<nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/stat/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1"/>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTimeWRONG">
+ <nmtm:time type="ISO"
value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO"
value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+ </nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace nmwgtopo3='http://ggf.org/ns/nmwg/topology/base/3.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace nmtm='http://ggf.org/ns/nmwg/time/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/stat/2.0/";)
+and
+((//nmwg:message/nmwg:metadata/flow:subject/nmwgtopo3:network/nmwgtopo3:node[@id="router2"]/nmwgtopo3:hostName)="xsr03.asd002a.surf.net")</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="rawFlows-wrong parameter type in filter
metadata"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="rawFlows-wrong parameter type in filter
metadata"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:message id="msg1" type="SetupDataRequest"
+xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
+xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
+xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
+xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
+xmlns:raw="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";
+xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";>
+
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+ <nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+ <nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/raw/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1">
+
+ <nmwg:parameter name="filterRule">ip 194.171.26.203</nmwg:parameter>
+ <nmwg:parameter name="showFieldTimeFirstSeen"/><nmwg:parameter
name="showFieldTimeLastSeen"/><nmwg:parameter
name="showFieldProtocol"/><nmwg:parameter
name="showFieldSrcAddress"/><nmwg:parameter
name="showFieldSrcPort"/><nmwg:parameter
name="showFieldDstAddress"/><nmwg:parameter
name="showFieldDstPort"/><nmwg:parameter
name="showFieldPackets"/><nmwg:parameter
name="showFieldBytes"/></flow:parameters>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO-MIKI" value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO-MIKI" value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+
+</nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="filterRule")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="filterRule"]
eq "ip 194.171.26.203")
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";)</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="topFlows-wrong parameter type in filter
metadata"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="topFlows-wrong parameter type in filter
metadata"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+ <nmwg:message id="msg1" type="SetupDataRequest"
xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
xmlns:top="http://ggf.org/ns/nmwg/tools/flow/top/2.0/";>
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+
<nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+
<nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/top/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1">
+ <nmwg:parameter name="topStatistic">Srcip</nmwg:parameter>

+ <nmwg:parameter name="orderBy">Bytes</nmwg:parameter>
+ <nmwg:parameter name="splitProtocol">no</nmwg:parameter>

+ <nmwg:parameter name="topN">10</nmwg:parameter>

+ </flow:parameters>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO-MIKI"
value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO-MIKI"
value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+ </nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace nmwgtopo3='http://ggf.org/ns/nmwg/topology/base/3.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace nmtm='http://ggf.org/ns/nmwg/time/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/top/2.0/";)
+and
+((//nmwg:message/nmwg:metadata/flow:subject/nmwgtopo3:network/nmwgtopo3:node[@id="router2"]/nmwgtopo3:hostName)="xsr03.asd002a.surf.net")
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="topStatistic")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="topStatistic"]
eq
"Srcip")</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="flowStatistics-wrong parameter type in filter
metadata"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="flowStatistics-wrong parameter type in filter
metadata"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:message id="msg1" type="SetupDataRequest"
xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
xmlns:stat="http://ggf.org/ns/nmwg/tools/flow/stat/2.0/";>
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+
<nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+
<nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/stat/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1"/>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO-MIKI"
value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO-MIKI"
value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+ </nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace nmwgtopo3='http://ggf.org/ns/nmwg/topology/base/3.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace nmtm='http://ggf.org/ns/nmwg/time/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/stat/2.0/";)
+and
+((//nmwg:message/nmwg:metadata/flow:subject/nmwgtopo3:network/nmwgtopo3:node[@id="router2"]/nmwgtopo3:hostName)="xsr03.asd002a.surf.net")</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="rawFlows-wrong metadataIdRef in
data"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="rawFlows-wrong metadataIdRef in
data"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:message id="msg1" type="SetupDataRequest"
+xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
+xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
+xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
+xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
+xmlns:raw="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";
+xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";>
+
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+ <nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+ <nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/raw/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1">
+
+ <nmwg:parameter name="filterRule">ip 194.171.26.203</nmwg:parameter>
+ <nmwg:parameter name="showFieldTimeFirstSeen"/><nmwg:parameter
name="showFieldTimeLastSeen"/><nmwg:parameter
name="showFieldProtocol"/><nmwg:parameter
name="showFieldSrcAddress"/><nmwg:parameter
name="showFieldSrcPort"/><nmwg:parameter
name="showFieldDstAddress"/><nmwg:parameter
name="showFieldDstPort"/><nmwg:parameter
name="showFieldPackets"/><nmwg:parameter
name="showFieldBytes"/></flow:parameters>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO" value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO" value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+
+ <nmwg:data id="data1" metadataIdRef="meta3WRONG"/>
+
+</nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="filterRule")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="filterRule"]
eq "ip 194.171.26.203")
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";)</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="rawFlows-no metadataIdRef in
data"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="rawFlows-no metadataIdRef in
data"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:message id="msg1" type="SetupDataRequest"
+xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
+xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
+xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
+xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
+xmlns:raw="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";
+xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";>
+
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+ <nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+ <nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/raw/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1">
+
+ <nmwg:parameter name="filterRule">ip 194.171.26.203</nmwg:parameter>
+ <nmwg:parameter name="showFieldTimeFirstSeen"/><nmwg:parameter
name="showFieldTimeLastSeen"/><nmwg:parameter
name="showFieldProtocol"/><nmwg:parameter
name="showFieldSrcAddress"/><nmwg:parameter
name="showFieldSrcPort"/><nmwg:parameter
name="showFieldDstAddress"/><nmwg:parameter
name="showFieldDstPort"/><nmwg:parameter
name="showFieldPackets"/><nmwg:parameter
name="showFieldBytes"/></flow:parameters>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO" value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO" value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+
+ <nmwg:data id="data1"/>
+
+</nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="filterRule")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="filterRule"]
eq "ip 194.171.26.203")
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";)</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="topFlows-wrong metadataIdRef in
data"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="topFlows-wrong metadataIdRef in
data"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+ <nmwg:message id="msg1" type="SetupDataRequest"
xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
xmlns:top="http://ggf.org/ns/nmwg/tools/flow/top/2.0/";>
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+
<nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+
<nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/top/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1">
+ <nmwg:parameter name="topStatistic">Srcip</nmwg:parameter>

+ <nmwg:parameter name="orderBy">Bytes</nmwg:parameter>
+ <nmwg:parameter name="splitProtocol">no</nmwg:parameter>

+ <nmwg:parameter name="topN">10</nmwg:parameter>

+ </flow:parameters>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO"
value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO"
value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+ <nmwg:data id="data1" metadataIdRef="meta3WRONG"/>
+ </nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace nmwgtopo3='http://ggf.org/ns/nmwg/topology/base/3.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace nmtm='http://ggf.org/ns/nmwg/time/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/top/2.0/";)
+and
+((//nmwg:message/nmwg:metadata/flow:subject/nmwgtopo3:network/nmwgtopo3:node[@id="router2"]/nmwgtopo3:hostName)="xsr03.asd002a.surf.net")
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="topStatistic")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="topStatistic"]
eq
"Srcip")</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="topFlows-no metadataIdRef in
data"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="topFlows-no metadataIdRef in
data"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+ <nmwg:message id="msg1" type="SetupDataRequest"
xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
xmlns:top="http://ggf.org/ns/nmwg/tools/flow/top/2.0/";>
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+
<nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+
<nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/top/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1">
+ <nmwg:parameter name="topStatistic">Srcip</nmwg:parameter>

+ <nmwg:parameter name="orderBy">Bytes</nmwg:parameter>
+ <nmwg:parameter name="splitProtocol">no</nmwg:parameter>

+ <nmwg:parameter name="topN">10</nmwg:parameter>

+ </flow:parameters>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO"
value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO"
value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+ <nmwg:data id="data1"/>
+ </nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace nmwgtopo3='http://ggf.org/ns/nmwg/topology/base/3.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace nmtm='http://ggf.org/ns/nmwg/time/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/top/2.0/";)
+and
+((//nmwg:message/nmwg:metadata/flow:subject/nmwgtopo3:network/nmwgtopo3:node[@id="router2"]/nmwgtopo3:hostName)="xsr03.asd002a.surf.net")
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="topStatistic")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="topStatistic"]
eq
"Srcip")</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="flowStatistics-wrong metadataIdRef in
data"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="flowStatistics-wrong metadataIdRef in
data"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:message id="msg1" type="SetupDataRequest"
xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
xmlns:stat="http://ggf.org/ns/nmwg/tools/flow/stat/2.0/";>
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+
<nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+
<nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/stat/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1"/>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO"
value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO"
value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+ <nmwg:data id="data1" metadataIdRef="meta3WRONG"/>
+ </nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace nmwgtopo3='http://ggf.org/ns/nmwg/topology/base/3.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace nmtm='http://ggf.org/ns/nmwg/time/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/stat/2.0/";)
+and
+((//nmwg:message/nmwg:metadata/flow:subject/nmwgtopo3:network/nmwgtopo3:node[@id="router2"]/nmwgtopo3:hostName)="xsr03.asd002a.surf.net")</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="flowStatistics-no metadataIdRef in
data"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="flowStatistics-no metadataIdRef in
data"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:message id="msg1" type="SetupDataRequest"
xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
xmlns:stat="http://ggf.org/ns/nmwg/tools/flow/stat/2.0/";>
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+
<nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+
<nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/stat/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1"/>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO"
value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO"
value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+ <nmwg:data id="data1"/>
+ </nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace nmwgtopo3='http://ggf.org/ns/nmwg/topology/base/3.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace nmtm='http://ggf.org/ns/nmwg/time/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/stat/2.0/";)
+and
+((//nmwg:message/nmwg:metadata/flow:subject/nmwgtopo3:network/nmwgtopo3:node[@id="router2"]/nmwgtopo3:hostName)="xsr03.asd002a.surf.net")</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:properties/></con:testCase><con:properties/></con:testSuite><con:testSuite
name="Requests with invalid or near valid
data"><con:settings/><con:runType>SEQUENTIAL</con:runType><con:testCase
failOnError="true" failTestCaseOnErrors="true" keepSession="false" name="Test
Steps" searchProperties="true"><con:settings/><con:testStep type="request"
name="rawFlows-start time bigger than end time"><con:settings/><con:config
xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="rawFlows-start time bigger than end
time"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://sche
mas.xmlsoap.org/soap/envelope/" xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:message id="msg1" type="SetupDataRequest"
+xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
+xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
+xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
+xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
+xmlns:raw="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";
+xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";>
+
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+ <nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+ <nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/raw/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1">
+
+ <nmwg:parameter name="filterRule">ip 194.171.26.203</nmwg:parameter>
+ <nmwg:parameter name="showFieldTimeFirstSeen"/><nmwg:parameter
name="showFieldTimeLastSeen"/><nmwg:parameter
name="showFieldProtocol"/><nmwg:parameter
name="showFieldSrcAddress"/><nmwg:parameter
name="showFieldSrcPort"/><nmwg:parameter
name="showFieldDstAddress"/><nmwg:parameter
name="showFieldDstPort"/><nmwg:parameter
name="showFieldPackets"/><nmwg:parameter
name="showFieldBytes"/></flow:parameters>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO" value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO" value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+
+</nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="filterRule")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="filterRule"]
eq "ip 194.171.26.203")
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";)</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="topFlows-start time bigger than end
time"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="topFlows-start time bigger than end
time"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+ <nmwg:message id="msg1" type="SetupDataRequest"
xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
xmlns:top="http://ggf.org/ns/nmwg/tools/flow/top/2.0/";>
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+
<nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+
<nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/top/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1">
+ <nmwg:parameter name="topStatistic">Srcip</nmwg:parameter>

+ <nmwg:parameter name="orderBy">Bytes</nmwg:parameter>
+ <nmwg:parameter name="splitProtocol">no</nmwg:parameter>

+ <nmwg:parameter name="topN">10</nmwg:parameter>

+ </flow:parameters>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO"
value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO"
value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+ </nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace nmwgtopo3='http://ggf.org/ns/nmwg/topology/base/3.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace nmtm='http://ggf.org/ns/nmwg/time/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/top/2.0/";)
+and
+((//nmwg:message/nmwg:metadata/flow:subject/nmwgtopo3:network/nmwgtopo3:node[@id="router2"]/nmwgtopo3:hostName)="xsr03.asd002a.surf.net")
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="topStatistic")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="topStatistic"]
eq
"Srcip")</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="flowStatistics-start time bigger than end
time"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="flowStatistics-start time bigger than end
time"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:message id="msg1" type="SetupDataRequest"
xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
xmlns:stat="http://ggf.org/ns/nmwg/tools/flow/stat/2.0/";>
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+
<nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+
<nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/stat/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1"/>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO"
value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO"
value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+ </nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace nmwgtopo3='http://ggf.org/ns/nmwg/topology/base/3.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace nmtm='http://ggf.org/ns/nmwg/time/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/stat/2.0/";)
+and
+((//nmwg:message/nmwg:metadata/flow:subject/nmwgtopo3:network/nmwgtopo3:node[@id="router2"]/nmwgtopo3:hostName)="xsr03.asd002a.surf.net")</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="rawFlows-wrong hostname"><con:settings/><con:config
xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="rawFlows-wrong
hostname"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:message id="msg1" type="SetupDataRequest"
+xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
+xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
+xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
+xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
+xmlns:raw="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";
+xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";>
+
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+ <nmwgtopo3:hostName>wrong.xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+ <nmwgtopo3:hostName>wrong.xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/raw/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1">
+
+ <nmwg:parameter name="filterRule">ip 194.171.26.203</nmwg:parameter>
+ <nmwg:parameter name="showFieldTimeFirstSeen"/><nmwg:parameter
name="showFieldTimeLastSeen"/><nmwg:parameter
name="showFieldProtocol"/><nmwg:parameter
name="showFieldSrcAddress"/><nmwg:parameter
name="showFieldSrcPort"/><nmwg:parameter
name="showFieldDstAddress"/><nmwg:parameter
name="showFieldDstPort"/><nmwg:parameter
name="showFieldPackets"/><nmwg:parameter
name="showFieldBytes"/></flow:parameters>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO" value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO" value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+
+</nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="filterRule")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="filterRule"]
eq "ip 194.171.26.203")
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";)</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="topFlows-wrong hostname"><con:settings/><con:config
xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="topFlows-wrong
hostname"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+ <nmwg:message id="msg1" type="SetupDataRequest"
xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
xmlns:top="http://ggf.org/ns/nmwg/tools/flow/top/2.0/";>
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+
<nmwgtopo3:hostName>wrong.xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+
<nmwgtopo3:hostName>wrong.xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/top/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1">
+ <nmwg:parameter name="topStatistic">Srcip</nmwg:parameter>

+ <nmwg:parameter name="orderBy">Bytes</nmwg:parameter>
+ <nmwg:parameter name="splitProtocol">no</nmwg:parameter>

+ <nmwg:parameter name="topN">10</nmwg:parameter>

+ </flow:parameters>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO"
value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO"
value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+ </nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace nmwgtopo3='http://ggf.org/ns/nmwg/topology/base/3.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace nmtm='http://ggf.org/ns/nmwg/time/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/top/2.0/";)
+and
+((//nmwg:message/nmwg:metadata/flow:subject/nmwgtopo3:network/nmwgtopo3:node[@id="router2"]/nmwgtopo3:hostName)="xsr03.asd002a.surf.net")
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="topStatistic")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="topStatistic"]
eq
"Srcip")</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="flowStatistics-wrong
hostname"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="flowStatistics-wrong
hostname"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:message id="msg1" type="SetupDataRequest"
xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
xmlns:stat="http://ggf.org/ns/nmwg/tools/flow/stat/2.0/";>
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+
<nmwgtopo3:hostName>wrong.xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+
<nmwgtopo3:hostName>wrong.xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/stat/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1"/>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO"
value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO"
value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+ </nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace nmwgtopo3='http://ggf.org/ns/nmwg/topology/base/3.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace nmtm='http://ggf.org/ns/nmwg/time/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/stat/2.0/";)
+and
+((//nmwg:message/nmwg:metadata/flow:subject/nmwgtopo3:network/nmwgtopo3:node[@id="router2"]/nmwgtopo3:hostName)="xsr03.asd002a.surf.net")</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="rawFlows-wrong filter"><con:settings/><con:config
xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="rawFlows-wrong
filter"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:message id="msg1" type="SetupDataRequest"
+xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
+xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
+xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
+xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
+xmlns:raw="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";
+xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";>
+
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+ <nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+ <nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/raw/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1">
+
+ <nmwg:parameter name="filterRule">ipWRONG
194.171.26.203</nmwg:parameter>
+ <nmwg:parameter name="showFieldTimeFirstSeen"/><nmwg:parameter
name="showFieldTimeLastSeen"/><nmwg:parameter
name="showFieldProtocol"/><nmwg:parameter
name="showFieldSrcAddress"/><nmwg:parameter
name="showFieldSrcPort"/><nmwg:parameter
name="showFieldDstAddress"/><nmwg:parameter
name="showFieldDstPort"/><nmwg:parameter
name="showFieldPackets"/><nmwg:parameter
name="showFieldBytes"/></flow:parameters>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO" value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO" value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+
+</nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="filterRule")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="filterRule"]
eq "ip 194.171.26.203")
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";)</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="topFlows-wrong filter"><con:settings/><con:config
xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="topFlows-wrong
filter"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+ <nmwg:message id="msg1" type="SetupDataRequest"
xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";
xmlns:top="http://ggf.org/ns/nmwg/tools/flow/top/2.0/";>
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+
<nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+
<nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/top/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1">
+ <nmwg:parameter
name="topStatistic">SrcipWRONG</nmwg:parameter>
+ <nmwg:parameter name="orderBy">Bytes</nmwg:parameter>
+ <nmwg:parameter name="splitProtocol">no</nmwg:parameter>

+ <nmwg:parameter name="topN">10</nmwg:parameter>

+ </flow:parameters>
+ </nmwg:metadata>
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO"
value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO"
value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+ </nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace nmwgtopo3='http://ggf.org/ns/nmwg/topology/base/3.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace nmtm='http://ggf.org/ns/nmwg/time/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/top/2.0/";)
+and
+((//nmwg:message/nmwg:metadata/flow:subject/nmwgtopo3:network/nmwgtopo3:node[@id="router2"]/nmwgtopo3:hostName)="xsr03.asd002a.surf.net")
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="topStatistic")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="topStatistic"]
eq
"Srcip")</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="rawFlows-wrong hostame for 1 out of 2
nodes"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="rawFlows-wrong hostame for 1 out of 2
nodes"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:message id="msg1" type="SetupDataRequest"
+xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
+xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
+xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
+xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
+xmlns:raw="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";
+xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";>
+
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+ <nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+ <nmwgtopo3:hostName>WRONG.xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/raw/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1">
+
+ <nmwg:parameter name="filterRule">ip 194.171.26.203</nmwg:parameter>
+ <nmwg:parameter name="showFieldTimeFirstSeen"/><nmwg:parameter
name="showFieldTimeLastSeen"/><nmwg:parameter
name="showFieldProtocol"/><nmwg:parameter
name="showFieldSrcAddress"/><nmwg:parameter
name="showFieldSrcPort"/><nmwg:parameter
name="showFieldDstAddress"/><nmwg:parameter
name="showFieldDstPort"/><nmwg:parameter
name="showFieldPackets"/><nmwg:parameter
name="showFieldBytes"/></flow:parameters>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO" value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO" value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+
+</nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="filterRule")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="filterRule"]
eq "ip 194.171.26.203")
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";)</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="rawFlows-wrong hostame for 1 out of 2
nodes-REVERSE"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="rawFlows-wrong hostame for 1 out of 2
nodes-REVERSE"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:message id="msg1" type="SetupDataRequest"
+xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
+xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
+xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
+xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
+xmlns:raw="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";
+xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";>
+
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+ <nmwgtopo3:hostName>WRONG.xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+ <nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/raw/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1">
+
+ <nmwg:parameter name="filterRule">ip 194.171.26.203</nmwg:parameter>
+ <nmwg:parameter name="showFieldTimeFirstSeen"/><nmwg:parameter
name="showFieldTimeLastSeen"/><nmwg:parameter
name="showFieldProtocol"/><nmwg:parameter
name="showFieldSrcAddress"/><nmwg:parameter
name="showFieldSrcPort"/><nmwg:parameter
name="showFieldDstAddress"/><nmwg:parameter
name="showFieldDstPort"/><nmwg:parameter
name="showFieldPackets"/><nmwg:parameter
name="showFieldBytes"/></flow:parameters>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO" value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO" value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+
+</nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="filterRule")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="filterRule"]
eq "ip 194.171.26.203")
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";)</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:testStep
type="request" name="rawFlows-wrong portion of the
filter"><con:settings/><con:config xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>SetupDataRequest</con:interface><con:operation>SetupData</con:operation><con:request
name="rawFlows-wrong portion of the
filter"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://sonar1.amsterdam.surfnet.nl:8080/surfnet_java-flowsa-ma/services/FlowsaMeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";>
+ <soapenv:Header/>
+ <soapenv:Body>
+<nmwg:message id="msg1" type="SetupDataRequest"
+xmlns:flow="http://ggf.org/ns/nmwg/tools/flow/2.0/";
+xmlns:nmtm="http://ggf.org/ns/nmwg/time/2.0/";
+xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
+xmlns:nmwgtopo3="http://ggf.org/ns/nmwg/topology/base/3.0/";
+xmlns:raw="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";
+xmlns:select="http://ggf.org/ns/nmwg/ops/select/2.0/";>
+
+ <nmwg:metadata id="meta1">
+ <flow:subject id="flowsub1">
+ <nmwgtopo3:network id="network1">
+ <nmwgtopo3:node id="router1">
+ <nmwgtopo3:hostName>xsr03.asd001a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ <nmwgtopo3:node id="router2">
+ <nmwgtopo3:hostName>xsr03.asd002a.surf.net</nmwgtopo3:hostName>
+ </nmwgtopo3:node>
+ </nmwgtopo3:network>
+ </flow:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/flow/raw/2.0/</nmwg:eventType>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta2">
+ <flow:subject id="flowsub2" metadataIdRef="meta1"/>
+ <flow:parameters id="flowparamid1">
+
+ <nmwg:parameter name="filterRule">ip 194.171.26.203 portWRONG
80</nmwg:parameter>
+ <nmwg:parameter name="showFieldTimeFirstSeen"/><nmwg:parameter
name="showFieldTimeLastSeen"/><nmwg:parameter
name="showFieldProtocol"/><nmwg:parameter
name="showFieldSrcAddress"/><nmwg:parameter
name="showFieldSrcPort"/><nmwg:parameter
name="showFieldDstAddress"/><nmwg:parameter
name="showFieldDstPort"/><nmwg:parameter
name="showFieldPackets"/><nmwg:parameter
name="showFieldBytes"/></flow:parameters>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="meta3">
+ <select:subject id="selectsub1" metadataIdRef="meta2"/>
+ <select:parameters id="selectparamid1">
+ <nmwg:parameter name="startTime">
+ <nmtm:time type="ISO" value="2008-06-12T12:00:00+0200"/>
+ </nmwg:parameter>
+ <nmwg:parameter name="endTime">
+ <nmtm:time type="ISO" value="2008-06-12T13:00:00+0200"/>
+ </nmwg:parameter>
+ </select:parameters>
+ </nmwg:metadata>
+
+ <nmwg:data id="data1" metadataIdRef="meta3"/>
+
+</nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP
Response"/><con:assertion type="SOAP Fault Assertion"/><con:assertion
type="XPath Match"><con:configuration><path>declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/';
+declare namespace flow='http://ggf.org/ns/nmwg/tools/flow/2.0/';
+declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';
+declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
+declare namespace nmwgr='http://ggf.org/ns/nmwg/result/2.0/';
+declare namespace fn="http://www.w3.org/2005/xpath-functions";;
+
+(count(//nmwg:message/nmwg:data) = count(//nmwg:message/nmwg:data))
+and
+count((//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter)="filterRule")=1
+and
+(//nmwg:message/nmwg:metadata/flow:parameters/nmwg:parameter[@name="filterRule"]
eq "ip 194.171.26.203")
+and
+(fn:string(//nmwg:message/nmwg:metadata/nmwg:eventType)="http://ggf.org/ns/nmwg/tools/flow/raw/2.0/";)</path><content>true</content><allowWildcards>false</allowWildcards></con:configuration></con:assertion><con:assertion
type="GroovyScriptAssertion"><con:configuration><scriptText>import
java.io.File;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import javax.xml.transform.*;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants
+import javax.xml.validation.SchemaFactory
+import java.io.StringWriter
+
+
+def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
+def holder = groovyUtils.getXmlHolder( messageExchange.getResponseContent());
+def factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
+def schema = factory.newSchema(new
File("../Flow/MA/SetupData/FlowsaMA.rng"));
+def validator = schema.newValidator();
+def node = holder.getDomNode("//nmwg:message")
+validator.validate(new DOMSource(node));
+</scriptText></con:configuration></con:assertion></con:request></con:config></con:testStep><con:properties/></con:testCase><con:properties/></con:testSuite><con:properties/><con:wssContainer/></con:soapui-project>
\ No newline at end of file



  • perfsonar: r4048 - trunk/functional-testing/Flow_Monitoring/FlowsaMAsoapUI, svnlog, 06/24/2008

Archive powered by MHonArc 2.6.16.

Top of Page