diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn index 8626ad593432598733737a60f70967dd9b99b877..fc4c24c3263115ebb84173a84256653c33a6fd44 100644 --- a/LibOneM2M/OneM2M_Templates.ttcn +++ b/LibOneM2M/OneM2M_Templates.ttcn @@ -777,6 +777,14 @@ module OneM2M_Templates { primitiveContent := {timeSeriesAnnc := ?} }; + /** + * @desc Base UPDATE request primitive for Role resource + */ + template (value) RequestPrimitive m_updateRoleBase modifies m_update:= { + requestIdentifier := "m_updateRole", + primitiveContent:= {role := m_contentUpdateRole} + }; + }//end group Update @@ -5354,6 +5362,30 @@ module OneM2M_Templates { choice := omit }; + /** + * @desc Base primitiveContent for UPDATE operation for TimeSeriesInstance resource + */ + template (value) Role_optional m_contentUpdateRole := { + resourceName := omit, + resourceType := omit, + resourceID := omit, + parentID := omit, + creationTime := omit, + lastModifiedTime := omit, + labels := omit, + accessControlPolicyIDs := omit, + expirationTime := omit, + dynamicAuthorizationConsultationIDs := omit, + roleID := omit, + issuer := omit, + holder := omit, + notBefore := omit, + notAfter := omit, + roleName := omit, + tokenLink := omit, + choice := omit + }; + }//end group ContentUpdate diff --git a/OneM2M_Testcases_AE_Release_3.ttcn b/OneM2M_Testcases_AE_Release_3.ttcn index f2cc5d4a76b792f098b850cf89016c174670040f..2cf21e891cd5380d3b5f6a76254b91036badba70 100644 --- a/OneM2M_Testcases_AE_Release_3.ttcn +++ b/OneM2M_Testcases_AE_Release_3.ttcn @@ -1460,7 +1460,7 @@ module OneM2M_Testcases_AE_Release_3 { [] mcaPortIn.receive(mw_request(?)) -> value vc_request { tc_ac.stop; setverdict(fail, __SCOPE__ & " : Unexpected request received"); - f_send(e_mcc_in_port, m_response(valueof(m_responsePrimitive(int4004, v_request.primitive.requestPrimitive.requestIdentifier, omit)))); + f_send(e_mcaPortIn, m_response(valueof(m_responsePrimitive(int4004, v_request.primitive.requestPrimitive.requestIdentifier, omit)))); } [] tc_ac.timeout{ setverdict(fail, __SCOPE__ & " : Timeout due to no retrieve request received from SUT"); @@ -1567,7 +1567,7 @@ module OneM2M_Testcases_AE_Release_3 { /** - * @desc Check that the IUT sends a notification containing an inner “receiverESPrimRandObject request” to the Receiver if the sharedReceiverESPrimRandObject parameter is not present in the <remoteCSE> resource + * @desc Check that the IUT sends a notification containing an inner “receiverESPrimRandObject request” to the Receiver if the sharedReceiverESPrimRandObject in the <remoteCSE> resource is expired * */ testcase TC_AE_SEC_ESP_RET_003() runs on Tester system CseSystem { diff --git a/OneM2M_Testcases_CSE_Release_3.ttcn b/OneM2M_Testcases_CSE_Release_3.ttcn index 8291ffd4d2d2e8d08672e6579a1100e3dddb447b..f24f523612c65752fd671bf190e3a731f2421484 100644 --- a/OneM2M_Testcases_CSE_Release_3.ttcn +++ b/OneM2M_Testcases_CSE_Release_3.ttcn @@ -8837,7 +8837,87 @@ module OneM2M_Testcases_CSE_Release_3 { }//end f_CSE_SEC_ROL_RET_005 - }// end of group Retrieve + }// end of group Retrieve + + group Update { + + /** + * @desc Check that the IUT updates the tokenLink attribute of the <role> resource after creating its associated <token> resource + * + */ + testcase TC_CSE_SEC_ROL_UPD_001() runs on Tester system CseSystem { + // Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + + v_cse1.start(f_CSE_SEC_ROL_UPD_001()); + v_cse1.done; + } + + function f_CSE_SEC_ROL_UPD_001() runs on CseSimu system CseSystem { + // Local variables + var template RequestPrimitive v_updateRequest; + var template RequestPrimitive v_requestPrimitive := mw_createToken; + var PrimitiveContent v_TRRemoteCseResource, v_RRRemoteCseResource; + var XSD.ID v_tokenResourceID, v_roleResourceID; + var integer v_TRRemoteCseIndex, v_RRRemoteCseIndex, v_tokenResourceIndex; + + // Test control + if(not(PICS_ROL_SUPPORT)) { + setverdict(inconc, __SCOPE__ & ": Role Based Access Control Procedure support is required to run this test case"); + stop; + } + + // Test component configuration + f_cf04Up(-, true); + + // Test adapter configuration + + // Preamble + vc_cse2.start(f_cse_registerRemoteCse(m_createRemoteCSEBase)); //Token Repository + vc_cse2.stop; + + v_TRRemoteCseIndex := f_getLatestResourceIndex(vc_cse2); + v_RRRemoteCseIndex := f_cse_registerRemoteCse(m_createRemoteCSEBase); //Role Respository + v_roleResourceID := fx_assign_originatorRole(); //Creates a <role> resource in Role Repository + vc_cse2.start(f_cse_createResourceHandler(v_requestPrimitive)); + v_tokenResourceIndex := f_getLatestResourceIndex(vc_cse2); + + // Test Body + v_updateRequest := m_updateRoleBase; + v_updateRequest.resourceType := int32; + v_updateRequest.primitiveContent.role.tokenLink := f_getResourceAddress(v_tokenResourceIndex); + + tc_ac.start; + alt { + [] mccPortIn.receive(mw_request(v_updateRequest)) -> value vc_request { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": Update request containing tokenLink attribute received"); + } + [] mccPortIn.receive(mw_request(?)) { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Wrong message received"); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No answer while waiting for Update"); + } + } + + f_cseSimu_checkComponentDoneAndGetVerdict(vc_cse2); + + // Postamble + f_cse_postamble_deleteResourcesCSE(); + + // Tear down + f_cf04Down(); + + }//end f_CSE_SEC_ROL_UPD_001 + + }//end group Update + + group Notify { + + + }//end group Update }//end group Roles