Skip to content
Snippets Groups Projects
Commit 40d09f9b authored by Miguel Angel Reina Ortega's avatar Miguel Angel Reina Ortega
Browse files

Merge branch 'STF531-DISCOVERY_TEST_CASES' into 'master'

Stf531 discovery test cases



See merge request !15
parents dd12cc8e 2a610591
No related branches found
No related tags found
1 merge request!25Ae fixes
......@@ -867,7 +867,97 @@ module OneM2M_Functions {
unmap(self:acPort, system:acPort);
} //end f_cse_notifyProcedure
/**
* @desc It determines whether the addressing method of the given address is non-hierarchical. Not valid for CSE-Base as target
* @param p_resourceAddress
* @return boolean
*/
function f_isNonHierarchical(XSD.ID p_resourceAddress) runs on Tester return boolean {
var integer i;
var integer v_nbOfSlashes:= 0;
for (i := 0; i < lengthof(p_resourceAddress); i:= i+1){
if(match (p_resourceAddress[i], "/")){
v_nbOfSlashes:= v_nbOfSlashes+1;
}
}
if(f_isScopeCseRelative(p_resourceAddress)) {
if(v_nbOfSlashes == 0 ) {
return true;
} else {
return false;
}
} else if (f_isScopeSpRelative(p_resourceAddress)){
if(v_nbOfSlashes == 2 ) {
return true;
} else {
return false;
}
} else if (f_isScopeAbsolute(p_resourceAddress)){
if(v_nbOfSlashes == 4 ) {
return true;
} else {
return false;
}
} else {
return false;
}
}
/**
* @desc It determines whether the addressing method of the given address is hierarchical. Not valid for CSE-Base as target
* @param p_resourceAddress
* @return boolean
*/
function f_isHierarchical(XSD.ID p_resourceAddress) runs on Tester return boolean {
if(f_isNonHierarchical(p_resourceAddress)) {
return false;
} else {
return true;
}
}
/**
* @desc It determines whether the primitive scope of the given address is CSE-Relative
* @param p_resourceAddress
* @return boolean
*/
function f_isScopeCseRelative(XSD.ID p_resourceAddress) runs on Tester return boolean {
if (p_resourceAddress[0] != "/") {
return true;
} else {
return false;
}
}
/**
* @desc It determines whether the primitive scope of the given address is SP-Relative
* @param p_resourceAddress
* @return boolean
*/
function f_isScopeSpRelative(XSD.ID p_resourceAddress) runs on Tester return boolean {
if ((p_resourceAddress[0] == "/") and (p_resourceAddress[1] != "/")){
return true;
} else {
return false;
}
}
/**
* @desc It determines whether the primitive scope of the given address is Absolute
* @param p_resourceAddress
* @return boolean
*/
function f_isScopeAbsolute(XSD.ID p_resourceAddress) runs on Tester return boolean {
if ((p_resourceAddress[0] == "/") and (p_resourceAddress[1] == "/")) {
return true;
} else {
return false;
}
}
}//end group helpingFunctions
......
......@@ -188,6 +188,110 @@ module OneM2M_Templates {
localTokenIDs := omit,
tokenRequestIndicator := omit
};
/**
* @desc RETRIEVE request primtive containing the Filter Criteria in the filterCriteria field
* @param p_targetResourceAddress Target resource address
* @param p_filterCriteria FilterCriteria
* @param p_originator Originator (from)
*/
template (value) RequestPrimitive m_retrieveResourceFilterUsageOption(XSD.ID p_targetResourceAddress, in XSD.ID p_originator, in template (value) FilterUsage p_filterUsage) modifies m_retrieveResource := {
requestIdentifier := "m_retrieveResourceFilterUsageOption" & f_rnd(1, 1000000),
filterCriteria := {
createdBefore := omit,
createdAfter := omit,
modifiedSince := omit,
unmodifiedSince := omit,
stateTagSmaller := omit,
stateTagBigger := omit,
expireBefore := omit,
expireAfter := omit,
labels := omit,
resourceType := omit,
sizeAbove := omit,
sizeBelow := omit,
contentType_list := {},
attribute_list := {},
filterUsage := p_filterUsage,
limit := omit,
semanticsFilter_list := {},
filterOperation := omit,
contentFilterSyntax := omit,
contentFilterQuery := omit,
level := omit,
offset := omit
}
};
/**
* @desc RETRIEVE request primtive containing the Discovery Type in the discoveryResultType field and Filter Criteria in the filterCriteria field
* @param p_targetResourceAddress Target resource address
* @param p_filterCriteria FilterCriteria
* @param p_originator Originator (from)
*/
template (value) RequestPrimitive m_retrieveResourceDiscResTypeFilterUsageOption(XSD.ID p_targetResourceAddress, in XSD.ID p_originator, in template (value) DiscResType p_discResType, in template (value) FilterUsage p_filterUsage) modifies m_retrieveResource := {
requestIdentifier := "m_retrieveResourceFilterUsageOption" & f_rnd(1, 1000000),
filterCriteria := {
createdBefore := omit,
createdAfter := omit,
modifiedSince := omit,
unmodifiedSince := omit,
stateTagSmaller := omit,
stateTagBigger := omit,
expireBefore := omit,
expireAfter := omit,
labels := omit,
resourceType := omit,
sizeAbove := omit,
sizeBelow := omit,
contentType_list := {},
attribute_list := {},
filterUsage := p_filterUsage,
limit := omit,
semanticsFilter_list := {},
filterOperation := omit,
contentFilterSyntax := omit,
contentFilterQuery := omit,
level := omit,
offset := omit
},
discoveryResultType := p_discResType
};
/**
* @desc RETRIEVE request primtive containing the Discovery Type in the discoveryResultType field and Filter Criteria in the filterCriteria field
* @param p_targetResourceAddress Target resource address
* @param p_filterCriteria FilterCriteria
* @param p_originator Originator (from)
*/
template (value) RequestPrimitive m_retrieveResourceInvalidFormatOption(XSD.ID p_targetResourceAddress, in XSD.ID p_originator) modifies m_retrieveResource := {
requestIdentifier := "m_retrieveResourceFilterUsageOption" & f_rnd(1, 1000000),
filterCriteria := {
createdBefore := omit,
createdAfter := omit,
modifiedSince := omit,
unmodifiedSince := omit,
stateTagSmaller := omit,
stateTagBigger := omit,
expireBefore := omit,
expireAfter := omit,
labels := omit,
resourceType := omit,
sizeAbove := omit,
sizeBelow := omit,
contentType_list := {},
attribute_list := {},
filterUsage := omit,
limit := omit,
semanticsFilter_list := {},
filterOperation := omit,
contentFilterSyntax := omit,
contentFilterQuery := omit,
level := omit,
offset := omit
}
};
}//end group Retrieve
group Update {
......@@ -2735,6 +2839,21 @@ module OneM2M_Templates {
tokenRequestInformation := *
};
template ResponsePrimitive mw_responseDiscovery := {
responseStatusCode := int2000,
requestIdentifier := ?,
primitiveContent := {uRIList := ?},
to_ := *,
from_ := *,
originatingTimestamp := *,
resultExpirationTimestamp := *,
eventCategory := *,
contentStatus := *,
contentOffset := *,
assignedTokenIdentifiers := *,
tokenRequestInformation := *
};
template ResponsePrimitive m_responseNotification(ResponseStatusCode p_statusCode, in template(omit) PrimitiveContent p_notification := omit) := {
responseStatusCode := p_statusCode,
requestIdentifier := testcasename() & "-m_responseNotification" & f_rnd(1, 1000000),
......
......@@ -243,6 +243,7 @@ module OneM2M_TestControl {
execute(TC_CSE_GMG_BV_022_02());
execute(TC_CSE_GMG_BV_022_03());
execute(TC_CSE_GMG_BV_022_04());
execute(TC_CSE_DIS_BV_001());
execute(TC_CSE_SUB_BV_001_01());
execute(TC_CSE_SUB_BV_001_02());
execute(TC_CSE_SUB_BV_002());
......
......@@ -10318,6 +10318,349 @@ module OneM2M_Testcases {
} // end group g_CSE_GMG_BV_024
} // end group Group_Managment
group Discovery {
group g_CSE_DIS_BV_001{
testcase TC_CSE_DIS_BV_001() runs on CseTester system CseSystem {
// Local variables
var integer v_aeIndex := -1;
var integer v_resourceIndex := -1;
var RequestPrimitive v_request;
var integer v_childResourceIndex := -1;
const ResourceType c_containerResourceType := int3;
// Test control
// Test component configuration
f_cf01Up();
// Test adapter configuration
// Preamble
v_aeIndex := f_cse_preamble_registerAe();//AE1 is registred;
v_resourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_aeIndex);
v_childResourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_resourceIndex);
v_request := valueof(m_retrieveResourceFilterUsageOption(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex), int1));
mcaPort.send(m_request(v_request));
tc_ac.start;
alt {
[] mcaPort.receive(mw_response(mw_responseDiscovery)){
tc_ac.stop;
setverdict(pass, testcasename() & ": URI List Representation available");
}
[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) {
tc_ac.stop;
setverdict(fail, testcasename() & ": Wrong responseStatusCode while retrieving resource");
}
[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) {
tc_ac.stop;
setverdict(fail, testcasename() & ": Error while retrieving resource");
}
[] tc_ac.timeout {
setverdict(fail, testcasename() & ": No answer while retrieving resource");
}
}
// Postamble
f_cse_postamble_deleteResources();
// Tear down
f_cf01Down();
} // end TC_CSE_DIS_BV_001
} //end group g_CSE_DIS_BV_001
group g_CSE_DIS_BV_003
{
testcase TC_CSE_DIS_BV_003() runs on CseTester system CseSystem {
// Local variables
var MsgIn v_response;
var integer v_aeIndex := -1;
var integer v_resourceIndex := -1;
var RequestPrimitive v_request;
var integer v_childResourceIndex := -1;
const ResourceType c_containerResourceType := int3;
// Test control
// Test component configuration
f_cf01Up();
// Test adapter configuration
// Preamble
v_aeIndex := f_cse_preamble_registerAe();//AE1 is registred;
v_resourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_aeIndex);
v_childResourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_resourceIndex);
v_request := valueof(m_retrieveResourceFilterUsageOption(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex), int1));
mcaPort.send(m_request(v_request));
tc_ac.start;
alt {
[] mcaPort.receive(mw_response(mw_responseDiscovery)) -> value v_response {
tc_ac.stop;
if(sizeof(v_response.primitive.responsePrimitive.primitiveContent.uRIList) == 0){
setverdict(pass, testcasename() & ": No Content is present");
}
else
{
setverdict(fail, testcasename() & ": Wrong content available in URIList element");
}
}
[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) {
tc_ac.stop;
setverdict(fail, testcasename() & ": Wrong responseStatusCode while retrieving resource");
}
[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) {
tc_ac.stop;
setverdict(fail, testcasename() & ": Error while retrieving resource");
}
[] tc_ac.timeout {
setverdict(fail, testcasename() & ": No answer while retrieving resource");
}
}
// Postamble
f_cse_postamble_deleteResources();
// Tear down
f_cf01Down();
} // end TC_CSE_DIS_BV_003
} //end group g_CSE_DIS_BV_003
group g_CSE_DIS_BV_004
{
testcase TC_CSE_DIS_BV_004() runs on CseTester system CseSystem {
// Local variables
var MsgIn v_response;
var integer v_aeIndex := -1;
var integer v_resourceIndex := -1;
var RequestPrimitive v_request;
var integer v_childResourceIndex := -1;
const ResourceType c_containerResourceType := int3;
// Test control
// Test component configuration
f_cf01Up();
// Test adapter configuration
// Preamble
v_aeIndex := f_cse_preamble_registerAe();//AE1 is registred;
v_resourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_aeIndex);
v_childResourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_resourceIndex);
v_request := valueof(m_retrieveResourceDiscResTypeFilterUsageOption(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex), int2, int1));
mcaPort.send(m_request(v_request));
tc_ac.start;
alt {
[] mcaPort.receive(mw_response(mw_responseDiscovery)) -> value v_response {
tc_ac.stop;
if (f_isNonHierarchical(v_response.primitive.responsePrimitive.primitiveContent.uRIList[0])) {
setverdict(pass, testcasename() & ": Non-hierarchical address form present in URIList element");
} else {
setverdict(fail, testcasename() & ": Non-hierarchical address form absent in URIList representation");
}
}
[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) {
tc_ac.stop;
setverdict(fail, testcasename() & ": Wrong responseStatusCode while retrieving resource");
}
[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) {
tc_ac.stop;
setverdict(fail, testcasename() & ": Error while retrieving resource");
}
[] tc_ac.timeout {
setverdict(fail, testcasename() & ": No answer while retrieving resource");
}
}
// Postamble
f_cse_postamble_deleteResources();
// Tear down
f_cf01Down();
} // end TC_CSE_DIS_BV_004
} //end group g_CSE_DIS_BV_004
group g_CSE_DIS_BO_005{
testcase TC_CSE_DIS_BO_005() runs on CseTester system CseSystem {
// Local variables
var integer v_aeIndex := -1;
var integer v_resourceIndex := -1;
var RequestPrimitive v_request;
var integer v_childResourceIndex := -1;
var integer v_acpAuxIndex := -1;
const ResourceType c_containerResourceType := int3;
// Test control
if(not(PICS_ACP_SUPPORT)) {
log(testcasename() & ":AccessControlPolicy support is required for executing this test case");
stop;
}
// Test component configuration
f_cf01Up();
// Test adapter configuration
// Preamble
v_acpAuxIndex := f_cse_preamble_createAcpAux(-, int31);//c_CRUDN)
v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[v_acpAuxIndex].resource)});//AE1 is registred;
v_resourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_aeIndex);
v_childResourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_resourceIndex);
v_request := valueof(m_retrieveResourceFilterUsageOption(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex), int1));
mcaPort.send(m_request(v_request));
tc_ac.start;
alt {
[] mcaPort.receive(mw_response(mw_responsePrimitive(int4103))) {
tc_ac.stop;
setverdict(pass, testcasename() & ": Access denied to discovery operation for resource " & f_getResourceAddress(v_resourceIndex));
}
[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) {
tc_ac.stop;
setverdict(fail, testcasename() & ": Wrong response status code while discovering " & f_getResourceAddress(v_resourceIndex) & " without having privileges");
}
[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) {
tc_ac.stop;
setverdict(fail, testcasename() & ": Discovering " & f_getResourceAddress(v_resourceIndex) & " without having privileges");
}
[] tc_ac.timeout {
setverdict(fail, testcasename() & ": No answer while discovering resource");
}
}
// Postamble
f_cse_postamble_deleteResources();
// Tear down
f_cf01Down();
} // end TC_CSE_DIS_BO_005
} //end group g_CSE_DIS_BO_005
group g_CSE_DIS_BO_006
{
testcase TC_CSE_DIS_BO_006() runs on CseTester system CseSystem {
// Local variables
var MsgIn v_response;
var integer v_aeIndex := -1;
var integer v_resourceIndex := -1;
var RequestPrimitive v_request;
const ResourceType c_containerResourceType := int3;
var XSD.ID v_resourceId := "nonexisting";
// Test control
// Test component configuration
f_cf01Up();
// Test adapter configuration
// Preamble
v_aeIndex := f_cse_preamble_registerAe();//AE1 is registred;
if(PX_UNSTRUCTURED and (PX_ADDRESSING_FORMAT == e_cseRelative)) {
v_request := valueof(m_retrieveResourceFilterUsageOption(v_resourceId, f_getOriginator(v_aeIndex), int1));
} else {
v_request := valueof(m_retrieveResourceFilterUsageOption(f_getResourceAddress(v_aeIndex) & "/" & v_resourceId, f_getOriginator(v_resourceIndex), int1));
}
mcaPort.send(m_request(v_request));
tc_ac.start;
alt {
[] mcaPort.receive(mw_response(mw_responsePrimitive(int4004))) -> value v_response {
tc_ac.stop;
setverdict(pass, testcasename() & ": Resource not found");
}
[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) {
tc_ac.stop;
setverdict(fail, testcasename() & ": Wrong response status code while retrieving resource");
}
[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) {
tc_ac.stop;
setverdict(fail, testcasename() & ": Wrong response while retrieving resource");
}
[] tc_ac.timeout {
setverdict(fail, testcasename() & ": No answer while retrieving resource");
}
}
// Postamble
f_cse_postamble_deleteResources();
// Tear down
f_cf01Down();
} // end TC_CSE_DIS_BO_006
} //end group g_CSE_DIS_BO_006
group g_CSE_DIS_BI_007
{
testcase TC_CSE_DIS_BI_007() runs on CseTester system CseSystem {
// Local variables
var MsgIn v_response;
var integer v_aeIndex := -1;
var integer v_resourceIndex := -1;
var RequestPrimitive v_request;
var CseTester v_notifyHandler;
var integer v_ae2Index := -1;
var integer v_childResourceIndex := -1;
const ResourceType c_containerResourceType := int3;
// Test control
// Test component configuration
f_cf01Up();
// Test adapter configuration
// Preamble
v_aeIndex := f_cse_preamble_registerAe();//AE1 is registred;
v_resourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_aeIndex);
v_childResourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_resourceIndex);
v_request := valueof(m_retrieveResourceInvalidFormatOption(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex)));
mcaPort.send(m_request(v_request));
tc_ac.start;
alt {
[] mcaPort.receive(mw_response(mw_responsePrimitive(int4102))) -> value v_response {
tc_ac.stop;
setverdict(pass, testcasename() & ": Contents Unacceptable");
}
[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) {
tc_ac.stop;
setverdict(fail, testcasename() & ": Wrong response status code while retrieving resource");
}
[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) {
tc_ac.stop;
setverdict(fail, testcasename() & ": Wrong response while retrieving resource");
}
[] tc_ac.timeout {
setverdict(fail, testcasename() & ": No answer while retrieving resource");
}
}
// Postamble
f_cse_postamble_deleteResources();
// Tear down
f_cf01Down();
} // end TC_CSE_DIS_BI_007
} //end group g_CSE_DIS_BI_007
} //end group Group Discovery
group Subscription_And_Notification {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment