diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn index 201193a0b50b53f7e4fc65d9d373a82d95930ace..b61d428e893fe798df25af06fb468ea42ae1fde9 100644 --- a/LibOneM2M/OneM2M_Functions.ttcn +++ b/LibOneM2M/OneM2M_Functions.ttcn @@ -2000,19 +2000,25 @@ module OneM2M_Functions { }//end group altstepFunctions + /** + * @desc Get the Resource Identifier with Unstructured-CSE-relative -Resource-ID format + */ function f_resourceIdCleaner(in XSD.ID p_resourceID) return XSD.ID { var integer v_length := lengthof(p_resourceID); var integer i; var XSD.ID result := ""; + //log("p_resourceID: " & p_resourceID); for (i := v_length - 1; i>=0; i := i-1){ if(p_resourceID[i]=="/"){ + //log("result: " & result); return result; } else{ result := p_resourceID[i] & result; } } + //log("result: " & result); return result; } diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn index 05a9f4b5469082fb03ebcad6831dc019a84d9f6b..011fb75d10225fe9cc7c498614e80b9fc5448d6c 100644 --- a/LibOneM2M/OneM2M_Templates.ttcn +++ b/LibOneM2M/OneM2M_Templates.ttcn @@ -535,7 +535,7 @@ module OneM2M_Templates { * @desc Base CREATE request primitive for CSEBase resource */ template (value) RequestPrimitive m_createCSEBaseBase modifies m_create := { - requestIdentifier := testcasename() & "-m_createContainer" & f_rnd(1, 1000000), + requestIdentifier := testcasename() & "-m_createCSEBase" & f_rnd(1, 1000000), resourceType := int5, primitiveContent := {cSEBase := m_contentCreateCSEBase} }; diff --git a/OneM2M_Testcases.ttcn b/OneM2M_Testcases.ttcn index d1b8423910e0be2e9bbc84de052ec107a5a1ef83..0ad02eb8a0258ec6ccf5b9695a8fb275bf887b3a 100644 --- a/OneM2M_Testcases.ttcn +++ b/OneM2M_Testcases.ttcn @@ -1367,7 +1367,7 @@ module OneM2M_Testcases { * @desc Check that the IUT rejects the create request of <CSEBase> resource. * */ - testcase TC_CSE_REG_CRE_024() runs on CseTester system CseSystem { + testcase TC_CSE_REG_CRE_025() runs on CseTester system CseSystem { // Local variables var MsgIn v_response; @@ -1386,7 +1386,7 @@ module OneM2M_Testcases { v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); // Test Body - v_request := f_getCreateRequestPrimitive(v_resourceType, m_createCSEBaseBase, v_aeIndex); + v_request := f_getCreateRequestPrimitive(v_resourceType, m_createCSEBaseBase, -1); mcaPort.send(m_request(v_request)); tc_ac.start; @@ -2218,15 +2218,15 @@ module OneM2M_Testcases { p_parentRequestPrimitive.primitiveContent.subscription.notificationURI := {f_getResourceAddress(v_ae2Index)}; p_notifyHandler.start(f_cse_notifyProcedure_subscriptionVerificationHandler(v_parentIndex)); } - if(ischosen(p_parentRequestPrimitive.primitiveContent.group_)){ f_cse_preamble_registerAe(); } - v_parentIndex := f_cse_createResource(valueof(p_parentRequestPrimitive.resourceType), p_parentRequestPrimitive, v_parentIndex); - + + + } else {//Resource under CSEBase if(p_resourceType != int1) { @@ -3307,6 +3307,8 @@ module OneM2M_Testcases { var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; + var integer v_ae2Index := -1; + var CseTester v_notifyHandler; // Test control @@ -3318,6 +3320,8 @@ module OneM2M_Testcases { // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); + f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_requestPrimitive, p_resourceType); + // Test Body v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestPrimitive, v_aeIndex); v_request.resultContent := int0;//Attributes @@ -16331,6 +16335,7 @@ module OneM2M_Testcases { // Test Body v_request := f_getCreateRequestPrimitive(int23, m_createSubscriptionBase, v_aeIndex); + v_request.primitiveContent.subscription.notificationURI := {f_getResourceAddress(v_ae2Index)}; mcaPort.send(m_request(valueof(v_request))); @@ -16658,7 +16663,7 @@ module OneM2M_Testcases { v_notifyHandler.start(f_cse_notifyProcedure_representationHandler(v_contentResponse)); // check if the notification is well received and if its content matchs v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // Update request - v_updateRequest.primitiveContent.aE.labels := v_labels_1; + v_request.primitiveContent.aE.labels := v_labels_1; mcaPort.send(m_request(v_request)); tc_ac.start; @@ -17337,6 +17342,7 @@ module OneM2M_Testcases { v_notifyHandler.start(f_CSE_SUB_DEL_001(f_getResourceAddress(v_resourceIndex))); // check that no notification is received mcaPort.send(m_request(v_request)); + tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2002))) -> value v_response { tc_ac.stop; @@ -17592,7 +17598,7 @@ module OneM2M_Testcases { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Resource type " & int2str(enum2int(c_accessControlPolicyType)) & " created successfully"); - v_acpIndex := f_setResource(v_response.primitive.responsePrimitive.primitiveContent, int1); + v_acpIndex := f_setResource(v_response.primitive.responsePrimitive.primitiveContent, int1, v_aeIndex); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; @@ -17664,7 +17670,7 @@ module OneM2M_Testcases { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Resource type " & int2str(enum2int(c_accessControlPolicyType)) & " created successfully"); - v_acpIndex := f_setResource(v_response.primitive.responsePrimitive.primitiveContent, c_accessControlPolicyType); + v_acpIndex := f_setResource(v_response.primitive.responsePrimitive.primitiveContent, c_accessControlPolicyType, v_aeIndex); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; @@ -17767,8 +17773,8 @@ module OneM2M_Testcases { v_primitiveContentRetrievedResource := f_cse_retrieveResource(v_aeIndex); if(getverdict == pass){ if(ischosen(v_primitiveContentRetrievedResource.aE)) { - if(not match (v_primitiveContentRetrievedResource.aE.accessControlPolicyIDs, valueof(v_updateRequest.primitiveContent.aE.accessControlPolicyIDs))){ - setverdict(fail, __SCOPE__ & ": Error: Access Control policy ID attribute not updated correctly") + if(not match (f_resourceIdCleaner(v_primitiveContentRetrievedResource.aE.accessControlPolicyIDs[0]), v_updateRequest.primitiveContent.aE.accessControlPolicyIDs[0])){ + setverdict(fail, __SCOPE__ & ": Error: Access Control policy ID attribute not updated correctly"); } } } @@ -18322,15 +18328,15 @@ module OneM2M_Testcases { var template RequestPrimitive v_updateRequest := m_updateContainerBase; var Labels v_labels_1:= {"VALUE_1"}; v_updateRequest.primitiveContent.container.labels := v_labels_1; - f_CSE_SEC_ACP_012(v_updateRequest, int62); //TODO Fix p_acor + f_CSE_SEC_ACP_012(v_updateRequest, int59); }//end TC_CSE_SEC_ACP_012_UPD testcase TC_CSE_SEC_ACP_012_RET() runs on CseTester system CseSystem { //Retrieve - f_CSE_SEC_ACP_012(m_retrieveResource("Temporary", "Temporary"), int62); //TODO Fix p_acor + f_CSE_SEC_ACP_012(m_retrieveResource("Temporary", "Temporary"), int61); }//end TC_CSE_SEC_ACP_012_RET testcase TC_CSE_SEC_ACP_012_DEL() runs on CseTester system CseSystem { //Delete - f_CSE_SEC_ACP_012(m_delete("Temporary", "Temporary"), int62); //TODO Fix p_acor + f_CSE_SEC_ACP_012(m_delete("Temporary", "Temporary"), int55); }//end TC_CSE_SEC_ACP_012_DEL function f_CSE_SEC_ACP_012(template RequestPrimitive p_requestPrimitive, in AccessControlOperations p_acor) runs on CseTester {