diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn index 011fb75d10225fe9cc7c498614e80b9fc5448d6c..d1e09873ddea2a36e6cf5a2cf08b70ec4f8d0966 100644 --- a/LibOneM2M/OneM2M_Templates.ttcn +++ b/LibOneM2M/OneM2M_Templates.ttcn @@ -204,6 +204,35 @@ module OneM2M_Templates { } }; + /** + * @desc RETRIEVE request primtive containing the Filter Criteria in the filterCriteria field + * @param p_targetResourceAddress Target resource address + * @param p_originator Originator (from) + * @param p_filterUsage FilterUsage + * @param p_labels Labels + */ + template (value) RequestPrimitive m_retrieveResourceFilterUsageOptionLabel(XSD.ID p_targetResourceAddress, in XSD.ID p_originator, in template (value) FilterUsage p_filterUsage, in Labels p_labels) modifies m_retrieveResource := { + requestIdentifier := "m_retrieveResourceFilterUsageOptionLabel" & f_rnd(1, 1000000), + filterCriteria := { + createdBefore := omit, + createdAfter := omit, + modifiedSince := omit, + unmodifiedSince := omit, + stateTagSmaller := omit, + stateTagBigger := omit, + expireBefore := omit, + expireAfter := omit, + labels := p_labels, + resourceType := omit, + sizeAbove := omit, + sizeBelow := omit, + contentType_list := {}, + attribute_list := {}, + filterUsage := p_filterUsage, + limit := 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 @@ -3294,10 +3323,10 @@ module OneM2M_Templates { eventCategory := * }; - template ResponsePrimitive mw_responseDiscovery := { + template ResponsePrimitive mw_responseDiscovery(template URIList p_uriList := ?) := { responseStatusCode := int2000, requestIdentifier := ?, - primitiveContent := {uRIList := ?}, + primitiveContent := {uRIList := p_uriList}, to_ := *, from_ := *, originatingTimestamp := *, diff --git a/OneM2M_Testcases.ttcn b/OneM2M_Testcases.ttcn index 0ad02eb8a0258ec6ccf5b9695a8fb275bf887b3a..8b7432b2522680c8f16c80614892f4d84dbab500 100644 --- a/OneM2M_Testcases.ttcn +++ b/OneM2M_Testcases.ttcn @@ -15769,6 +15769,7 @@ module OneM2M_Testcases { var RequestPrimitive v_request; var integer v_childResourceIndex := -1; const ResourceType c_containerResourceType := int3; + var Labels v_labels := {"NotFoundLabel"}; // Test control @@ -15782,12 +15783,14 @@ module OneM2M_Testcases { 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)); + //v_request := valueof(m_retrieveResourceFilterUsageOption(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex), int1)); + v_request := valueof(m_retrieveResourceFilterUsageOptionLabel(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex), int1, v_labels)); mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responseDiscovery)) -> value v_response { tc_ac.stop; + log("sizeof: " & int2str(sizeof(v_response.primitive.responsePrimitive.primitiveContent.uRIList))); if(sizeof(v_response.primitive.responsePrimitive.primitiveContent.uRIList) == 0){ setverdict(pass, __SCOPE__ & ": No Content is present"); } @@ -15828,6 +15831,7 @@ module OneM2M_Testcases { var RequestPrimitive v_request; var integer v_childResourceIndex := -1; const ResourceType c_containerResourceType := int3; + var integer v_i_cont := 0; // Test control @@ -15847,10 +15851,13 @@ module OneM2M_Testcases { 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, __SCOPE__ & ": Non-hierarchical address form present in URIList element"); - } else { - setverdict(fail, __SCOPE__ & ": Non-hierarchical address form absent in URIList representation"); + while (v_i_cont<sizeof(v_response.primitive.responsePrimitive.primitiveContent.uRIList)){ + if (f_isNonHierarchical(v_response.primitive.responsePrimitive.primitiveContent.uRIList[v_i_cont])) { + setverdict(pass, __SCOPE__ & ": Non-hierarchical address form present in URIList[" & int2str(v_i_cont) & "] element"); + } else { + setverdict(fail, __SCOPE__ & ": Non-hierarchical address form absent in URIList[" & int2str(v_i_cont) & "] element"); + } + v_i_cont := v_i_cont + 1; } } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { @@ -16013,7 +16020,9 @@ module OneM2M_Testcases { 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))); + v_request := valueof(m_retrieveResourceFilterUsageOption(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex), int1)); + v_request.filterCriteria.expireBefore := "20171231T012345"; + v_request.filterCriteria.expireAfter := "20181231T012345"; mcaPort.send(m_request(v_request)); tc_ac.start; alt {