diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn index d59df0b946c15149d5784a8fe3c3dae346a292bc..b7b22143ea899688a35567778313e191ee5203ed 100644 --- a/LibOneM2M/OneM2M_Functions.ttcn +++ b/LibOneM2M/OneM2M_Functions.ttcn @@ -1333,6 +1333,57 @@ module OneM2M_Functions { return vc_aeIndex; } + function f_cse_preamble_registerAeWithExternalId(template (omit) AcpType p_accessControlPolicyIDs := omit, in template (omit) PoaList p_poaList := omit, in boolean p_userAuthentication := false, in ExternalID p_externalID) runs on AeSimu return integer {//c_CRUDNDi + + var RequestPrimitive v_request; + var MsgIn v_response; + + //Activate defaults when running on a PTC + f_cse_activateDefaults_ae(); + + if(p_userAuthentication == true) { + // Create subscription and subscriber + f_cse_preamble_createServiceSubscribedProfile(PX_ALLOWED_C_AE_IDS, p_allowedUsers := true); + v_request := valueof(m_createAe(vc_aeSimuDesc.appId, p_accessControlPolicyIDs, PX_ALLOWED_C_AE_IDS[0], c_defaultAe1ResourceName, p_poaList)); + v_request := f_getCreateRequestPrimitive(int2, v_request, -1, PX_M2M_USER_ID); + + } else { + v_request := valueof(m_createAe(vc_aeSimuDesc.appId, p_accessControlPolicyIDs, vc_aeSimuDesc.aeIdStem, c_defaultAe1ResourceName, p_poaList)); + v_request := f_getCreateRequestPrimitive(int2, v_request, -1); + } + + v_request.primitiveContent.aE.m2M_Ext_ID := p_externalID; + f_send(e_mcaPort, m_request(v_request)); + + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { + tc_ac.stop; + setverdict(pass,__SCOPE__&":INFO: Application registered successfuly"); + if(ischosen(v_response.primitive.responsePrimitive.primitiveContent.aE)) { + + f_checkAttributesToBeSaved(int2, v_request, v_response.primitive.responsePrimitive); + + vc_aeIndex := f_setResource(v_response.primitive.responsePrimitive.primitiveContent, int2); + vc_componentRegistered := true; + + if(ispresent(v_response.primitive.responsePrimitive.primitiveContent.aE.aE_ID)){ + f_sendAcPrimitive("AE-ID_changed", vc_aeIndex); + } + } + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { + tc_ac.stop; + setverdict(inconc, __SCOPE__&":INFO: Error while registering application"); + } + [] tc_ac.timeout { + setverdict(inconc, __SCOPE__&":INFO: No answer while registering resource"); + } + } + + f_checkAeSimuStatus(); + return vc_aeIndex; + } /** * @desc Creation of auxiliar resources ACP and AE for correct execution of the test case * @param p_allowedOperations Allowed operations for the auxiliar AE resource