Removed testing and stats from the Commander jarfile during runRESOScript option, and updated RESOScript templates
This commit is contained in:
parent
cccd671c99
commit
a788bf0309
13
README.md
13
README.md
|
@ -255,7 +255,7 @@ For those wanting more information, a `log4j.properties` file may be created (as
|
|||
use the DEBUG build of the application located in `/build/libs/` identified by `-DEBUG` in the Commander jar's file name.
|
||||
|
||||
RESOScript files contain zero or more Settings, Parameters, and Requests. For example:
|
||||
```
|
||||
```xml
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<OutputScript>
|
||||
<ClientSettings>
|
||||
|
@ -287,8 +287,7 @@ The XML DTD for this schema is as follows:
|
|||
<!DOCTYPE OutputScript [
|
||||
<!ELEMENT OutputScript (RESOScriptVersion|ClientSettings|Parameters|Requests)*>
|
||||
<!ELEMENT RESOScriptVersion (#PCDATA)>
|
||||
<!ELEMENT ClientSettings
|
||||
(RESOScriptVersion|WebAPIURI|AuthenticationType|BearerToken|ClientIdentification|ClientSecret|TokenURI|ClientScope)*>
|
||||
<!ELEMENT ClientSettings (WebAPIURI|AuthenticationType|BearerToken|ClientIdentification|ClientSecret|TokenURI|ClientScope)*>
|
||||
<!ELEMENT WebAPIURI (#PCDATA)>
|
||||
<!ELEMENT AuthenticationType (#PCDATA)>
|
||||
<!ELEMENT BearerToken (#PCDATA)>
|
||||
|
@ -304,13 +303,9 @@ The XML DTD for this schema is as follows:
|
|||
<!ELEMENT Requests (Request)*>
|
||||
<!ELEMENT Request (#PCDATA)>
|
||||
<!ATTLIST Request
|
||||
Capability CDATA #REQUIRED
|
||||
MetallicLevel CDATA #REQUIRED
|
||||
OutputFile CDATA #REQUIRED
|
||||
RequirementId CDATA #REQUIRED
|
||||
TestDescription CDATA #REQUIRED
|
||||
Url CDATA #REQUIRED
|
||||
WebAPIReference CDATA #REQUIRED>
|
||||
RequestId CDATA #REQUIRED
|
||||
Url CDATA #REQUIRED>
|
||||
]>
|
||||
```
|
||||
|
||||
|
|
Binary file not shown.
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
|
||||
<!--
|
||||
|
||||
>>> To be used as a template for Web API Server 1.0.2 Gold Certification <<<
|
||||
|
||||
NOTES:
|
||||
|
@ -12,15 +12,10 @@
|
|||
Contact josh@reso.org with further questions.
|
||||
-->
|
||||
|
||||
<!--
|
||||
############################################################
|
||||
XML DTD - Must come first
|
||||
############################################################-->
|
||||
<!DOCTYPE OutputScript [
|
||||
<!ELEMENT OutputScript (RESOScriptVersion|ClientSettings|Parameters|Requests)*>
|
||||
<!ELEMENT RESOScriptVersion (#PCDATA)>
|
||||
<!ELEMENT ClientSettings
|
||||
(RESOScriptVersion|WebAPIURI|AuthenticationType|BearerToken|ClientIdentification|ClientSecret|TokenURI|ClientScope)*>
|
||||
<!ELEMENT ClientSettings (WebAPIURI|AuthenticationType|BearerToken|ClientIdentification|ClientSecret|TokenURI|ClientScope)*>
|
||||
<!ELEMENT WebAPIURI (#PCDATA)>
|
||||
<!ELEMENT AuthenticationType (#PCDATA)>
|
||||
<!ELEMENT BearerToken (#PCDATA)>
|
||||
|
@ -36,29 +31,11 @@
|
|||
<!ELEMENT Requests (Request)*>
|
||||
<!ELEMENT Request (#PCDATA)>
|
||||
<!ATTLIST Request
|
||||
Capability CDATA #REQUIRED
|
||||
MetallicLevel CDATA #REQUIRED
|
||||
OutputFile CDATA #REQUIRED
|
||||
RequirementId CDATA #REQUIRED
|
||||
TestDescription CDATA #REQUIRED
|
||||
Url CDATA #REQUIRED
|
||||
WebAPIReference CDATA #REQUIRED>
|
||||
RequestId CDATA #REQUIRED
|
||||
Url CDATA #REQUIRED>
|
||||
]>
|
||||
|
||||
<!--
|
||||
############################################################
|
||||
TODO: this document will be updated with language
|
||||
matching the OAuth 2.0 Specification and ClientSettings
|
||||
will be removed.
|
||||
|
||||
See:
|
||||
https://tools.ietf.org/html/rfc8252
|
||||
|
||||
Watch for subsequent changes to this file.
|
||||
ClientSettings will be converted to Parameters forthwith.
|
||||
############################################################-->
|
||||
|
||||
|
||||
<OutputScript>
|
||||
|
||||
<!--
|
||||
|
@ -67,7 +44,7 @@
|
|||
############################################################-->
|
||||
|
||||
<!-- The current version of this RESOScript -->
|
||||
<RESOScriptVersion>1.0.7</RESOScriptVersion>
|
||||
<RESOScriptVersion>1.1.0</RESOScriptVersion>
|
||||
|
||||
|
||||
<!--
|
||||
|
@ -261,554 +238,334 @@
|
|||
Requests Section - Queries used during testing,
|
||||
DO NOT CHANGE
|
||||
############################################################-->
|
||||
<Requests>
|
||||
<Requests>
|
||||
|
||||
<Request
|
||||
TestDescription="Metadata Endpoint"
|
||||
RequirementId="REQ-WA103-END3"
|
||||
MetallicLevel="Core"
|
||||
Capability="Core"
|
||||
WebAPIReference=""
|
||||
RequestId="REQ-WA103-END3"
|
||||
OutputFile="REQ-WA103-END3.metadata.xml"
|
||||
Url="*ClientSettings_WebAPIURI*/$metadata*Parameter_OptionalMetadataFormatParameter*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Data System"
|
||||
RequirementId="REQ-WA103-END2"
|
||||
MetallicLevel="Core"
|
||||
Capability="Core Support"
|
||||
WebAPIReference=""
|
||||
RequestId="REQ-WA103-END2"
|
||||
OutputFile="REQ-WA103-END2.datasystem.json"
|
||||
Url="*Parameter_EndpointDataSystem*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Search Parameters: Select KeyOrKeyNumeric Field"
|
||||
RequirementId="REQ-WA103-QR1"
|
||||
MetallicLevel="Core"
|
||||
Capability="Query functions"
|
||||
WebAPIReference="2.4.1"
|
||||
RequestId="REQ-WA103-QR1"
|
||||
OutputFile="REQ-WA103-QR1.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*(*Parameter_KeyOrKeyNumericValue*)?$select=*Parameter_KeyOrKeyNumericField*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $select"
|
||||
RequirementId="REQ-WA103-QR3"
|
||||
MetallicLevel="Core"
|
||||
Capability="Query functions"
|
||||
WebAPIReference="2.4.2"
|
||||
RequestId="REQ-WA103-QR3"
|
||||
OutputFile="REQ-WA103-QR3.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_FilterIntegerField* ne null and *Parameter_FilterIntegerField* gt *Parameter_FilterIntegerValueLow**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $top"
|
||||
RequirementId="REQ-WA103-QR4"
|
||||
MetallicLevel="Core"
|
||||
Capability="Client paging ($top, $skip)"
|
||||
WebAPIReference="2.4.2"
|
||||
RequestId="REQ-WA103-QR4"
|
||||
OutputFile="REQ-WA103-QR4.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_FilterIntegerField* ne null and *Parameter_FilterIntegerField* gt *Parameter_FilterIntegerValueLow**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $skip"
|
||||
RequirementId="REQ-WA103-QR5"
|
||||
MetallicLevel="Core"
|
||||
Capability="Client pageability ($top, $skip)"
|
||||
WebAPIReference="2.4.2"
|
||||
RequestId="REQ-WA103-QR5"
|
||||
OutputFile="REQ-WA103-QR5.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_FilterIntegerField* ne null and *Parameter_FilterIntegerField* gt *Parameter_FilterIntegerValueLow**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $select case-sensitivity. Expect 400 response on OData 4.0"
|
||||
RequirementId="REQ-WA103-QO1.1"
|
||||
MetallicLevel="Core"
|
||||
Capability="Core"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO1.1"
|
||||
OutputFile="REQ-WA103-QO1.1.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$SeLeCt=*Parameter_SelectList*&$filter=*Parameter_FilterIntegerField* ne null and *Parameter_FilterIntegerField* eq *Parameter_FilterIntegerValueLow**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter case-sensitivity. Expect 400 response on OData 4.0"
|
||||
RequirementId="REQ-WA103-QO1.2"
|
||||
MetallicLevel="Core"
|
||||
Capability="Core"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO1.2"
|
||||
OutputFile="REQ-WA103-QO1.2.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$FiLtEr=*Parameter_FilterIntegerField* ne null and *Parameter_FilterIntegerField* eq *Parameter_FilterIntegerValueLow**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $orderby asc case-sensitivity. Expect 400 response on OData 4.0"
|
||||
RequirementId="REQ-WA103-QO1.3"
|
||||
MetallicLevel="Core"
|
||||
Capability="Core"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO1.3"
|
||||
OutputFile="REQ-WA103-QO1.3.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_SortCount*&$select=*Parameter_FilterIntegerField*&$filter=*Parameter_FilterIntegerField* ne null and *Parameter_FilterIntegerField* gt *Parameter_FilterIntegerValueLow**Parameter_RequiredParameters*&$OrDeRbY=*Parameter_FilterIntegerField* asc"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $orderby desc case-sensitivity. Expect 400 response on OData 4.0"
|
||||
RequirementId="REQ-WA103-QO1.4"
|
||||
MetallicLevel="Core"
|
||||
Capability="Core"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO1.4"
|
||||
OutputFile="REQ-WA103-QO1.4.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_SortCount*&$select=*Parameter_FilterIntegerField*&$filter=*Parameter_FilterIntegerField* ne null and *Parameter_FilterIntegerField* gt *Parameter_FilterIntegerValueLow**Parameter_RequiredParameters*&$oRdErBy=*Parameter_FilterIntegerField* desc"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter - Integer Comparison: eq (equal)"
|
||||
RequirementId="REQ-WA103-QO2"
|
||||
MetallicLevel="Core"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO2"
|
||||
OutputFile="REQ-WA103-QO2"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_FilterIntegerField* ne null and *Parameter_FilterIntegerField* eq *Parameter_FilterIntegerValueLow**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter - Integer Comparison: ne (not equal)"
|
||||
RequirementId="REQ-WA103-QO3"
|
||||
MetallicLevel="Core"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO3"
|
||||
OutputFile="REQ-WA103-QO3"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_FilterIntegerField* ne null and *Parameter_FilterIntegerField* ne null and *Parameter_FilterIntegerField* ne *Parameter_FilterIntegerValueLow**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter - Integer Comparison: gt (greater than)"
|
||||
RequirementId="REQ-WA103-QO4"
|
||||
MetallicLevel="Core"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO4"
|
||||
OutputFile="REQ-WA103-QO4"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_FilterIntegerField* ne null and *Parameter_FilterIntegerField* gt *Parameter_FilterIntegerValueLow**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter - Integer Comparison: ge (greater or equal)"
|
||||
RequirementId="REQ-WA103-QO5"
|
||||
MetallicLevel="Core"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO5"
|
||||
OutputFile="REQ-WA103-QO5.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_FilterIntegerField* ne null and *Parameter_FilterIntegerField* ge *Parameter_FilterIntegerValueLow**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter - Integer Comparison: lt (less than)"
|
||||
RequirementId="REQ-WA103-QO6"
|
||||
MetallicLevel="Core"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO6"
|
||||
OutputFile="REQ-WA103-QO6.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_FilterIntegerField* ne null and *Parameter_FilterIntegerField* lt *Parameter_FilterIntegerValueLow**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter - Integer Comparison: le (less or equal)"
|
||||
RequirementId="REQ-WA103-QO7"
|
||||
MetallicLevel="Core"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO7"
|
||||
OutputFile="REQ-WA103-QO7.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_FilterIntegerField* ne null and *Parameter_FilterIntegerField* le *Parameter_FilterIntegerValueLow**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter - Integer Comparison: and"
|
||||
RequirementId="REQ-WA103-QO9"
|
||||
MetallicLevel="Core"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO9"
|
||||
OutputFile="REQ-WA103-QO9.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_FilterIntegerField* ne null and *Parameter_FilterIntegerField* gt *Parameter_FilterIntegerValueLow* and *Parameter_FilterIntegerField* lt *Parameter_FilterIntegerValueHigh**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter - Integer Comparison: or"
|
||||
RequirementId="REQ-WA103-QO10"
|
||||
MetallicLevel="Core"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO10"
|
||||
OutputFile="REQ-WA103-QO10.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_FilterIntegerField* ne null and *Parameter_FilterIntegerField* gt *Parameter_FilterIntegerValueHigh* or *Parameter_FilterIntegerField* lt *Parameter_FilterIntegerValueLow**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter - Integer: not operator"
|
||||
RequirementId="REQ-WA103-QO11"
|
||||
MetallicLevel="Core"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO11"
|
||||
OutputFile="REQ-WA103-QO11.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_FilterIntegerField* ne null and not(*Parameter_FilterNotField* le *Parameter_FilterNotValue*)*Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter: Date portion of EdmDateTimeOffset field is less than EdmDate value."
|
||||
RequirementId="REQ-WA103-QO25"
|
||||
MetallicLevel="Core"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO25"
|
||||
OutputFile="REQ-WA103-QO25.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_TimestampField* ne null and date(*Parameter_TimestampField*) gt *Parameter_DateValue**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter: Time portion of EdmDateTimeOffset field is less than EdmTime value."
|
||||
RequirementId="REQ-WA103-QO26"
|
||||
MetallicLevel="Core"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO26"
|
||||
OutputFile="REQ-WA103-QO26.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_TimestampField* ne null and time(*Parameter_TimestampField*) lt *Parameter_TimeValue**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter: Date: EdmDateTimeOffset field is less than EdmDateTimeOffset value."
|
||||
RequirementId="REQ-WA103-QO26.2"
|
||||
MetallicLevel="Core"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO26.2"
|
||||
OutputFile="REQ-WA103-QO26.2.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_TimestampField* ne null and *Parameter_TimestampField* lt *Parameter_DateTimeValue**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter: DateTimeOffset le now()"
|
||||
RequirementId="REQ-WA103-QO27"
|
||||
MetallicLevel="Core"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO27"
|
||||
OutputFile="REQ-WA103-QO27.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_TimestampField* ne null and *Parameter_TimestampField* le now()*Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Support Single Value Lookups"
|
||||
RequirementId="REQ-WA103-QM7"
|
||||
MetallicLevel="Bronze"
|
||||
Capability="Query functions"
|
||||
WebAPIReference="2.4.9"
|
||||
RequestId="REQ-WA103-QM7"
|
||||
OutputFile="REQ-WA103-QM7.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_KeyOrKeyNumericField*,*Parameter_SingleValueLookupField*&$filter=*Parameter_SingleValueLookupField* ne null and *Parameter_SingleValueLookupField* has *Parameter_SingleValueLookupValue**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Support Multi Value Lookups"
|
||||
RequirementId="REQ-WA103-QM8"
|
||||
MetallicLevel="Bronze"
|
||||
Capability="Query functions"
|
||||
WebAPIReference="2.4.10"
|
||||
RequestId="REQ-WA103-QM8"
|
||||
OutputFile="REQ-WA103-QM8.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_KeyOrKeyNumericField*,*Parameter_MultipleValueLookupField*&$filter=*Parameter_MultipleValueLookupField* ne null and *Parameter_MultipleValueLookupField* has *Parameter_MultipleValueLookupValue1**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Support Multi Value Lookups (2)"
|
||||
RequirementId="REQ-WA103-QM8.2"
|
||||
MetallicLevel="Bronze"
|
||||
Capability="Query functions"
|
||||
WebAPIReference="2.4.10"
|
||||
RequestId="REQ-WA103-QM8.2"
|
||||
OutputFile="REQ-WA103-QM8.2.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_KeyOrKeyNumericField*,*Parameter_MultipleValueLookupField*&$filter=*Parameter_MultipleValueLookupField* ne null and *Parameter_MultipleValueLookupField* has *Parameter_MultipleValueLookupValue1* and *Parameter_MultipleValueLookupField* has *Parameter_MultipleValueLookupValue2**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter - Comparison: has"
|
||||
RequirementId="REQ-WA103-QO8"
|
||||
MetallicLevel="Bronze"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO8"
|
||||
OutputFile="REQ-WA103-QO8.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_FilterHasField* ne null and *Parameter_FilterHasField* has *Parameter_FilterHasValueLookupValue**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $orderby asc filtered"
|
||||
RequirementId="REQ-WA103-QO28.1"
|
||||
MetallicLevel="Bronze"
|
||||
Capability="Sortability ($orderby)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO28.1"
|
||||
OutputFile="REQ-WA103-QO28.1.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_SortCount*&$select=*Parameter_FilterIntegerField*,*Parameter_TimestampField*&$orderby=*Parameter_TimestampField* asc&$filter=*Parameter_FilterIntegerField* ne null and *Parameter_FilterIntegerField* gt *Parameter_FilterIntegerValueLow**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $orderby asc no filter"
|
||||
RequirementId="REQ-WA103-QO28.2"
|
||||
MetallicLevel="Bronze"
|
||||
Capability="Sortability ($orderby)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO28.2"
|
||||
OutputFile="REQ-WA103-QO28.2.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_SortCount*&$select=*Parameter_FilterIntegerField*,*Parameter_TimestampField*&$orderby=*Parameter_TimestampField* asc"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $orderby desc filtered"
|
||||
RequirementId="REQ-WA103-QO28.3"
|
||||
MetallicLevel="Bronze"
|
||||
Capability="Sortability ($orderby)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO28.3"
|
||||
OutputFile="REQ-WA103-QO28.3.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_SortCount*&$select=*Parameter_FilterIntegerField*,*Parameter_TimestampField*&$orderby=*Parameter_TimestampField* desc&$filter=*Parameter_FilterIntegerField* ne null and *Parameter_FilterIntegerField* gt *Parameter_FilterIntegerValueLow**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $orderby desc no filter"
|
||||
RequirementId="REQ-WA103-QO28.4"
|
||||
MetallicLevel="Bronze"
|
||||
Capability="Sortability ($orderby)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO28.4"
|
||||
OutputFile="REQ-WA103-QO28.4.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_SortCount*&$select=*Parameter_FilterIntegerField*,*Parameter_TimestampField*&$orderby=*Parameter_TimestampField* desc"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter: Date: year"
|
||||
RequirementId="REQ-WA103-QO18.1"
|
||||
MetallicLevel="Gold"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO18.1"
|
||||
OutputFile="REQ-WA103-QO18.1.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_DateField* ne null and year(*Parameter_DateField*) eq *Parameter_YearValue**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter: Time: year"
|
||||
RequirementId="REQ-WA103-QO18.2"
|
||||
MetallicLevel="Gold"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO18.2"
|
||||
OutputFile="REQ-WA103-QO18.2.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_TimestampField* ne null and year(*Parameter_TimestampField*) eq *Parameter_YearValue**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter: Date: month"
|
||||
RequirementId="REQ-WA103-QO19.1"
|
||||
MetallicLevel="Gold"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO19.1"
|
||||
OutputFile="REQ-WA103-QO19.1.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_DateField* ne null and month(*Parameter_DateField*) eq *Parameter_MonthValue**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter: Time: month"
|
||||
RequirementId="REQ-WA103-QO19.2"
|
||||
MetallicLevel="Gold"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO19.2"
|
||||
OutputFile="REQ-WA103-QO19.2.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_TimestampField* ne null and month(*Parameter_TimestampField*) eq *Parameter_MonthValue**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter: Date: day"
|
||||
RequirementId="REQ-WA103-QO20.1"
|
||||
MetallicLevel="Gold"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO20.1"
|
||||
OutputFile="REQ-WA103-QO20.1.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_DateField* ne null and day(*Parameter_DateField*) eq *Parameter_DayValue**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter: Time: day"
|
||||
RequirementId="REQ-WA103-QO20.2"
|
||||
MetallicLevel="Gold"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO20.2"
|
||||
OutputFile="REQ-WA103-QO20.2.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_TimestampField* ne null and day(*Parameter_TimestampField*) eq *Parameter_DayValue**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter: Date: hour"
|
||||
RequirementId="REQ-WA103-QO21"
|
||||
MetallicLevel="Gold"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO21"
|
||||
OutputFile="REQ-WA103-QO21.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_TimestampField* ne null and hour(*Parameter_TimestampField*) eq *Parameter_HourValue**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter: Date: minute"
|
||||
RequirementId="REQ-WA103-QO22"
|
||||
MetallicLevel="Gold"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO22"
|
||||
OutputFile="REQ-WA103-QO22.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_TimestampField* ne null and minute(*Parameter_TimestampField*) gt *Parameter_MinuteValue**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter: Date: second"
|
||||
RequirementId="REQ-WA103-QO23"
|
||||
MetallicLevel="Gold"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO23"
|
||||
OutputFile="REQ-WA103-QO23.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_TimestampField* ne null and second(*Parameter_TimestampField*) lt *Parameter_SecondValue**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter: Date: fractionalseconds"
|
||||
RequirementId="REQ-WA103-QO24"
|
||||
MetallicLevel="Gold"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO24"
|
||||
OutputFile="REQ-WA103-QO24.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_TimestampField* ne null and fractionalseconds(*Parameter_TimestampField*) lt *Parameter_FractionalValue**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $expand"
|
||||
RequirementId="REQ-WA103-QO29.1"
|
||||
MetallicLevel="Platinum"
|
||||
Capability="Expandability ($expand)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO29.1"
|
||||
OutputFile="REQ-WA103-QO29.1.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*,*Parameter_ExpandField*&$expand=*Parameter_ExpandField*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $expand media photo count"
|
||||
RequirementId="REQ-WA103-QO29.2"
|
||||
MetallicLevel="Platinum"
|
||||
Capability="Expandability ($expand)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO29.2"
|
||||
OutputFile="REQ-WA103-QO29.2.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*,*Parameter_ExpandField*&$expand=*Parameter_ExpandField*&$filter=PhotosCount gt 0"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $expand required field"
|
||||
RequirementId="REQ-WA103-QO29.3"
|
||||
MetallicLevel="Platinum"
|
||||
Capability="Expandability ($expand)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO29.3"
|
||||
OutputFile="REQ-WA103-QO29.3.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*,*Parameter_ExpandField*&$expand=*Parameter_ExpandField**Parameter_RequiredParametersFilter*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Support Literals: $any"
|
||||
RequirementId="REQ-WA103-QM3"
|
||||
MetallicLevel="Platinum"
|
||||
Capability="Query functions"
|
||||
WebAPIReference="2.4.6"
|
||||
RequestId="REQ-WA103-QM3"
|
||||
OutputFile="REQ-WA103-QM3.json"
|
||||
Url="*ClientSettings_WebAPIURI*/$any?$top=1"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Support Literals: $all"
|
||||
RequirementId="REQ-WA103-QM4"
|
||||
MetallicLevel="Platinum"
|
||||
Capability="Query functions"
|
||||
WebAPIReference="2.4.6"
|
||||
RequestId="REQ-WA103-QM4"
|
||||
OutputFile="REQ-WA103-QM4_All.json"
|
||||
Url="*ClientSettings_WebAPIURI*/$all?$top=1"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Support GeoSpatial Search Implementation"
|
||||
RequirementId="REQ-WA103-QM5.1"
|
||||
MetallicLevel="Platinum"
|
||||
Capability="Query functions"
|
||||
WebAPIReference="2.4.7"
|
||||
RequestId="REQ-WA103-QM5.1"
|
||||
OutputFile="REQ-WA103-QM5_GeoSpatialLongLat_PointGeo.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=geo.distance(*Parameter_GeoSpatialField*, geography'SRID=*Parameter_SRID*;POINT(*Parameter_GeoSpatialValue*)' le *Parameter_GeoSpatialDistanceValue*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Support GeoSpatial Search Implementation"
|
||||
RequirementId="REQ-WA103-QM5.2"
|
||||
MetallicLevel="Platinum"
|
||||
Capability="Query functions"
|
||||
WebAPIReference="2.4.7"
|
||||
RequestId="REQ-WA103-QM5.2"
|
||||
OutputFile="REQ-WA103-QM5_GeoSpatialLongLat_LatGT1_PointGeo.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=geo.distance(*Parameter_GeoSpatialField*, geography'SRID=*Parameter_SRID*;POINT(*Parameter_GeoSpatialValue*)' le *Parameter_GeoSpatialDistanceValue* and *Parameter_GeoSpatialLatitudeField* gt 1"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter - Grouping: ()"
|
||||
RequirementId="REQ-WA103-QO12"
|
||||
MetallicLevel="Platinum"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO12"
|
||||
OutputFile="REQ-WA103-QO12_Grouping.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_FilterIntegerField* ne null and (*Parameter_FilterIntegerField* ge *Parameter_FilterIntegerValueLow* and *Parameter_FilterIntegerField* le *Parameter_FilterIntegerValueHigh*) and (*Parameter_FilterIntegerField* lt *Parameter_FilterIntegerValueHigh* and *Parameter_FilterIntegerField* gt *Parameter_FilterIntegerValueLow*)*Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter - String: contains"
|
||||
RequirementId="REQ-WA103-QO13"
|
||||
MetallicLevel="Platinum"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO13"
|
||||
OutputFile="REQ-WA103-QO13.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_ContainsField* ne null and contains(*Parameter_ContainsField*,'*Parameter_ContainsValue*')*Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter - String: endswith"
|
||||
RequirementId="REQ-WA103-QO14"
|
||||
MetallicLevel="Platinum"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO14"
|
||||
OutputFile="REQ-WA103-QO14_EndsWith.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_EndsWithField* ne null and endswith(*Parameter_EndsWithField*,'*Parameter_EndsWithValue*')*Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter - String: startswith"
|
||||
RequirementId="REQ-WA103-QO15"
|
||||
MetallicLevel="Platinum"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO15"
|
||||
OutputFile="REQ-WA103-QO15_StartsWith.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_StartsWithField* ne null and startswith(*Parameter_StartsWithField*,'*Parameter_StartsWithValue*')*Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter - String: tolower"
|
||||
RequirementId="REQ-WA103-QO16"
|
||||
MetallicLevel="Platinum"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO16"
|
||||
OutputFile="REQ-WA103-QO16_ToLowerEQ.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_ToLowerField* ne null and tolower(*Parameter_ToLowerField*) eq '*Parameter_ToLowerValue*'*Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter - String: toupper"
|
||||
RequirementId="REQ-WA103-QO17"
|
||||
MetallicLevel="Platinum"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO17"
|
||||
OutputFile="REQ-WA103-QO17_ToUpperEQ.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_ToUpperField* ne null and toupper(*Parameter_ToUpperField*) eq '*Parameter_ToUpperValue*'*Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Service Endpoint"
|
||||
RequirementId="REQ-WA103-END1"
|
||||
MetallicLevel="Core"
|
||||
Capability="Core"
|
||||
WebAPIReference=""
|
||||
RequestId="REQ-WA103-END1"
|
||||
OutputFile="REQ-WA103-END1_Service.json"
|
||||
Url="*ClientSettings_WebAPIURI*/"
|
||||
/>
|
||||
|
@ -816,51 +573,31 @@
|
|||
|
||||
<!-- RESPONSE CODE SUPPORT -->
|
||||
<Request
|
||||
TestDescription="200 OK Request"
|
||||
RequirementId="REQ-WA103-RC3"
|
||||
MetallicLevel="Core"
|
||||
Capability="Core"
|
||||
WebAPIReference="2.5.2"
|
||||
RequestId="REQ-WA103-RC3"
|
||||
OutputFile="REQ-WA103-RC05_200OKRequest.json"
|
||||
Url="ClientSettings_WebAPIURI*/*Parameter_200_OK*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="400 Bad Request"
|
||||
RequirementId="REQ-WA103-RC5"
|
||||
MetallicLevel="Core"
|
||||
Capability="Core"
|
||||
WebAPIReference="2.5.2"
|
||||
RequestId="REQ-WA103-RC5"
|
||||
OutputFile="REQ-WA103-RC05_400BadRequest.json"
|
||||
Url="ClientSettings_WebAPIURI*/*Parameter_400BadRequest*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="403 Forbidden Request"
|
||||
RequirementId="REQ-WA103-RC06"
|
||||
MetallicLevel="Core"
|
||||
Capability="Core"
|
||||
WebAPIReference="2.5.2"
|
||||
RequestId="REQ-WA103-RC06"
|
||||
OutputFile="REQ-WA103-RC06_403Forbidden_Generic.json"
|
||||
Url="ClientSettings_WebAPIURI*/*Parameter_403Forbidden*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="404 Not Found Request"
|
||||
RequirementId="REQ-WA103-RC07"
|
||||
MetallicLevel="Core"
|
||||
Capability="Core"
|
||||
WebAPIReference="2.5.2"
|
||||
RequestId="REQ-WA103-RC07"
|
||||
OutputFile="REQ-WA103-RC07_404NotFound.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_404NotFound*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="501 Not Implemented Request"
|
||||
RequirementId="REQ-WA103-RC11"
|
||||
MetallicLevel="Core"
|
||||
Capability="Core"
|
||||
WebAPIReference="2.5.2"
|
||||
RequestId="REQ-WA103-RC11"
|
||||
OutputFile="REQ-WA103-RC11_501NotImplemented.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_501NotImplemented*"
|
||||
/>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<!--
|
||||
|
||||
<!--
|
||||
>>> To be used as a template for Web API Server 1.0.2 Platinum Certification <<<
|
||||
|
||||
NOTES:
|
||||
|
@ -12,15 +12,10 @@
|
|||
Contact josh@reso.org with further questions.
|
||||
-->
|
||||
|
||||
<!--
|
||||
############################################################
|
||||
XML DTD - Must come first
|
||||
############################################################-->
|
||||
<!DOCTYPE OutputScript [
|
||||
<!ELEMENT OutputScript (RESOScriptVersion|ClientSettings|Parameters|Requests)*>
|
||||
<!ELEMENT RESOScriptVersion (#PCDATA)>
|
||||
<!ELEMENT ClientSettings
|
||||
(RESOScriptVersion|WebAPIURI|AuthenticationType|BearerToken|ClientIdentification|ClientSecret|TokenURI|ClientScope)*>
|
||||
<!ELEMENT ClientSettings (WebAPIURI|AuthenticationType|BearerToken|ClientIdentification|ClientSecret|TokenURI|ClientScope)*>
|
||||
<!ELEMENT WebAPIURI (#PCDATA)>
|
||||
<!ELEMENT AuthenticationType (#PCDATA)>
|
||||
<!ELEMENT BearerToken (#PCDATA)>
|
||||
|
@ -36,29 +31,11 @@
|
|||
<!ELEMENT Requests (Request)*>
|
||||
<!ELEMENT Request (#PCDATA)>
|
||||
<!ATTLIST Request
|
||||
Capability CDATA #REQUIRED
|
||||
MetallicLevel CDATA #REQUIRED
|
||||
OutputFile CDATA #REQUIRED
|
||||
RequirementId CDATA #REQUIRED
|
||||
TestDescription CDATA #REQUIRED
|
||||
Url CDATA #REQUIRED
|
||||
WebAPIReference CDATA #REQUIRED>
|
||||
RequestId CDATA #REQUIRED
|
||||
Url CDATA #REQUIRED>
|
||||
]>
|
||||
|
||||
<!--
|
||||
############################################################
|
||||
TODO: this document will be updated with language
|
||||
matching the OAuth 2.0 Specification and ClientSettings
|
||||
will be removed.
|
||||
|
||||
See:
|
||||
https://tools.ietf.org/html/rfc8252
|
||||
|
||||
Watch for subsequent changes to this file.
|
||||
ClientSettings will be converted to Parameters forthwith.
|
||||
############################################################-->
|
||||
|
||||
|
||||
<OutputScript>
|
||||
|
||||
<!--
|
||||
|
@ -67,7 +44,7 @@
|
|||
############################################################-->
|
||||
|
||||
<!-- The current version of this RESOScript -->
|
||||
<RESOScriptVersion>1.0.7</RESOScriptVersion>
|
||||
<RESOScriptVersion>1.1.0</RESOScriptVersion>
|
||||
|
||||
|
||||
<!--
|
||||
|
@ -312,551 +289,331 @@
|
|||
<Requests>
|
||||
|
||||
<Request
|
||||
TestDescription="Metadata Endpoint"
|
||||
RequirementId="REQ-WA103-END3"
|
||||
MetallicLevel="Core"
|
||||
Capability="Core"
|
||||
WebAPIReference=""
|
||||
RequestId="REQ-WA103-END3"
|
||||
OutputFile="REQ-WA103-END3.metadata.xml"
|
||||
Url="*ClientSettings_WebAPIURI*/$metadata*Parameter_OptionalMetadataFormatParameter*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Data System"
|
||||
RequirementId="REQ-WA103-END2"
|
||||
MetallicLevel="Core"
|
||||
Capability="Core Support"
|
||||
WebAPIReference=""
|
||||
RequestId="REQ-WA103-END2"
|
||||
OutputFile="REQ-WA103-END2.datasystem.json"
|
||||
Url="*Parameter_EndpointDataSystem*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Search Parameters: Select KeyOrKeyNumeric Field"
|
||||
RequirementId="REQ-WA103-QR1"
|
||||
MetallicLevel="Core"
|
||||
Capability="Query functions"
|
||||
WebAPIReference="2.4.1"
|
||||
RequestId="REQ-WA103-QR1"
|
||||
OutputFile="REQ-WA103-QR1.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*(*Parameter_KeyOrKeyNumericValue*)?$select=*Parameter_KeyOrKeyNumericField*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $select"
|
||||
RequirementId="REQ-WA103-QR3"
|
||||
MetallicLevel="Core"
|
||||
Capability="Query functions"
|
||||
WebAPIReference="2.4.2"
|
||||
RequestId="REQ-WA103-QR3"
|
||||
OutputFile="REQ-WA103-QR3.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_FilterIntegerField* ne null and *Parameter_FilterIntegerField* gt *Parameter_FilterIntegerValueLow**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $top"
|
||||
RequirementId="REQ-WA103-QR4"
|
||||
MetallicLevel="Core"
|
||||
Capability="Client paging ($top, $skip)"
|
||||
WebAPIReference="2.4.2"
|
||||
RequestId="REQ-WA103-QR4"
|
||||
OutputFile="REQ-WA103-QR4.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_FilterIntegerField* ne null and *Parameter_FilterIntegerField* gt *Parameter_FilterIntegerValueLow**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $skip"
|
||||
RequirementId="REQ-WA103-QR5"
|
||||
MetallicLevel="Core"
|
||||
Capability="Client pageability ($top, $skip)"
|
||||
WebAPIReference="2.4.2"
|
||||
RequestId="REQ-WA103-QR5"
|
||||
OutputFile="REQ-WA103-QR5.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_FilterIntegerField* ne null and *Parameter_FilterIntegerField* gt *Parameter_FilterIntegerValueLow**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $select case-sensitivity. Expect 400 response on OData 4.0"
|
||||
RequirementId="REQ-WA103-QO1.1"
|
||||
MetallicLevel="Core"
|
||||
Capability="Core"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO1.1"
|
||||
OutputFile="REQ-WA103-QO1.1.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$SeLeCt=*Parameter_SelectList*&$filter=*Parameter_FilterIntegerField* ne null and *Parameter_FilterIntegerField* eq *Parameter_FilterIntegerValueLow**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter case-sensitivity. Expect 400 response on OData 4.0"
|
||||
RequirementId="REQ-WA103-QO1.2"
|
||||
MetallicLevel="Core"
|
||||
Capability="Core"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO1.2"
|
||||
OutputFile="REQ-WA103-QO1.2.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$FiLtEr=*Parameter_FilterIntegerField* ne null and *Parameter_FilterIntegerField* eq *Parameter_FilterIntegerValueLow**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $orderby asc case-sensitivity. Expect 400 response on OData 4.0"
|
||||
RequirementId="REQ-WA103-QO1.3"
|
||||
MetallicLevel="Core"
|
||||
Capability="Core"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO1.3"
|
||||
OutputFile="REQ-WA103-QO1.3.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_SortCount*&$select=*Parameter_FilterIntegerField*&$filter=*Parameter_FilterIntegerField* ne null and *Parameter_FilterIntegerField* gt *Parameter_FilterIntegerValueLow**Parameter_RequiredParameters*&$OrDeRbY=*Parameter_FilterIntegerField* asc"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $orderby desc case-sensitivity. Expect 400 response on OData 4.0"
|
||||
RequirementId="REQ-WA103-QO1.4"
|
||||
MetallicLevel="Core"
|
||||
Capability="Core"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO1.4"
|
||||
OutputFile="REQ-WA103-QO1.4.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_SortCount*&$select=*Parameter_FilterIntegerField*&$filter=*Parameter_FilterIntegerField* ne null and *Parameter_FilterIntegerField* gt *Parameter_FilterIntegerValueLow**Parameter_RequiredParameters*&$oRdErBy=*Parameter_FilterIntegerField* desc"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter - Integer Comparison: eq (equal)"
|
||||
RequirementId="REQ-WA103-QO2"
|
||||
MetallicLevel="Core"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO2"
|
||||
OutputFile="REQ-WA103-QO2"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_FilterIntegerField* ne null and *Parameter_FilterIntegerField* eq *Parameter_FilterIntegerValueLow**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter - Integer Comparison: ne (not equal)"
|
||||
RequirementId="REQ-WA103-QO3"
|
||||
MetallicLevel="Core"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO3"
|
||||
OutputFile="REQ-WA103-QO3"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_FilterIntegerField* ne null and *Parameter_FilterIntegerField* ne null and *Parameter_FilterIntegerField* ne *Parameter_FilterIntegerValueLow**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter - Integer Comparison: gt (greater than)"
|
||||
RequirementId="REQ-WA103-QO4"
|
||||
MetallicLevel="Core"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO4"
|
||||
OutputFile="REQ-WA103-QO4"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_FilterIntegerField* ne null and *Parameter_FilterIntegerField* gt *Parameter_FilterIntegerValueLow**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter - Integer Comparison: ge (greater or equal)"
|
||||
RequirementId="REQ-WA103-QO5"
|
||||
MetallicLevel="Core"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO5"
|
||||
OutputFile="REQ-WA103-QO5.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_FilterIntegerField* ne null and *Parameter_FilterIntegerField* ge *Parameter_FilterIntegerValueLow**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter - Integer Comparison: lt (less than)"
|
||||
RequirementId="REQ-WA103-QO6"
|
||||
MetallicLevel="Core"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO6"
|
||||
OutputFile="REQ-WA103-QO6.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_FilterIntegerField* ne null and *Parameter_FilterIntegerField* lt *Parameter_FilterIntegerValueLow**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter - Integer Comparison: le (less or equal)"
|
||||
RequirementId="REQ-WA103-QO7"
|
||||
MetallicLevel="Core"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO7"
|
||||
OutputFile="REQ-WA103-QO7.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_FilterIntegerField* ne null and *Parameter_FilterIntegerField* le *Parameter_FilterIntegerValueLow**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter - Integer Comparison: and"
|
||||
RequirementId="REQ-WA103-QO9"
|
||||
MetallicLevel="Core"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO9"
|
||||
OutputFile="REQ-WA103-QO9.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_FilterIntegerField* ne null and *Parameter_FilterIntegerField* gt *Parameter_FilterIntegerValueLow* and *Parameter_FilterIntegerField* lt *Parameter_FilterIntegerValueHigh**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter - Integer Comparison: or"
|
||||
RequirementId="REQ-WA103-QO10"
|
||||
MetallicLevel="Core"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO10"
|
||||
OutputFile="REQ-WA103-QO10.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_FilterIntegerField* ne null and *Parameter_FilterIntegerField* gt *Parameter_FilterIntegerValueHigh* or *Parameter_FilterIntegerField* lt *Parameter_FilterIntegerValueLow**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter - Integer: not operator"
|
||||
RequirementId="REQ-WA103-QO11"
|
||||
MetallicLevel="Core"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO11"
|
||||
OutputFile="REQ-WA103-QO11.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_FilterIntegerField* ne null and not(*Parameter_FilterNotField* le *Parameter_FilterNotValue*)*Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter: Date portion of EdmDateTimeOffset field is less than EdmDate value."
|
||||
RequirementId="REQ-WA103-QO25"
|
||||
MetallicLevel="Core"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO25"
|
||||
OutputFile="REQ-WA103-QO25.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_TimestampField* ne null and date(*Parameter_TimestampField*) gt *Parameter_DateValue**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter: Time portion of EdmDateTimeOffset field is less than EdmTime value."
|
||||
RequirementId="REQ-WA103-QO26"
|
||||
MetallicLevel="Core"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO26"
|
||||
OutputFile="REQ-WA103-QO26.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_TimestampField* ne null and time(*Parameter_TimestampField*) lt *Parameter_TimeValue**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter: Date: EdmDateTimeOffset field is less than EdmDateTimeOffset value."
|
||||
RequirementId="REQ-WA103-QO26.2"
|
||||
MetallicLevel="Core"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO26.2"
|
||||
OutputFile="REQ-WA103-QO26.2.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_TimestampField* ne null and *Parameter_TimestampField* lt *Parameter_DateTimeValue**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter: DateTimeOffset le now()"
|
||||
RequirementId="REQ-WA103-QO27"
|
||||
MetallicLevel="Core"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO27"
|
||||
OutputFile="REQ-WA103-QO27.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_TimestampField* ne null and *Parameter_TimestampField* le now()*Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Support Single Value Lookups"
|
||||
RequirementId="REQ-WA103-QM7"
|
||||
MetallicLevel="Bronze"
|
||||
Capability="Query functions"
|
||||
WebAPIReference="2.4.9"
|
||||
RequestId="REQ-WA103-QM7"
|
||||
OutputFile="REQ-WA103-QM7.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_KeyOrKeyNumericField*,*Parameter_SingleValueLookupField*&$filter=*Parameter_SingleValueLookupField* ne null and *Parameter_SingleValueLookupField* has *Parameter_SingleValueLookupValue**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Support Multi Value Lookups"
|
||||
RequirementId="REQ-WA103-QM8"
|
||||
MetallicLevel="Bronze"
|
||||
Capability="Query functions"
|
||||
WebAPIReference="2.4.10"
|
||||
RequestId="REQ-WA103-QM8"
|
||||
OutputFile="REQ-WA103-QM8.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_KeyOrKeyNumericField*,*Parameter_MultipleValueLookupField*&$filter=*Parameter_MultipleValueLookupField* ne null and *Parameter_MultipleValueLookupField* has *Parameter_MultipleValueLookupValue1**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Support Multi Value Lookups (2)"
|
||||
RequirementId="REQ-WA103-QM8.2"
|
||||
MetallicLevel="Bronze"
|
||||
Capability="Query functions"
|
||||
WebAPIReference="2.4.10"
|
||||
RequestId="REQ-WA103-QM8.2"
|
||||
OutputFile="REQ-WA103-QM8.2.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_KeyOrKeyNumericField*,*Parameter_MultipleValueLookupField*&$filter=*Parameter_MultipleValueLookupField* ne null and *Parameter_MultipleValueLookupField* has *Parameter_MultipleValueLookupValue1* and *Parameter_MultipleValueLookupField* has *Parameter_MultipleValueLookupValue2**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter - Comparison: has"
|
||||
RequirementId="REQ-WA103-QO8"
|
||||
MetallicLevel="Bronze"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO8"
|
||||
OutputFile="REQ-WA103-QO8.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_FilterHasField* ne null and *Parameter_FilterHasField* has *Parameter_FilterHasValueLookupValue**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $orderby asc filtered"
|
||||
RequirementId="REQ-WA103-QO28.1"
|
||||
MetallicLevel="Bronze"
|
||||
Capability="Sortability ($orderby)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO28.1"
|
||||
OutputFile="REQ-WA103-QO28.1.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_SortCount*&$select=*Parameter_FilterIntegerField*,*Parameter_TimestampField*&$orderby=*Parameter_TimestampField* asc&$filter=*Parameter_FilterIntegerField* ne null and *Parameter_FilterIntegerField* gt *Parameter_FilterIntegerValueLow**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $orderby asc no filter"
|
||||
RequirementId="REQ-WA103-QO28.2"
|
||||
MetallicLevel="Bronze"
|
||||
Capability="Sortability ($orderby)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO28.2"
|
||||
OutputFile="REQ-WA103-QO28.2.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_SortCount*&$select=*Parameter_FilterIntegerField*,*Parameter_TimestampField*&$orderby=*Parameter_TimestampField* asc"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $orderby desc filtered"
|
||||
RequirementId="REQ-WA103-QO28.3"
|
||||
MetallicLevel="Bronze"
|
||||
Capability="Sortability ($orderby)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO28.3"
|
||||
OutputFile="REQ-WA103-QO28.3.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_SortCount*&$select=*Parameter_FilterIntegerField*,*Parameter_TimestampField*&$orderby=*Parameter_TimestampField* desc&$filter=*Parameter_FilterIntegerField* ne null and *Parameter_FilterIntegerField* gt *Parameter_FilterIntegerValueLow**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $orderby desc no filter"
|
||||
RequirementId="REQ-WA103-QO28.4"
|
||||
MetallicLevel="Bronze"
|
||||
Capability="Sortability ($orderby)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO28.4"
|
||||
OutputFile="REQ-WA103-QO28.4.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_SortCount*&$select=*Parameter_FilterIntegerField*,*Parameter_TimestampField*&$orderby=*Parameter_TimestampField* desc"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter: Date: year"
|
||||
RequirementId="REQ-WA103-QO18.1"
|
||||
MetallicLevel="Gold"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO18.1"
|
||||
OutputFile="REQ-WA103-QO18.1.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_DateField* ne null and year(*Parameter_DateField*) eq *Parameter_YearValue**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter: Time: year"
|
||||
RequirementId="REQ-WA103-QO18.2"
|
||||
MetallicLevel="Gold"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO18.2"
|
||||
OutputFile="REQ-WA103-QO18.2.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_TimestampField* ne null and year(*Parameter_TimestampField*) eq *Parameter_YearValue**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter: Date: month"
|
||||
RequirementId="REQ-WA103-QO19.1"
|
||||
MetallicLevel="Gold"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO19.1"
|
||||
OutputFile="REQ-WA103-QO19.1.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_DateField* ne null and month(*Parameter_DateField*) eq *Parameter_MonthValue**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter: Time: month"
|
||||
RequirementId="REQ-WA103-QO19.2"
|
||||
MetallicLevel="Gold"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO19.2"
|
||||
OutputFile="REQ-WA103-QO19.2.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_TimestampField* ne null and month(*Parameter_TimestampField*) eq *Parameter_MonthValue**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter: Date: day"
|
||||
RequirementId="REQ-WA103-QO20.1"
|
||||
MetallicLevel="Gold"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO20.1"
|
||||
OutputFile="REQ-WA103-QO20.1.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_DateField* ne null and day(*Parameter_DateField*) eq *Parameter_DayValue**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter: Time: day"
|
||||
RequirementId="REQ-WA103-QO20.2"
|
||||
MetallicLevel="Gold"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO20.2"
|
||||
OutputFile="REQ-WA103-QO20.2.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_TimestampField* ne null and day(*Parameter_TimestampField*) eq *Parameter_DayValue**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter: Date: hour"
|
||||
RequirementId="REQ-WA103-QO21"
|
||||
MetallicLevel="Gold"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO21"
|
||||
OutputFile="REQ-WA103-QO21.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_TimestampField* ne null and hour(*Parameter_TimestampField*) eq *Parameter_HourValue**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter: Date: minute"
|
||||
RequirementId="REQ-WA103-QO22"
|
||||
MetallicLevel="Gold"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO22"
|
||||
OutputFile="REQ-WA103-QO22.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_TimestampField* ne null and minute(*Parameter_TimestampField*) gt *Parameter_MinuteValue**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter: Date: second"
|
||||
RequirementId="REQ-WA103-QO23"
|
||||
MetallicLevel="Gold"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO23"
|
||||
OutputFile="REQ-WA103-QO23.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_TimestampField* ne null and second(*Parameter_TimestampField*) lt *Parameter_SecondValue**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter: Date: fractionalseconds"
|
||||
RequirementId="REQ-WA103-QO24"
|
||||
MetallicLevel="Gold"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO24"
|
||||
OutputFile="REQ-WA103-QO24.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_TimestampField* ne null and fractionalseconds(*Parameter_TimestampField*) lt *Parameter_FractionalValue**Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $expand"
|
||||
RequirementId="REQ-WA103-QO29.1"
|
||||
MetallicLevel="Platinum"
|
||||
Capability="Expandability ($expand)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO29.1"
|
||||
OutputFile="REQ-WA103-QO29.1.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*,*Parameter_ExpandField*&$expand=*Parameter_ExpandField*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $expand media photo count"
|
||||
RequirementId="REQ-WA103-QO29.2"
|
||||
MetallicLevel="Platinum"
|
||||
Capability="Expandability ($expand)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO29.2"
|
||||
OutputFile="REQ-WA103-QO29.2.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*,*Parameter_ExpandField*&$expand=*Parameter_ExpandField*&$filter=PhotosCount gt 0"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $expand required field"
|
||||
RequirementId="REQ-WA103-QO29.3"
|
||||
MetallicLevel="Platinum"
|
||||
Capability="Expandability ($expand)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO29.3"
|
||||
OutputFile="REQ-WA103-QO29.3.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*,*Parameter_ExpandField*&$expand=*Parameter_ExpandField**Parameter_RequiredParametersFilter*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Support Literals: $any"
|
||||
RequirementId="REQ-WA103-QM3"
|
||||
MetallicLevel="Platinum"
|
||||
Capability="Query functions"
|
||||
WebAPIReference="2.4.6"
|
||||
RequestId="REQ-WA103-QM3"
|
||||
OutputFile="REQ-WA103-QM3.json"
|
||||
Url="*ClientSettings_WebAPIURI*/$any?$top=1"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Support Literals: $all"
|
||||
RequirementId="REQ-WA103-QM4"
|
||||
MetallicLevel="Platinum"
|
||||
Capability="Query functions"
|
||||
WebAPIReference="2.4.6"
|
||||
RequestId="REQ-WA103-QM4"
|
||||
OutputFile="REQ-WA103-QM4_All.json"
|
||||
Url="*ClientSettings_WebAPIURI*/$all?$top=1"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Support GeoSpatial Search Implementation"
|
||||
RequirementId="REQ-WA103-QM5.1"
|
||||
MetallicLevel="Platinum"
|
||||
Capability="Query functions"
|
||||
WebAPIReference="2.4.7"
|
||||
RequestId="REQ-WA103-QM5.1"
|
||||
OutputFile="REQ-WA103-QM5_GeoSpatialLongLat_PointGeo.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=geo.distance(*Parameter_GeoSpatialField*, geography'SRID=*Parameter_SRID*;POINT(*Parameter_GeoSpatialValue*)' le *Parameter_GeoSpatialDistanceValue*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Support GeoSpatial Search Implementation"
|
||||
RequirementId="REQ-WA103-QM5.2"
|
||||
MetallicLevel="Platinum"
|
||||
Capability="Query functions"
|
||||
WebAPIReference="2.4.7"
|
||||
RequestId="REQ-WA103-QM5.2"
|
||||
OutputFile="REQ-WA103-QM5_GeoSpatialLongLat_LatGT1_PointGeo.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=geo.distance(*Parameter_GeoSpatialField*, geography'SRID=*Parameter_SRID*;POINT(*Parameter_GeoSpatialValue*)' le *Parameter_GeoSpatialDistanceValue* and *Parameter_GeoSpatialLatitudeField* gt 1"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter - Grouping: ()"
|
||||
RequirementId="REQ-WA103-QO12"
|
||||
MetallicLevel="Platinum"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO12"
|
||||
OutputFile="REQ-WA103-QO12_Grouping.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_FilterIntegerField* ne null and (*Parameter_FilterIntegerField* ge *Parameter_FilterIntegerValueLow* and *Parameter_FilterIntegerField* le *Parameter_FilterIntegerValueHigh*) and (*Parameter_FilterIntegerField* lt *Parameter_FilterIntegerValueHigh* and *Parameter_FilterIntegerField* gt *Parameter_FilterIntegerValueLow*)*Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter - String: contains"
|
||||
RequirementId="REQ-WA103-QO13"
|
||||
MetallicLevel="Platinum"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO13"
|
||||
OutputFile="REQ-WA103-QO13.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_ContainsField* ne null and contains(*Parameter_ContainsField*,'*Parameter_ContainsValue*')*Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter - String: endswith"
|
||||
RequirementId="REQ-WA103-QO14"
|
||||
MetallicLevel="Platinum"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO14"
|
||||
OutputFile="REQ-WA103-QO14_EndsWith.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_EndsWithField* ne null and endswith(*Parameter_EndsWithField*,'*Parameter_EndsWithValue*')*Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter - String: startswith"
|
||||
RequirementId="REQ-WA103-QO15"
|
||||
MetallicLevel="Platinum"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO15"
|
||||
OutputFile="REQ-WA103-QO15_StartsWith.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_StartsWithField* ne null and startswith(*Parameter_StartsWithField*,'*Parameter_StartsWithValue*')*Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter - String: tolower"
|
||||
RequirementId="REQ-WA103-QO16"
|
||||
MetallicLevel="Platinum"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO16"
|
||||
OutputFile="REQ-WA103-QO16_ToLowerEQ.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_ToLowerField* ne null and tolower(*Parameter_ToLowerField*) eq '*Parameter_ToLowerValue*'*Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Query Support: $filter - String: toupper"
|
||||
RequirementId="REQ-WA103-QO17"
|
||||
MetallicLevel="Platinum"
|
||||
Capability="Filterability ($filter)"
|
||||
WebAPIReference="2.4.4"
|
||||
RequestId="REQ-WA103-QO17"
|
||||
OutputFile="REQ-WA103-QO17_ToUpperEQ.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_EndpointResource*?$top=*Parameter_TopCount*&$select=*Parameter_SelectList*&$filter=*Parameter_ToUpperField* ne null and toupper(*Parameter_ToUpperField*) eq '*Parameter_ToUpperValue*'*Parameter_RequiredParameters*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="Service Endpoint"
|
||||
RequirementId="REQ-WA103-END1"
|
||||
MetallicLevel="Core"
|
||||
Capability="Core"
|
||||
WebAPIReference=""
|
||||
RequestId="REQ-WA103-END1"
|
||||
OutputFile="REQ-WA103-END1_Service.json"
|
||||
Url="*ClientSettings_WebAPIURI*/"
|
||||
/>
|
||||
|
@ -864,51 +621,31 @@
|
|||
|
||||
<!-- RESPONSE CODE SUPPORT -->
|
||||
<Request
|
||||
TestDescription="200 OK Request"
|
||||
RequirementId="REQ-WA103-RC3"
|
||||
MetallicLevel="Core"
|
||||
Capability="Core"
|
||||
WebAPIReference="2.5.2"
|
||||
RequestId="REQ-WA103-RC3"
|
||||
OutputFile="REQ-WA103-RC05_200OKRequest.json"
|
||||
Url="ClientSettings_WebAPIURI*/*Parameter_200_OK*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="400 Bad Request"
|
||||
RequirementId="REQ-WA103-RC5"
|
||||
MetallicLevel="Core"
|
||||
Capability="Core"
|
||||
WebAPIReference="2.5.2"
|
||||
RequestId="REQ-WA103-RC5"
|
||||
OutputFile="REQ-WA103-RC05_400BadRequest.json"
|
||||
Url="ClientSettings_WebAPIURI*/*Parameter_400BadRequest*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="403 Forbidden Request"
|
||||
RequirementId="REQ-WA103-RC06"
|
||||
MetallicLevel="Core"
|
||||
Capability="Core"
|
||||
WebAPIReference="2.5.2"
|
||||
RequestId="REQ-WA103-RC06"
|
||||
OutputFile="REQ-WA103-RC06_403Forbidden_Generic.json"
|
||||
Url="ClientSettings_WebAPIURI*/*Parameter_403Forbidden*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="404 Not Found Request"
|
||||
RequirementId="REQ-WA103-RC07"
|
||||
MetallicLevel="Core"
|
||||
Capability="Core"
|
||||
WebAPIReference="2.5.2"
|
||||
RequestId="REQ-WA103-RC07"
|
||||
OutputFile="REQ-WA103-RC07_404NotFound.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_404NotFound*"
|
||||
/>
|
||||
|
||||
<Request
|
||||
TestDescription="501 Not Implemented Request"
|
||||
RequirementId="REQ-WA103-RC11"
|
||||
MetallicLevel="Core"
|
||||
Capability="Core"
|
||||
WebAPIReference="2.5.2"
|
||||
RequestId="REQ-WA103-RC11"
|
||||
OutputFile="REQ-WA103-RC11_501NotImplemented.json"
|
||||
Url="*ClientSettings_WebAPIURI*/*Parameter_501NotImplemented*"
|
||||
/>
|
||||
|
|
|
@ -440,43 +440,43 @@ Feature: Web API Server 1.0.2 Certification
|
|||
And an OData NavigationProperty exists for the given "Parameter_EndpointResource"
|
||||
And the expanded data were found in the related resource
|
||||
|
||||
@REQ-WA103-QO29.2 @platinum @2.4.4 @expandability-endorsement
|
||||
Scenario: REQ-WA103-QO29.2 - Query Support: $expand media photo count
|
||||
@REQ-WA103-QO29.2 @platinum @2.4.4 @expandability-endorsement @todo
|
||||
Scenario: REQ-WA103-QO29.2 - Query Support: $expand media photo count (TODO)
|
||||
When a GET request is made to the resolved Url in "REQ-WA103-QO29.2"
|
||||
Then the server responds with a status code of 200
|
||||
And the response is valid JSON
|
||||
And the response has results
|
||||
|
||||
@REQ-WA103-QO29.3 @platinum @2.4.4 @expandability-endorsement
|
||||
Scenario: REQ-WA103-QO29.3 - Query Support: $expand required field
|
||||
@REQ-WA103-QO29.3 @platinum @2.4.4 @expandability-endorsement @todo
|
||||
Scenario: REQ-WA103-QO29.3 - Query Support: $expand required field (TODO)
|
||||
When a GET request is made to the resolved Url in "REQ-WA103-QO29.3"
|
||||
Then the server responds with a status code of 200
|
||||
And the response is valid JSON
|
||||
And the response has results
|
||||
|
||||
@REQ-WA103-QM3 @platinum @2.4.6 @queryability-endorsement @deprecated
|
||||
Scenario: REQ-WA103-QM3 - Support Literals: $any
|
||||
@REQ-WA103-QM3 @platinum @2.4.6 @queryability-endorsement @todo
|
||||
Scenario: REQ-WA103-QM3 - Support Literals: any() Lambda Expression (TODO)
|
||||
When a GET request is made to the resolved Url in "REQ-WA103-QM3"
|
||||
Then the server responds with a status code of 200
|
||||
And the response is valid JSON
|
||||
And the response has results
|
||||
|
||||
@REQ-WA103-QM4 @platinum @2.4.6 @queryability-endorsement
|
||||
Scenario: REQ-WA103-QM4 - Query Support Literals: $all
|
||||
@REQ-WA103-QM4 @platinum @2.4.6 @queryability-endorsement @todo
|
||||
Scenario: REQ-WA103-QM4 - Query Support Literals: all() Lambda Operator (TODO)
|
||||
When a GET request is made to the resolved Url in "REQ-WA103-QM4"
|
||||
Then the server responds with a status code of 200
|
||||
And the response is valid JSON
|
||||
And the response has results
|
||||
|
||||
@REQ-WA103-QM5.1 @platinum @2.4.7 @queryability-endorsement @geospatial
|
||||
Scenario: REQ-WA103-QM5.1 - Query Support: GeoSpatial Search Implementation
|
||||
@REQ-WA103-QM5.1 @platinum @2.4.7 @queryability-endorsement @geospatial @todo
|
||||
Scenario: REQ-WA103-QM5.1 - Query Support: GeoSpatial Search Implementation (TODO)
|
||||
When a GET request is made to the resolved Url in "REQ-WA103-QM5.1"
|
||||
Then the server responds with a status code of 200
|
||||
And the response is valid JSON
|
||||
And the response has results
|
||||
|
||||
@REQ-WA103-QM5.2 @platinum @2.4.7 @queryability-endorsement @geospatial
|
||||
Scenario: REQ-WA103-QM5.2 - Query Support: GeoSpatial Search Implementation
|
||||
@REQ-WA103-QM5.2 @platinum @2.4.7 @queryability-endorsement @geospatial @todo
|
||||
Scenario: REQ-WA103-QM5.2 - Query Support: GeoSpatial Search Implementation (TODO)
|
||||
When a GET request is made to the resolved Url in "REQ-WA103-QM5.2"
|
||||
Then the server responds with a status code of 200
|
||||
And the response is valid JSON
|
||||
|
|
|
@ -403,7 +403,8 @@ public class WebAPIServer_1_0_2 implements En {
|
|||
initialResponseData.set(responseData.get());
|
||||
|
||||
//TODO: convert to OData filter factory
|
||||
requestUri.set(Commander.prepareURI(Settings.resolveParameters(settings.getRequests().get(requirementId), settings).getUrl() + "&$skip=" + skipCount));
|
||||
requestUri.set(Commander.prepareURI(Settings.resolveParameters(settings.getRequestById(requirementId), settings).getUrl()
|
||||
+ "&" + Commander.ODATA_QUERY_OPTIONS.SKIP +"=" + skipCount));
|
||||
executeGetRequest.apply(requestUri.get());
|
||||
} catch (Exception ex) {
|
||||
fail(ex.getMessage());
|
||||
|
@ -437,13 +438,13 @@ public class WebAPIServer_1_0_2 implements En {
|
|||
/*
|
||||
* GET request by requirementId (see generic.resoscript)
|
||||
*/
|
||||
When("^a GET request is made to the resolved Url in \"([^\"]*)\"$", (String requirementId) -> {
|
||||
When("^a GET request is made to the resolved Url in \"([^\"]*)\"$", (String requestId) -> {
|
||||
try {
|
||||
//reset local state each time a get request is run
|
||||
resetRequestState.run();
|
||||
|
||||
LOG.info("RequirementId: " + requirementId);
|
||||
requestUri.set(Commander.prepareURI(Settings.resolveParameters(settings.getRequests().get(requirementId), settings).getUrl()));
|
||||
LOG.info("Request ID: " + requestId);
|
||||
requestUri.set(Commander.prepareURI(Settings.resolveParameters(settings.getRequestById(requestId), settings).getUrl()));
|
||||
executeGetRequest.apply(requestUri.get());
|
||||
} catch (Exception ex) {
|
||||
LOG.debug("Exception was thrown in " + this.getClass() + ": " + ex.toString());
|
||||
|
@ -1054,11 +1055,11 @@ public class WebAPIServer_1_0_2 implements En {
|
|||
});
|
||||
|
||||
|
||||
When("^a GET request is made to the resolved Url in \"([^\"]*)\" using the OData Client$", (String parameterRequirementId) -> {
|
||||
String uriString = Settings.resolveParameters(settings.getRequests().get(parameterRequirementId), settings).getUrl();
|
||||
assertTrue("ERROR: the resolved Url in '" + parameterRequirementId + "' was invalid!", uriString != null && uriString.length() > 0);
|
||||
When("^a GET request is made to the resolved Url in \"([^\"]*)\" using the OData Client$", (String parameterRequestId) -> {
|
||||
String uriString = Settings.resolveParameters(settings.getRequestById(parameterRequestId), settings).getUrl();
|
||||
assertTrue("ERROR: the resolved Url in '" + parameterRequestId + "' was invalid!", uriString != null && uriString.length() > 0);
|
||||
|
||||
LOG.info("Requirement Id: " + parameterRequirementId);
|
||||
LOG.info("Request Id: " + parameterRequestId);
|
||||
try {
|
||||
requestUri.set(prepareUri.apply(uriString));
|
||||
clientEntitySetRequest.set(commander.get().getClient().getRetrieveRequestFactory().getEntitySetRequest(requestUri.get()));
|
||||
|
|
|
@ -3,7 +3,6 @@ package org.reso.commander;
|
|||
//import io.cucumber.core.cli.Main;
|
||||
|
||||
import org.apache.commons.cli.*;
|
||||
import org.apache.http.HttpStatus;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.apache.olingo.client.api.domain.ClientEntitySet;
|
||||
|
@ -14,13 +13,10 @@ import org.reso.models.Request;
|
|||
import org.reso.models.Settings;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileWriter;
|
||||
import java.text.DateFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.function.Function;
|
||||
|
||||
|
@ -46,9 +42,6 @@ public class App {
|
|||
|
||||
private static final Logger LOG = LogManager.getLogger(App.class);
|
||||
|
||||
//use only one instance of the stats class per run
|
||||
private static final Stats STATS = new Stats();
|
||||
|
||||
private static final String DIVIDER = "==============================================================";
|
||||
private static final String SMALL_DIVIDER = "===========================";
|
||||
private static final String RESOSCRIPT_EXTENSION = ".resoscript";
|
||||
|
@ -162,9 +155,6 @@ public class App {
|
|||
|
||||
String outputFilePath;
|
||||
|
||||
//start timer for entire run
|
||||
STATS.startTimer();
|
||||
|
||||
for (int i = 0; i < numRequests; i++) {
|
||||
try {
|
||||
request = settings.getRequestsAsList().get(i);
|
||||
|
@ -173,73 +163,40 @@ public class App {
|
|||
LOG.info(SMALL_DIVIDER);
|
||||
LOG.info("Request: #" + (i + 1));
|
||||
LOG.info(SMALL_DIVIDER);
|
||||
LOG.info("Request Name: " + request.getName());
|
||||
|
||||
//TODO: function-ize the property test
|
||||
LOG.info("Description: " + (request.getTestDescription().length() > 0 ? request.getTestDescription() : "Not Specified"));
|
||||
LOG.info("Requirement Id: " + (request.getRequirementId().length() > 0 ? request.getRequirementId() : "Not Specified"));
|
||||
LOG.info("Metallic Level: " + (request.getMetallicLevel().length() > 0 ? request.getMetallicLevel() : "Not Specified"));
|
||||
LOG.info("Capability: " + (request.getCapability().length() > 0 ? request.getCapability() : "Not Specified"));
|
||||
LOG.info("Web API Reference: " + (request.getWebApiReference().length() > 0 ? request.getWebApiReference() : "Not Specified"));
|
||||
if (request.getRequestId() != null && request.getRequestId().length() > 0) {
|
||||
LOG.info("Request Id: " + request.getRequestId());
|
||||
}
|
||||
|
||||
resolvedUrl = Settings.resolveParameters(request, settings).getUrl();
|
||||
LOG.info("Resolved URL: " + resolvedUrl);
|
||||
|
||||
STATS.startRequest(request);
|
||||
LOG.info("Resolved URL: " + resolvedUrl);
|
||||
|
||||
//only run tests if they have URLs that resolve
|
||||
if (resolvedUrl != null && resolvedUrl.length() > 0) {
|
||||
if (resolvedUrl != null && resolvedUrl.length() > 0 && request.getOutputFile() != null && request.getOutputFile().length() > 0) {
|
||||
|
||||
outputFilePath = directoryName + outputPath + File.separator + request.getOutputFile();
|
||||
LOG.info("Output File: " + outputFilePath);
|
||||
|
||||
//get the response code from the request
|
||||
responseCode = commander.saveGetRequest(resolvedUrl, outputFilePath);
|
||||
request.setHttpResponseCode(responseCode);
|
||||
|
||||
LOG.info("Response Code: " + responseCode);
|
||||
|
||||
|
||||
if (responseCode == HttpStatus.SC_OK) {
|
||||
STATS.updateRequest(request, Request.Status.SUCCEEDED);
|
||||
} else {
|
||||
STATS.updateRequest(request, Request.Status.FAILED);
|
||||
}
|
||||
|
||||
if (request.getOutputFile().toLowerCase().contains(EDMX_EXTENSION.toLowerCase())) {
|
||||
//Main.main(new String[]{"-g", "org.reso.certification.stepdefs#WebAPIServer_1_0_2", "/home/jdarnell/work/reso/github/web-api-commander/src/main/java/org/reso/certification/features/web-api-server-1.0.2.feature"});
|
||||
if (validateMetadata(commander, outputFilePath)) {
|
||||
metadata = commander.readEdm(outputFilePath);
|
||||
} else {
|
||||
LOG.error("Error: Invalid metadata retrieved. Cannot continue!!");
|
||||
System.exit(NOT_OK);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
LOG.info("Request " + request.getRequirementId() + " has an empty URL. Skipping...");
|
||||
STATS.updateRequest(request, Request.Status.SKIPPED);
|
||||
LOG.info("Request " + request.getRequestId() + " has an empty URL. Skipping...");
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
STATS.updateRequest(request, Request.Status.FAILED, ex);
|
||||
LOG.error("Exception thrown in RUN_RESOSCRIPT Action. Exception is: \n" + ex.toString());
|
||||
LOG.error("Stack trace:");
|
||||
Arrays.stream(ex.getStackTrace()).forEach(stackTraceElement -> LOG.error(stackTraceElement.toString()));
|
||||
} finally {
|
||||
if (resolvedUrl != null && resolvedUrl.length() > 0) {
|
||||
LOG.info("Elapsed Time: " + String.format("%.2f", (STATS.getRequests().get(request).getElapsedTimeMillis() / 1000.0)) + "s");
|
||||
}
|
||||
}
|
||||
LOG.info("\n\n");
|
||||
LOG.info("\n ");
|
||||
}
|
||||
|
||||
//stop global timer
|
||||
STATS.stopTimer();
|
||||
|
||||
LOG.info(DIVIDER);
|
||||
LOG.info("RESOScript Complete!");
|
||||
LOG.info(DIVIDER + "\n");
|
||||
|
||||
LOG.info(generateReport(STATS, metadata, directoryName + outputPath));
|
||||
|
||||
System.exit(OK); //terminate the program after the batch completes
|
||||
}
|
||||
|
||||
|
@ -349,7 +306,6 @@ public class App {
|
|||
new HelpFormatter().printHelp("java -jar web-api-commander", options);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Generates totals report from aggregates.
|
||||
* @param totalRequestCount total request count
|
||||
|
@ -414,80 +370,6 @@ public class App {
|
|||
return reportBuilder.toString();
|
||||
}
|
||||
|
||||
private static String generateReport(Stats stats, Edm metadata, String outputPath) {
|
||||
|
||||
StringBuilder reportBuilder = new StringBuilder();
|
||||
|
||||
int numSucceeded, numFailed, numSkipped, numIncomplete, requestCount;
|
||||
|
||||
Set<String> metallicLevels = new HashSet<>();
|
||||
Set<String> capabilityNames = new HashSet<>();
|
||||
|
||||
for(Request req : stats.getRequests().values()) {
|
||||
metallicLevels.add(req.getMetallicLevel());
|
||||
capabilityNames.add(req.getCapability());
|
||||
}
|
||||
|
||||
numSucceeded = stats.getRequestCount(Request.Status.SUCCEEDED);
|
||||
numFailed = stats.getRequestCount(Request.Status.FAILED);
|
||||
numSkipped = stats.getRequestCount(Request.Status.SKIPPED);
|
||||
numIncomplete = stats.getRequestCount(Request.Status.STARTED);
|
||||
|
||||
reportBuilder.append("\n\n" + DIVIDER);
|
||||
reportBuilder.append("\nRequest Statistics");
|
||||
reportBuilder.append("\n" + DIVIDER);
|
||||
|
||||
reportBuilder.append(generateTotalsReport(stats.totalRequestCount(), numSucceeded, numFailed, numSkipped, numIncomplete));
|
||||
|
||||
reportBuilder.append("\n" + "Total Time Taken: ").append(String.format("%.2f", (stats.getElapsedTimeMillis() / 1000.0))).append("s");
|
||||
reportBuilder.append("\n" + "Average Time Taken: ").append(String.format("%.2f", (stats.getElapsedTimeMillis() / 1000.0) / stats.totalRequestCount())).append("s");
|
||||
|
||||
// Generate Metallic Certification Report
|
||||
reportBuilder.append("\n\n" + DIVIDER);
|
||||
reportBuilder.append("\nMetallic Certification Report");
|
||||
reportBuilder.append("\n" + DIVIDER);
|
||||
for (String metallicKey : metallicLevels) {
|
||||
requestCount = stats.filterByMetallicCertification(metallicKey).size();
|
||||
numSucceeded = stats.filterByMetallicCertification(metallicKey, stats.filterByStatus(Request.Status.SUCCEEDED)).size();
|
||||
numFailed = stats.filterByMetallicCertification(metallicKey, stats.filterByStatus(Request.Status.FAILED)).size();
|
||||
numSkipped = stats.filterByMetallicCertification(metallicKey, stats.filterByStatus(Request.Status.SKIPPED)).size();
|
||||
numIncomplete = stats.filterByMetallicCertification(metallicKey, stats.filterByStatus(Request.Status.STARTED)).size();
|
||||
|
||||
reportBuilder.append("\n\n").append(metallicKey).append(numSucceeded > 0 && numSucceeded == (requestCount - numSkipped) ? " - ALL REQUESTS SUCCEEDED!" : "");
|
||||
reportBuilder.append(generateTotalsReport(requestCount, numSucceeded, numFailed, numSkipped, numIncomplete));
|
||||
}
|
||||
|
||||
// Generate Capabilities Report
|
||||
reportBuilder.append("\n\n" + DIVIDER);
|
||||
reportBuilder.append("\nCapabilities Certification Report");
|
||||
reportBuilder.append("\n" + DIVIDER);
|
||||
for (String capabilityKey : capabilityNames) {
|
||||
requestCount = stats.filterByCapability(capabilityKey).size();
|
||||
numSucceeded = stats.filterByCapability(capabilityKey, stats.filterByStatus(Request.Status.SUCCEEDED)).size();
|
||||
numFailed = stats.filterByCapability(capabilityKey, stats.filterByStatus(Request.Status.FAILED)).size();
|
||||
numSkipped = stats.filterByCapability(capabilityKey, stats.filterByStatus(Request.Status.SKIPPED)).size();
|
||||
numIncomplete = stats.filterByCapability(capabilityKey, stats.filterByStatus(Request.Status.STARTED)).size();
|
||||
|
||||
reportBuilder.append("\n\n").append(capabilityKey).append(numSucceeded > 0 && numSucceeded == (requestCount - numSkipped) ? " - ALL REQUESTS SUCCEEDED!" : "");
|
||||
reportBuilder.append(generateTotalsReport(requestCount, numSucceeded, numFailed, numSkipped, numIncomplete));
|
||||
}
|
||||
reportBuilder.append("\n" + DIVIDER + "\n");
|
||||
|
||||
String reportContent = reportBuilder.toString();
|
||||
|
||||
try {
|
||||
FileWriter writer = new FileWriter(outputPath + File.separator + "CertificationReport.txt" );
|
||||
writer.write(reportContent);
|
||||
writer.write(getMetadataReport(metadata));
|
||||
writer.flush();
|
||||
writer.close();
|
||||
} catch (Exception ex) {
|
||||
LOG.error("Could not create Certification Report!");
|
||||
LOG.error(ex.toString());
|
||||
}
|
||||
return reportBuilder.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Helps with various app options used by the main application when processing input from the command line.
|
||||
*/
|
||||
|
|
|
@ -1,87 +0,0 @@
|
|||
package org.reso.commander;
|
||||
|
||||
import org.reso.models.Request;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* The Stats class keeps information about a Commander run.
|
||||
*/
|
||||
public class Stats {
|
||||
Date startDate, endDate;
|
||||
private Map<Request, Request> requests = new HashMap<>();
|
||||
|
||||
public Stats () { /* */ }
|
||||
|
||||
public void startRequest(Request request) {
|
||||
if (request != null) {
|
||||
requests.put(request, request.setStatus(Request.Status.STARTED).startTimer());
|
||||
}
|
||||
}
|
||||
|
||||
public void updateRequest(Request request, Request.Status status) {
|
||||
// only affects existing requestStatuses, use startRequest to register a Request
|
||||
requests.get(request).stopTimer().setStatus(status);
|
||||
}
|
||||
|
||||
public void updateRequest(Request request, Request.Status status, Exception ex) {
|
||||
requests.get(request).setFailedRequestException(ex);
|
||||
updateRequest(request, status);
|
||||
}
|
||||
|
||||
public Map<Request, Request> getRequests() {
|
||||
return requests;
|
||||
}
|
||||
|
||||
public int totalRequestCount() {
|
||||
return requests.size();
|
||||
}
|
||||
|
||||
public int getRequestCount(Request.Status status) {
|
||||
return filterByStatus(status, requests.values()).size();
|
||||
}
|
||||
|
||||
public Collection<Request> filterByStatus(Request.Status status) {
|
||||
return filterByStatus(status, requests.values());
|
||||
}
|
||||
|
||||
public Collection<Request> filterByStatus(Request.Status status, Collection<Request> collection) {
|
||||
return collection.stream()
|
||||
.filter(requestStatus -> requestStatus.getStatus().compareTo(status) == 0).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
public Collection<Request> filterByMetallicCertification(String metallicName) {
|
||||
return filterByMetallicCertification(metallicName, requests.values());
|
||||
}
|
||||
|
||||
public Collection<Request> filterByMetallicCertification(String metallicName, Collection<Request> collection) {
|
||||
return collection.stream()
|
||||
.filter(request -> request.getMetallicLevel().compareTo(metallicName) == 0).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
public Collection<Request> filterByCapability(String capabilityName) {
|
||||
return filterByCapability(capabilityName, requests.values());
|
||||
}
|
||||
|
||||
public Collection<Request> filterByCapability(String capabilityName, Collection<Request> collection) {
|
||||
return collection.stream()
|
||||
.filter(request -> request.getCapability().compareTo(capabilityName) == 0).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
public HashMap<String, Integer> metallicStats;
|
||||
public HashMap<String, Integer> capabilitiesStats;
|
||||
|
||||
public void startTimer() {
|
||||
startDate = new Date();
|
||||
}
|
||||
|
||||
public void stopTimer() {
|
||||
endDate = new Date();
|
||||
}
|
||||
|
||||
public long getElapsedTimeMillis() {
|
||||
return endDate.getTime() - startDate.getTime();
|
||||
}
|
||||
|
||||
}
|
|
@ -21,7 +21,6 @@ public class Parameters {
|
|||
parameters = new LinkedHashMap<>();
|
||||
}
|
||||
|
||||
|
||||
public static Parameters loadFromRESOScript(File file) {
|
||||
final String PARAMETERS_KEY = "Parameters";
|
||||
final String NAME_FIELD = "Name";
|
||||
|
|
|
@ -16,14 +16,9 @@ import java.util.Date;
|
|||
import java.util.List;
|
||||
|
||||
public class Request {
|
||||
private String requirementId;
|
||||
private String name;
|
||||
private String requestId;
|
||||
private String outputFile;
|
||||
private String url;
|
||||
private String testDescription;
|
||||
private String metallicLevel;
|
||||
private String capability;
|
||||
private String webApiReference;
|
||||
|
||||
private Request request;
|
||||
private Status status;
|
||||
|
@ -39,55 +34,84 @@ public class Request {
|
|||
* @param outputFile
|
||||
* @param url
|
||||
*/
|
||||
public Request(String requirementId, String outputFile, String url, String testDescription, String metallicLevel,
|
||||
String capability, String webApiReference) {
|
||||
|
||||
//TODO: add Builder
|
||||
setRequirementId(requirementId);
|
||||
setOutputFile(outputFile);
|
||||
public Request(String url, String outputFile, String requestId) {
|
||||
setUrl(url);
|
||||
setTestDescription(testDescription);
|
||||
setMetallicLevel(metallicLevel);
|
||||
setCapability(capability);
|
||||
setWebApiReference(webApiReference);
|
||||
setOutputFile(outputFile);
|
||||
setRequestId(requestId);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the status of the given request
|
||||
* @return the status of the request
|
||||
*/
|
||||
public Status getStatus() {
|
||||
return status;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the status for the give request
|
||||
* @param status the status to set
|
||||
* @return the current instance of the request
|
||||
*/
|
||||
public Request setStatus(Status status) {
|
||||
this.status = status;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Starts request timer
|
||||
* @return the current request
|
||||
*/
|
||||
public Request startTimer() {
|
||||
startDate = new Date();
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Stops request timer
|
||||
* @return the current request
|
||||
*/
|
||||
public Request stopTimer() {
|
||||
endDate = new Date();
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the elapsed time the request took to run
|
||||
* @return the elapsed time of the request in milliseconds
|
||||
*/
|
||||
public long getElapsedTimeMillis() {
|
||||
return endDate != null && startDate != null ? endDate.getTime() - startDate.getTime() : 0L;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the exception for a given request
|
||||
* @param failedRequestException the exception that was thrown when the request was executed
|
||||
*/
|
||||
public void setFailedRequestException(Exception failedRequestException) {
|
||||
this.failedRequestException = failedRequestException;
|
||||
}
|
||||
|
||||
/**
|
||||
* HTTP Response code getter
|
||||
* @return an Integer representing the response code
|
||||
*/
|
||||
public Integer getHttpResponseCode() {
|
||||
return httpResponseCode;
|
||||
}
|
||||
|
||||
/**
|
||||
* HTTP Response code setter
|
||||
* @param httpResponseCode an Integer representing the HTTP Response code
|
||||
*/
|
||||
public void setHttpResponseCode(Integer httpResponseCode) {
|
||||
this.httpResponseCode = httpResponseCode;
|
||||
}
|
||||
|
||||
/**
|
||||
* An enumeration of request status options
|
||||
*/
|
||||
public enum Status {
|
||||
STARTED, SUCCEEDED, FAILED, SKIPPED
|
||||
}
|
||||
|
@ -121,7 +145,7 @@ public class Request {
|
|||
String expression = "/OutputScript/" + REQUESTS_KEY + "/node()";
|
||||
NodeList nodes = (NodeList) xPath.compile(expression).evaluate(xmlDocument, XPathConstants.NODESET);
|
||||
Node node;
|
||||
String name, outputFile, url, testDescription, requirementId, metallicLevel, capability, webApiReference;
|
||||
String outputFile, url, requestId;
|
||||
Request request;
|
||||
|
||||
for (int i = 0; i < nodes.getLength(); i++) {
|
||||
|
@ -130,17 +154,9 @@ public class Request {
|
|||
if (node.getNodeType() == Node.ELEMENT_NODE) {
|
||||
outputFile = safeGetNamedItem(FIELDS.OUTPUT_FILE, node);
|
||||
url = safeGetNamedItem(FIELDS.URL, node);
|
||||
testDescription = safeGetNamedItem(FIELDS.TEST_DESCRIPTION, node);
|
||||
requirementId = safeGetNamedItem(FIELDS.REQUIREMENT_ID, node);
|
||||
metallicLevel = safeGetNamedItem(FIELDS.METALLIC_LEVEL, node);
|
||||
capability = safeGetNamedItem(FIELDS.CAPABILITY, node);
|
||||
webApiReference = safeGetNamedItem(FIELDS.WEB_API_REFERENCE, node);
|
||||
|
||||
request = new Request(requirementId, outputFile, url, testDescription, metallicLevel, capability, webApiReference);
|
||||
|
||||
name = safeGetNamedItem(FIELDS.NAME, node);
|
||||
request.setName(name == null ? outputFile : name);
|
||||
requestId = safeGetNamedItem(FIELDS.REQUEST_ID, node);
|
||||
|
||||
request = new Request(url, outputFile, requestId);
|
||||
requests.add(request);
|
||||
}
|
||||
}
|
||||
|
@ -150,35 +166,20 @@ public class Request {
|
|||
return requests;
|
||||
}
|
||||
|
||||
private int deserializeTests(Node node) {
|
||||
int numTests = 0;
|
||||
|
||||
|
||||
return numTests;
|
||||
}
|
||||
|
||||
public String getRequirementId() {
|
||||
return requirementId;
|
||||
}
|
||||
|
||||
public void setRequirementId(String requirementId) {
|
||||
this.requirementId = requirementId;
|
||||
/**
|
||||
* Gets the given request by Id, if present.
|
||||
* @return either the request Id or null if none was passed. May be null.
|
||||
*/
|
||||
public String getRequestId() {
|
||||
return requestId;
|
||||
}
|
||||
|
||||
/**
|
||||
* Name getter
|
||||
* @return the name of the request
|
||||
* Sets the given request Id, if present.
|
||||
* @param requestId the request Id to set.
|
||||
*/
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Name setter
|
||||
* @param name the name of the request
|
||||
*/
|
||||
private void setName(String name) {
|
||||
this.name = name;
|
||||
public void setRequestId(String requestId) {
|
||||
this.requestId = requestId;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -213,46 +214,12 @@ public class Request {
|
|||
this.url = url;
|
||||
}
|
||||
|
||||
public String getTestDescription() {
|
||||
return testDescription;
|
||||
}
|
||||
|
||||
public void setTestDescription(String testDescription) {
|
||||
this.testDescription = testDescription;
|
||||
}
|
||||
|
||||
public String getMetallicLevel() {
|
||||
return metallicLevel;
|
||||
}
|
||||
|
||||
public void setMetallicLevel(String metallicLevel) {
|
||||
this.metallicLevel = metallicLevel;
|
||||
}
|
||||
|
||||
public String getCapability() {
|
||||
return capability;
|
||||
}
|
||||
|
||||
public void setCapability(String capability) {
|
||||
this.capability = capability;
|
||||
}
|
||||
|
||||
public String getWebApiReference() {
|
||||
return webApiReference;
|
||||
}
|
||||
|
||||
public void setWebApiReference(String webApiReference) {
|
||||
this.webApiReference = webApiReference;
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents the known fields that can be in a serialized Request
|
||||
*/
|
||||
private static final class FIELDS {
|
||||
static final String NAME = "Name";
|
||||
static final String OUTPUT_FILE = "OutputFile";
|
||||
static final String URL = "Url";
|
||||
static final String TEST_DESCRIPTION = "TestDescription";
|
||||
static final String REQUIREMENT_ID = "RequirementId";
|
||||
static final String METALLIC_LEVEL = "MetallicLevel";
|
||||
static final String CAPABILITY = "Capability";
|
||||
static final String WEB_API_REFERENCE = "WebAPIReference";
|
||||
static final String REQUEST_ID = "RequestId";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,7 +12,7 @@ import java.util.*;
|
|||
public class Settings {
|
||||
private ClientSettings clientSettings;
|
||||
private Parameters parameters;
|
||||
private Map<String, Request> requests;
|
||||
private Map<Request, Request> requests;
|
||||
|
||||
public Settings() {
|
||||
clientSettings = new ClientSettings();
|
||||
|
@ -57,9 +57,7 @@ public class Settings {
|
|||
* @return a copy of the request with the URL resolved.
|
||||
*/
|
||||
public static Request resolveParameters(Request request, Settings settings) {
|
||||
//calls to resolve nested parameters
|
||||
return new Request(request.getRequirementId(), request.getOutputFile(), resolveParametersString(request.getUrl(), settings), request.getTestDescription(),
|
||||
request.getMetallicLevel(), request.getCapability(), request.getWebApiReference());
|
||||
return new Request(resolveParametersString(request.getUrl(), settings), request.getOutputFile(), request.getRequestId());
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -132,10 +130,27 @@ public class Settings {
|
|||
* Requests getter.
|
||||
* @return The request map that was loaded, indexed by request name.
|
||||
*/
|
||||
public Map<String, Request> getRequests() {
|
||||
public Map<Request, Request> getRequests() {
|
||||
return requests;
|
||||
}
|
||||
|
||||
/**
|
||||
* Requests getter.
|
||||
* @return The request map that was loaded, indexed by request name.
|
||||
*/
|
||||
public Request getRequestById(String requestId) {
|
||||
Request found = null;
|
||||
for (Map.Entry<Request, Request> entry : getRequests().entrySet()) {
|
||||
Request key = entry.getKey();
|
||||
Request value = entry.getValue();
|
||||
if (key.getRequestId().contentEquals(requestId)) {
|
||||
found = value;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return found;
|
||||
}
|
||||
|
||||
/**
|
||||
* Requests getter.
|
||||
*
|
||||
|
@ -151,7 +166,7 @@ public class Settings {
|
|||
* @param requests a list of requests to create the request map from
|
||||
*/
|
||||
private void setRequests(List<Request> requests) {
|
||||
this.requests = new LinkedHashMap<String, Request>();
|
||||
requests.forEach(request -> this.requests.put(request.getRequirementId(), request));
|
||||
this.requests = new LinkedHashMap<Request, Request>();
|
||||
requests.forEach(request -> this.requests.put(request, request));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue