diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn index 2a1974f2a63b9a4d9b0ddce0747b0a549a63dece..bd72b1bb250f1ef32e9eb9eda52d5cbf03078b89 100644 --- a/LibOneM2M/OneM2M_Templates.ttcn +++ b/LibOneM2M/OneM2M_Templates.ttcn @@ -206,6 +206,22 @@ 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 := { + contentType_list := {}, + attribute_list := {}, + filterUsage := p_filterUsage, + semanticsFilter_list := {} + } + }; }//end group Retrieve group Update { diff --git a/OneM2M_TestControl.ttcn b/OneM2M_TestControl.ttcn index 0213720a6c9aacdc82749c0f4a78271e523782e2..a8b69c2aa4dafac7726cbe8a8d87a6014d1dc3cf 100644 --- a/OneM2M_TestControl.ttcn +++ b/OneM2M_TestControl.ttcn @@ -239,6 +239,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()); diff --git a/OneM2M_Testcases.ttcn b/OneM2M_Testcases.ttcn index c57e0683f77a651d2e8cb69e1ce84ee1e5b37e3c..c2da397f9deba9dcc3f7c13bb7735c467677b9b3 100644 --- a/OneM2M_Testcases.ttcn +++ b/OneM2M_Testcases.ttcn @@ -9310,6 +9310,65 @@ 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 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; + 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_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(int2000))) -> value v_response { + tc_ac.stop; + if(not ischosen(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].URIList)){ + setverdict(fail, testcasename() & ": URI List Representation not present"); + } + else + { + setverdict(pass, testcasename() & ": URI List Representation available"); + } + } + [] 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 + + } //end group Group Discovery group Subscription_And_Notification {