diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn index 2918d7016d7e939a62e72127309bba82d1540629..6c4fc437e878ca46d6a71a9c2f1fcc2694925f91 100644 --- a/LibOneM2M/OneM2M_Functions.ttcn +++ b/LibOneM2M/OneM2M_Functions.ttcn @@ -35,6 +35,7 @@ module OneM2M_Functions { // Map map(self:mcaPort, system:mcaPort); + map(self:mcaPortIn, system:mcaPortIn); map(self:acPort, system:acPort); activate(a_default()); @@ -1288,6 +1289,25 @@ module OneM2M_Functions { } //end f_compareURIs + /** + * @desc Sending a request primitive on mcaPort on AeSimu + * @param p_resourceType Resource type of the resource to be created + * @param p_requestPrimitive CREATE request primitive for the resource to be created + * @param p_parentIndex Internal resource index which indicates the parent of the resource to be created + * @return Internal resource index of the created resource + * @verdict + */ + function f_cse_sendCreateRequestPrimitive(in ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive := m_create, integer p_parentIndex := -1) runs on AeSimu{ + + var RequestPrimitive v_request; + var integer v_resourceIndex := -1; + + v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestPrimitive, p_parentIndex); + + mcaPort.send(m_request(v_request)); + + } + }//end group AeSimu group CseSimuFunctions { diff --git a/OneM2M_PermutationFunctions.ttcn b/OneM2M_PermutationFunctions.ttcn index 52d52018857d363f0cdbdc956c1daaab8ea5c458..1580cbf0e53222ba1c609063e74b95ba0e271b21 100644 --- a/OneM2M_PermutationFunctions.ttcn +++ b/OneM2M_PermutationFunctions.ttcn @@ -2041,13 +2041,14 @@ module OneM2M_PermutationFunctions { v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive, v_aeIndex); - if(p_resourceType == int23){ - //vc_ae2.start(f_cse_notifyProcedure_subscriptionVerificationHandler()); - } - v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestPrimitive, v_aeIndex); + v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestPrimitive, v_aeIndex); // Test Body v_request.requestIdentifier := "Existing resource"; + + if(p_resourceType == int23){ + vc_ae2.start(f_cse_notifyProcedure_subscriptionVerificationHandler()); + } mcaPort.send(m_request(v_request)); tc_ac.start; @@ -4323,60 +4324,6 @@ module OneM2M_PermutationFunctions { }//end f_CSE_DMR_UPD_004 - function f_CSE_DMR_UPD_005(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive) runs on AeSimu { - - // Local variables - var MsgIn v_response; - var RequestPrimitive v_request; - var integer v_aeIndex := -1; - var integer v_ae2Index := -1; - var integer v_resourceIndex := -1; - - // Test control - - // Test component configuration - f_cf01Up(true); - - // Test adapter configuration - - // Preamble - v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); - - f_cse_preamble_subscriptionVerification(v_ae2Index, p_createRequestPrimitive, p_resourceType); - - v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive , v_aeIndex); - - // Test Body - v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive); - - mcaPort.send(m_request(v_request)); - tc_ac.start; - alt { - [] mcaPort.receive(mw_response(mw_responsePrimitive(int4004))) -> value v_response { - tc_ac.stop; - setverdict(pass, __SCOPE__ & ": Resource " & c_defaultResourceName & " of type " & int2str(enum2int(p_resourceType)) & " not found"); - } - [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { - tc_ac.stop; - setverdict(fail, __SCOPE__ & ": Wrong response status code"); - } - [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { - tc_ac.stop; - setverdict(fail, __SCOPE__ & ": Error while updating an unexisting resource type " & int2str(enum2int(p_resourceType))); - } - [] tc_ac.timeout { - setverdict(fail, __SCOPE__ & ": No answer while updating resource type " & int2str(enum2int(p_resourceType))); - } - } - - // Postamble - f_cse_postamble_deleteResources(); - - // Tear down - f_cf01Down(); - - }//end f_CSE_DMR_UPD_005 - function f_CSE_DMR_UPD_006(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive) runs on AeSimu { // Local variables @@ -4552,38 +4499,39 @@ module OneM2M_PermutationFunctions { }//end f_CSE_DMR_UPD_008 - function f_CSE_DMR_UPD_009(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive, template (omit) AttributeAux_list p_nullFields := omit) runs on AeSimu { + function f_CSE_DMR_UPD_009(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive) runs on AeSimu { // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; - var integer v_resourceIndex := -1; var integer v_ae2Index := -1; - + var integer v_resourceIndex := -1; + // Test control - + // Test component configuration f_cf01Up(true); - + // Test adapter configuration - + // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); - + f_cse_preamble_subscriptionVerification(v_ae2Index, p_createRequestPrimitive, p_resourceType); - - v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, v_aeIndex); - + + v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive , v_aeIndex); + // Test Body v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive); - + mcaPort.send(m_request(v_request)); + tc_ac.start; alt { - [] mcaPort.receive(mw_response(mw_responsePrimitive(int4102))) -> value v_response { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int4000))) -> value v_response { tc_ac.stop; - setverdict(pass, __SCOPE__ & ": Operation not allowed. Attribute not updated with an unacceptable value"); + setverdict(pass, __SCOPE__ & ": It is not possible to update an unexisting attribute of resource type " & int2str(enum2int(p_resourceType))); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; @@ -4591,21 +4539,19 @@ module OneM2M_PermutationFunctions { } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { tc_ac.stop; - setverdict(fail, __SCOPE__ & ": Attribute has been updated with an unacceptable value"); + setverdict(fail, __SCOPE__ & ": Error while updating an unexisting resource type " & int2str(enum2int(p_resourceType))); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while updating resource type " & int2str(enum2int(p_resourceType))); } } - - vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_resourceIndex); - + // Postamble f_cse_postamble_deleteResources(); - + // Tear down f_cf01Down(); - + }//end f_CSE_DMR_UPD_009 function f_CSE_DMR_UPD_014(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive) runs on AeSimu { @@ -4771,7 +4717,7 @@ module OneM2M_PermutationFunctions { // Preamble if(p_resourceType != int2) { - v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); + v_aeIndex := f_cse_preamble_registerAe(-, {f_getAnnouncementTargetPoA("HTTP", PX_AE1_ADDRESS, "")});//c_CRUDNDi); } if(p_resourceType != int1) { @@ -4796,7 +4742,16 @@ module OneM2M_PermutationFunctions { //Test Body v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive); - mcaPort.send(m_request(v_request)); //CSEBase + if(p_resourceType == int23) { //Subscription + v_request.primitiveContent.subscription.notificationURI := {f_getResourceAddress(v_aeIndex)}; + } + + mcaPort.send(m_request(v_request)); + + if(p_resourceType == int23) { //Subscription + f_cse_notifyProcedure_subscriptionVerificationHandler(); + } + tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value vc_response { diff --git a/OneM2M_TestControl_IN_profile.ttcn b/OneM2M_TestControl_IN_profile.ttcn index e1074f54b54c04ee5d55b6b8412e60f19b0dd2f7..be9f03b3b4b9c72cb4cb510f40e4882e31090b49 100644 --- a/OneM2M_TestControl_IN_profile.ttcn +++ b/OneM2M_TestControl_IN_profile.ttcn @@ -126,10 +126,10 @@ module OneM2M_TestControl_IN_profile { if(PICS_CNT_LBL) {execute (TC_CSE_DMR_UPD_002_CNT_LBL());} if(PICS_CNT_LBL) {execute (TC_CSE_DMR_UPD_003_CNT_LBL());} if(PICS_CNT_MNI and PICS_CNT_LBL) {execute (TC_CSE_DMR_UPD_004_CNT_ET_MNI_LBL());} - if(true) {execute (TC_CSE_DMR_UPD_005_CNT_EXC());} + if(true) {execute (TC_CSE_DMR_UPD_005());} if(true) {execute (TC_CSE_DMR_UPD_007_CNT_CT());} if(true) {execute (TC_CSE_DMR_UPD_008_CNT_ET());} - if(true) {execute (TC_CSE_DMR_UPD_009_CNT_ET());} + if(true) {execute (TC_CSE_DMR_UPD_009_CNT_EXC());} if(true) {execute (TC_CSE_DMR_UPD_010 ());} if(true) {execute (TC_CSE_DMR_UPD_016_CNT_ET());} if(true) {execute (TC_CSE_DMR_DEL_001_CNT());} @@ -185,10 +185,9 @@ module OneM2M_TestControl_IN_profile { if(PICS_SUB_LBL) {execute (TC_CSE_DMR_UPD_002_SUB_LBL());} if(PICS_SUB_LBL) {execute (TC_CSE_DMR_UPD_003_SUB_LBL());} if(PICS_SUB_LBL and PICS_SUB_EXC) {execute (TC_CSE_DMR_UPD_004_SUB_ET_LBL_EXC());} - if(true) {execute (TC_CSE_DMR_UPD_005_SUB_MNI());} if(true) {execute (TC_CSE_DMR_UPD_007_SUB_CT());} if(true) {execute (TC_CSE_DMR_UPD_008_SUB_ET());} - if(true) {execute (TC_CSE_DMR_UPD_009_SUB_ET());} + if(true) {execute (TC_CSE_DMR_UPD_009_SUB_MNI());} if(true) {execute (TC_CSE_DMR_UPD_016_SUB_ET());} if(true) {execute (TC_CSE_DMR_UPD_016_SUB_NU());} if(true) {execute (TC_CSE_DMR_UPD_016_SUB_NCT());} @@ -218,10 +217,9 @@ module OneM2M_TestControl_IN_profile { if(PICS_ACP_LBL) {execute (TC_CSE_DMR_UPD_002_ACP_LBL());} if(PICS_ACP_LBL) {execute (TC_CSE_DMR_UPD_003_ACP_LBL());} if(PICS_ACP_AT and PICS_ACP_LBL) {execute (TC_CSE_DMR_UPD_004_ACP_PV_AT_LBL());} - if(true) {execute (TC_CSE_DMR_UPD_005_ACP_EXC());} if(true) {execute (TC_CSE_DMR_UPD_007_ACP_CT());} if(true) {execute (TC_CSE_DMR_UPD_008_ACP_ET());} - if(true) {execute (TC_CSE_DMR_UPD_009_ACP_ET());} + if(true) {execute (TC_CSE_DMR_UPD_009_ACP_EXC());} if(true) {execute (TC_CSE_DMR_UPD_016_ACP_ET());} if(true) {execute (TC_CSE_DMR_UPD_016_ACP_PV());} if(true) {execute (TC_CSE_DMR_UPD_016_ACP_PVS());} @@ -336,11 +334,10 @@ module OneM2M_TestControl_IN_profile { if(PICS_GRP_LBL) {execute (TC_CSE_DMR_UPD_002_GRP_LBL());} if(PICS_GRP_LBL) {execute (TC_CSE_DMR_UPD_003_GRP_LBL());} if(PICS_GRP_GN and PICS_GRP_LBL) {execute (TC_CSE_DMR_UPD_004_GRP_ET_GN_LBL());} - if(true) {execute (TC_CSE_DMR_UPD_005_GRP_EXC());} if(PICS_ACP_SUPPORT) {execute (TC_CSE_DMR_UPD_006_GRP_LBL());} if(true) {execute (TC_CSE_DMR_UPD_007_GRP_CT());} if(true) {execute (TC_CSE_DMR_UPD_008_GRP_ET());} - if(true) {execute (TC_CSE_DMR_UPD_009_GRP_ET());} + if(true) {execute (TC_CSE_DMR_UPD_009_GRP_EXC());} if(true) {execute (TC_CSE_DMR_UPD_016_GRP_ET());} if(true) {execute (TC_CSE_DMR_UPD_016_GRP_MNM());} if(true) {execute (TC_CSE_DMR_UPD_016_GRP_MID());} diff --git a/OneM2M_TestControl_MN_profile.ttcn b/OneM2M_TestControl_MN_profile.ttcn index fe328d7629437cacc845f8a82e71e639935b27dc..4516fc0e594446a45ef0c05fdacc8aeba7bc3fc0 100644 --- a/OneM2M_TestControl_MN_profile.ttcn +++ b/OneM2M_TestControl_MN_profile.ttcn @@ -149,10 +149,10 @@ module OneM2M_TestControl_MN_profile { if(PICS_CNT_LBL) {execute (TC_CSE_DMR_UPD_002_CNT_LBL());} if(PICS_CNT_LBL) {execute (TC_CSE_DMR_UPD_003_CNT_LBL());} if(PICS_CNT_MNI and PICS_CNT_LBL) {execute (TC_CSE_DMR_UPD_004_CNT_ET_MNI_LBL());} - if(true) {execute (TC_CSE_DMR_UPD_005_CNT_EXC());} + if(true) {execute (TC_CSE_DMR_UPD_005());} if(true) {execute (TC_CSE_DMR_UPD_007_CNT_CT());} if(true) {execute (TC_CSE_DMR_UPD_008_CNT_ET());} - if(true) {execute (TC_CSE_DMR_UPD_009_CNT_ET());} + if(true) {execute (TC_CSE_DMR_UPD_009_CNT_EXC());} if(true) {execute (TC_CSE_DMR_UPD_010());} if(true) {execute (TC_CSE_DMR_UPD_016_CNT_ET());} if(true) {execute (TC_CSE_DMR_DEL_001_CNT());} @@ -208,10 +208,9 @@ module OneM2M_TestControl_MN_profile { if(PICS_SUB_LBL) {execute (TC_CSE_DMR_UPD_002_SUB_LBL());} if(PICS_SUB_LBL) {execute (TC_CSE_DMR_UPD_003_SUB_LBL());} if(true) {execute (TC_CSE_DMR_UPD_004_SUB_ET_LBL_EXC());} - if(true) {execute (TC_CSE_DMR_UPD_005_SUB_MNI());} if(true) {execute (TC_CSE_DMR_UPD_007_SUB_CT());} if(true) {execute (TC_CSE_DMR_UPD_008_SUB_ET());} - if(true) {execute (TC_CSE_DMR_UPD_009_SUB_ET());} + if(true) {execute (TC_CSE_DMR_UPD_009_SUB_MNI());} if(true) {execute (TC_CSE_DMR_UPD_016_SUB_ET());} if(true) {execute (TC_CSE_DMR_UPD_016_SUB_NU());} if(true) {execute (TC_CSE_DMR_UPD_016_SUB_NCT());} @@ -241,10 +240,9 @@ module OneM2M_TestControl_MN_profile { if(PICS_ACP_LBL) {execute (TC_CSE_DMR_UPD_002_ACP_LBL());} if(PICS_ACP_LBL) {execute (TC_CSE_DMR_UPD_003_ACP_LBL());} if(true) {execute (TC_CSE_DMR_UPD_004_ACP_PV_AT_LBL());} - if(true) {execute (TC_CSE_DMR_UPD_005_ACP_EXC());} if(true) {execute (TC_CSE_DMR_UPD_007_ACP_CT());} if(true) {execute (TC_CSE_DMR_UPD_008_ACP_ET());} - if(true) {execute (TC_CSE_DMR_UPD_009_ACP_ET());} + if(true) {execute (TC_CSE_DMR_UPD_009_ACP_EXC());} if(true) {execute (TC_CSE_DMR_UPD_016_ACP_ET());} if(true) {execute (TC_CSE_DMR_UPD_016_ACP_PV());} if(true) {execute (TC_CSE_DMR_UPD_016_ACP_PVS());} @@ -358,11 +356,10 @@ module OneM2M_TestControl_MN_profile { if(PICS_GRP_LBL) {execute (TC_CSE_DMR_UPD_002_GRP_LBL());} if(PICS_GRP_LBL) {execute (TC_CSE_DMR_UPD_003_GRP_LBL());} if(true) {execute (TC_CSE_DMR_UPD_004_GRP_ET_GN_LBL());} - if(true) {execute (TC_CSE_DMR_UPD_005_GRP_EXC());} if(PICS_ACP_SUPPORT) {execute (TC_CSE_DMR_UPD_006_GRP_LBL());} if(true) {execute (TC_CSE_DMR_UPD_007_GRP_CT());} if(true) {execute (TC_CSE_DMR_UPD_008_GRP_ET());} - if(true) {execute (TC_CSE_DMR_UPD_009_GRP_ET());} + if(true) {execute (TC_CSE_DMR_UPD_009_GRP_EXC());} if(true) {execute (TC_CSE_DMR_UPD_016_GRP_ET());} if(true) {execute (TC_CSE_DMR_UPD_016_GRP_MNM());} if(true) {execute (TC_CSE_DMR_UPD_016_GRP_MID());} diff --git a/OneM2M_Testcases_CSE_Release_1.ttcn b/OneM2M_Testcases_CSE_Release_1.ttcn index cc53f03d2533768743bf5e66b76559efd4f37c32..dc06935c148d21d095d7ba70534e27fef135f626 100644 --- a/OneM2M_Testcases_CSE_Release_1.ttcn +++ b/OneM2M_Testcases_CSE_Release_1.ttcn @@ -450,7 +450,7 @@ module OneM2M_Testcases_CSE_Release_1 { // Test component configuration f_cf01Up(); - //Preambule + //Preamble //Test Body v_request := valueof(m_createAe(PX_APP_ID, omit, "C-AE-ID-STEM")); @@ -520,7 +520,7 @@ module OneM2M_Testcases_CSE_Release_1 { // Test component configuration f_cf01Up(); - //Preambule + //Preamble //vc_remoteCseIndex := f_cse_registrationRemoteCse(mw_createRemoteCSE); //TODO: create serviceSubscribedProfile, Node, and serviceSubscribedAppRule //v_cseBaseIndex := f_cse_preamble_createServiceSubscribedProfile({"C*"}); //c_CRUDNDi); @@ -571,26 +571,23 @@ module OneM2M_Testcases_CSE_Release_1 { // Test component configuration f_cf02UpCseSimuMaster(); - //Preambule + //Preamble vc_remoteCseIndex := f_cse_registrationRemoteCse(mw_createRemoteCSE); //Test Body - vc_ae1.start(f_cse_createResource(int2, m_createAe(PX_APP_ID, -, "S", omit))); + vc_ae1.start(f_cse_sendCreateRequestPrimitive(int2, m_createAe(PX_APP_ID, -, "S", omit))); + vc_ae1.done; tc_ac.start; alt{ - [] mccPortIn.receive(mw_request(mw_createAEAnnc(f_getResourceAddress(-1,e_hierarchical, e_spRelative) & "/S", "CSE_ID", -))){ + [] mccPortIn.receive(mw_request(mw_createAEAnnc(PX_CSE_ID, f_getResourceAddress(-1,e_hierarchical, e_spRelative) & "/S", -))){ tc_ac.stop; setverdict(pass, __SCOPE__ & ": AE creation redirected."); } - [] mccPortIn.receive(mw_request(mw_createAEAnnc(f_getResourceAddress(-1,e_hierarchical, e_absolute) & "/S", "CSE_ID", -))){ + [] mccPortIn.receive(mw_request(mw_createAEAnnc(PX_CSE_ID, f_getResourceAddress(-1,e_hierarchical, e_absolute) & "/S", -))){ tc_ac.stop; setverdict(pass, __SCOPE__ & ": AE creation redirected."); } - [] mccPortIn.receive { - tc_ac.stop; - setverdict(fail, __SCOPE__ & ": Error while creating AE"); - } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while creating AE"); } @@ -626,11 +623,11 @@ module OneM2M_Testcases_CSE_Release_1 { // Test component configuration f_cf02UpCseSimuMaster(); - //Preambule + //Preamble vc_remoteCseIndex := f_cse_registrationRemoteCse(mw_createRemoteCSE); //Test Body - vc_ae1.start(f_cse_createResource(int2, m_createAe(PX_APP_ID, omit, "S"))); + vc_ae1.start(f_cse_sendCreateRequestPrimitive(int2, m_createAe(PX_APP_ID, omit, "S"))); vc_ae1.done; tc_ac.start; @@ -640,10 +637,6 @@ module OneM2M_Testcases_CSE_Release_1 { tc_ac.stop; setverdict(pass, __SCOPE__ & ": AE creation redirected."); } - [] mccPortIn.receive { - tc_ac.stop; - setverdict(fail, __SCOPE__ & ": Error while creating AE"); - } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while creating AE"); } @@ -676,11 +669,11 @@ module OneM2M_Testcases_CSE_Release_1 { // Test component configuration f_cf02Up(); - //Preambule + //Preamble vc_cse1.start(f_cse_registrationRemoteCse(mw_createRemoteCSE)); vc_cse1.done; - - v_aeIndex := f_cse_createResource(int2, m_createAe(PX_APP_ID, omit, "S")); + + mcaPort.send(m_request(f_getCreateRequestPrimitive(int2, m_createAe(PX_APP_ID, omit, "S"),-1))); vc_cse1.start(f_cse_resourceAnnouncementHandler()); vc_cse1.done; @@ -689,7 +682,7 @@ module OneM2M_Testcases_CSE_Release_1 { tc_ac.start; alt { - [] mcaPortIn.receive(mw_response(mw_responsePrimitive(int2001))) -> value v_response { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) -> value v_response { tc_ac.stop; //continue to test the content if (ischosen(v_response.primitive.responsePrimitive.primitiveContent.aE)){ @@ -702,10 +695,6 @@ module OneM2M_Testcases_CSE_Release_1 { setverdict(fail, __SCOPE__ & ": primitiveContent doesn't exist"); } } - [] mcaPortIn.receive { - tc_ac.stop; - setverdict(fail, __SCOPE__ & ": Error while creating AE"); - } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while creating AE"); } @@ -738,7 +727,7 @@ module OneM2M_Testcases_CSE_Release_1 { // Test component configuration f_cf02UpCseSimuMaster(); - //Preambule + //Preamble vc_remoteCseIndex := f_cse_registrationRemoteCse(mw_createRemoteCSE); vc_ae1.start(f_cse_createResource(int2, m_createAe(PX_APP_ID, omit, "S"))); @@ -799,7 +788,7 @@ module OneM2M_Testcases_CSE_Release_1 { // Test component configuration f_cf04Up(); - //Preambule + //Preamble vc_remoteCseIndex := f_cse_registerRemoteCse(m_createRemoteCSEBase); @@ -866,7 +855,7 @@ module OneM2M_Testcases_CSE_Release_1 { // Test component configuration f_cf02Up(); - //Preambule + //Preamble vc_cse1.start(f_cse_registrationRemoteCse(mw_createRemoteCSE)); vc_cse1.done; @@ -1278,7 +1267,7 @@ module OneM2M_Testcases_CSE_Release_1 { // Test component configuration f_cf02Up(); - //Preambule + //Preamble vc_cse1.start(f_cse_registrationRemoteCse(mw_createRemoteCSE)); vc_cse1.done; @@ -3356,12 +3345,14 @@ module OneM2M_Testcases_CSE_Release_1 { */ testcase TC_CSE_DMR_CRE_007() runs on AeSimu system CseSystem { // Local variables - var template RequestPrimitive v_createRequest := m_createContainerBase; + var template RequestPrimitive v_createRequestContainer := m_createContainerBase; + var template RequestPrimitive v_createRequestContentInstance := m_createContentInstanceBase; var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_containerIndex := -1; - const integer c_maxNumberOfInstances := 0; + var integer v_contentInstanceIndex := -1; + const integer c_maxNumberOfInstances := 1; // Test control // Test component configuration @@ -3372,41 +3363,45 @@ module OneM2M_Testcases_CSE_Release_1 { // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); - v_createRequest.primitiveContent.container.maxNrOfInstances := c_maxNumberOfInstances; + v_createRequestContainer.primitiveContent.container.maxNrOfInstances := c_maxNumberOfInstances; - v_containerIndex := f_cse_createResource(int3, v_createRequest, v_aeIndex); + v_containerIndex := f_cse_createResource(int3, v_createRequestContainer, v_aeIndex); //Container + + v_contentInstanceIndex := f_cse_createResource(int4, m_createContentInstanceBase, v_containerIndex); //ContentInstance // Test Body - v_request := f_getCreateRequestPrimitive(int4, m_createContentInstance(f_getResourceAddress(v_containerIndex), "MyValue"), v_containerIndex); + + v_createRequestContentInstance.primitiveContent.contentInstance.resourceName := c_defaultContentInstanceResourceName & "2"; //ContentInstance 2 + v_request := f_getCreateRequestPrimitive(int4, v_createRequestContentInstance, v_containerIndex); mcaPort.send(m_request(v_request)); tc_ac.start; alt { - [] mcaPort.receive(mw_response(mw_responsePrimitive(int5207))) -> value v_response { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) -> value v_response { tc_ac.stop; - setverdict(pass, __SCOPE__ & ": Maximun number of instances exceeded"); + setverdict(pass, __SCOPE__ & ": ContentInstance created"); } - [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; - setverdict(fail, __SCOPE__ & ": Bad responseStatusCode in response"); + setverdict(fail, __SCOPE__ & ": Wrong response status code in the response"); } - [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; - setverdict(fail, __SCOPE__ & ": Accepted creation of contentInstance exceding maximum number of instances"); + setverdict(fail, __SCOPE__ & ": Error while creating resource type contentInstance"); } [] tc_ac.timeout { - setverdict(fail, __SCOPE__ & ": No answer while creating resource type 4"); + setverdict(fail, __SCOPE__ & ": No answer while creating resource type contentInstance"); } } f_checkAeSimuStatus(); //Check to see if the resource is NOT present - if(f_isResourceNotPresent(v_containerIndex, f_getResourceName(v_request.primitiveContent))){ - setverdict(pass, __SCOPE__ & ":INFO: Resource not created"); + if(f_isResourceNotPresent(v_containerIndex, c_defaultContentInstanceResourceName)){ + setverdict(pass, __SCOPE__ & ":INFO: Oldest contentInstance has been removed to allow the creation of the new contentInstance"); } else { - setverdict(fail, __SCOPE__ & ":ERROR: Resource created"); + setverdict(fail, __SCOPE__ & ":ERROR: Oldest contentInstance has not been removed to allow the creation of the new contentInstance"); } // Postamble @@ -3426,64 +3421,72 @@ module OneM2M_Testcases_CSE_Release_1 { * */ testcase TC_CSE_DMR_CRE_008() runs on AeSimu system CseSystem { - // Local variables - var template RequestPrimitive v_createRequest := m_createContainerBase; + //Local variables + var template RequestPrimitive v_createRequestContainer := m_createContainerBase; + var template RequestPrimitive v_createRequestContentInstance := m_createContentInstanceBase; var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_containerIndex := -1; - const integer c_maxByteSize := 0; + var integer v_contentInstanceIndex := -1; + const integer c_maxByteSize := 10; + const XSD.String c_primitiveContent1 := "Content1"; + const XSD.String c_primitiveContent2 := "Content2"; // Test control - + // Test component configuration f_cf01Up(); - + // Test adapter configuration - + // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); - - v_createRequest.primitiveContent.container.maxByteSize := c_maxByteSize; - - v_containerIndex := f_cse_createResource(int3, v_createRequest, v_aeIndex); - + + v_createRequestContainer.primitiveContent.container.maxByteSize := c_maxByteSize; + + v_containerIndex := f_cse_createResource(int3, v_createRequestContainer, v_aeIndex); //Container + + v_contentInstanceIndex := f_cse_createResource(int4, m_createContentInstance(f_getResourceAddress(v_containerIndex), c_primitiveContent1), v_containerIndex);//ContentInstance + // Test Body - v_request := f_getCreateRequestPrimitive(int4, m_createContentInstanceBase, v_containerIndex); - + + v_createRequestContentInstance.primitiveContent.contentInstance.content := c_primitiveContent2; //ContentInstance 2 + v_createRequestContentInstance.primitiveContent.contentInstance.resourceName := c_defaultContentInstanceResourceName & "2"; + v_request := f_getCreateRequestPrimitive(int4, v_createRequestContentInstance, v_containerIndex); + mcaPort.send(m_request(v_request)); tc_ac.start; alt { - [] mcaPort.receive(mw_response(mw_responsePrimitive(int5207))) -> value v_response { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) -> value v_response { tc_ac.stop; - setverdict(pass, __SCOPE__ & ": Maximun byte size exceeded"); + setverdict(pass, __SCOPE__ & ": ContentInstance created"); } - [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; - setverdict(fail, __SCOPE__ & ": Bad responseStatusCode in response"); + setverdict(fail, __SCOPE__ & ": Wrong response status code in the response"); } - - [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; - setverdict(fail, __SCOPE__ & ": Accepted creation of contentInstance exceding maximum byte size"); - + setverdict(fail, __SCOPE__ & ": Error while creating resource type contentInstance"); + } [] tc_ac.timeout { - setverdict(fail, __SCOPE__ & ": No answer while creating resource type 4"); + setverdict(fail, __SCOPE__ & ": No answer while creating resource type contentInstance"); } } - + f_checkAeSimuStatus(); - - //Check to see if the resource is present or not - if(f_isResourceNotPresent(v_containerIndex, f_getResourceName(v_request.primitiveContent))){ - setverdict(pass, __SCOPE__ & ":INFO: Resource created"); + + //Check to see if the resource is NOT present + if(f_isResourceNotPresent(v_containerIndex, c_defaultContentInstanceResourceName)){ + setverdict(pass, __SCOPE__ & ":INFO: Oldest contentInstance has been removed to allow the creation of the new contentInstance"); } else { - setverdict(fail, __SCOPE__ & ":ERROR: Resource not created"); + setverdict(fail, __SCOPE__ & ":ERROR: Oldest contentInstance has not been removed to allow the creation of the new contentInstance"); } - + // Postamble f_cse_postamble_deleteResources(); - + // Tear down f_cf01Down(); @@ -5126,75 +5129,73 @@ module OneM2M_Testcases_CSE_Release_1 { } } - } // end g_CSE_DMR_UPD_004 - - group g_CSE_DMR_UPD_005{ + } // end g_CSE_DMR_UPD_004 - /** - * @desc Check that the IUT responds with an error when the AE tries to update an attribute of a TARGET_RESOURCE_ADDRESS resource which does not exist - * - */ - testcase TC_CSE_DMR_UPD_005_CNT_EXC() runs on Tester system CseSystem { - // Local variables - var AeSimu v_ae1 := AeSimu.create("AE1") alive; - var XSD.PositiveInteger v_expirationCounter := 1; - var template RequestPrimitive v_createRequest := m_createContainerBase; - var template RequestPrimitive v_updateRequest := m_updateContainerBase; - - v_updateRequest.primitiveContent := {container_update_invalid := m_contentUpdateContainer_invalid}; - - v_updateRequest.primitiveContent.container_update_invalid.expirationCounter := v_expirationCounter; - - v_ae1.start(f_CSE_DMR_UPD_005(int3, v_createRequest, v_updateRequest));//Container - v_ae1.done; - } - - testcase TC_CSE_DMR_UPD_005_GRP_EXC() runs on Tester system CseSystem { - // Local variables - var AeSimu v_ae1 := AeSimu.create("AE1") alive; - var XSD.PositiveInteger v_expirationCounter := 1; - var template RequestPrimitive v_createRequest := m_createGroupBase; - var template RequestPrimitive v_updateRequest := m_updateGroupBase; - - v_updateRequest.primitiveContent := {group_update_invalid := m_contentUpdateGroup_invalid}; - - v_updateRequest.primitiveContent.group_update_invalid.expirationCounter := v_expirationCounter; - - v_ae1.start(f_CSE_DMR_UPD_005(int9, v_createRequest, v_updateRequest));//Group - v_ae1.done; - } + /** + * @desc Check that the IUT responds with an error when the AE tries to update an attribute of a TARGET_RESOURCE_ADDRESS resource when the resource does not exist + * + */ + testcase TC_CSE_DMR_UPD_005() runs on AeSimu system CseSystem { + //Local variables + var RequestPrimitive v_request; + var integer v_aeIndex := -1; + var ResourceType v_resourceType := int3; //container + var template RequestPrimitive v_updateRequest := m_updateContainerBase; + var XSD.ID v_resourceId := "nonExistingId"; + var XSD.ID v_resourceName := "nonExistingName"; + var XSD.ID v_targetResourceAddress; + + // Test control - testcase TC_CSE_DMR_UPD_005_ACP_EXC() runs on Tester system CseSystem { - // Local variables - var AeSimu v_ae1 := AeSimu.create("AE1") alive; - var XSD.PositiveInteger v_expirationCounter := 1; - var template RequestPrimitive v_createRequest := m_createAcpBase; - var template RequestPrimitive v_updateRequest := m_updateAcpBase; - - v_updateRequest.primitiveContent := {aCP_update_invalid := m_contentUpdateAcp_invalid}; - - v_updateRequest.primitiveContent.aCP_update_invalid.expirationCounter := v_expirationCounter; - - v_ae1.start(f_CSE_DMR_UPD_005(int1, v_createRequest, v_updateRequest));//AccessControlPolicy - v_ae1.done; + // Test component configuration + f_cf01Up(); + + // Test adapter configuration + + // Preamble + v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); + + // Test Body + if((PX_ADDRESSING_METHOD == e_nonHierarchical) and (PX_PRIMITIVE_SCOPE == e_cseRelative)) { + v_targetResourceAddress := v_resourceId; + } else if (PX_ADDRESSING_METHOD == e_nonHierarchical) { + v_targetResourceAddress := f_getResourceAddress() & "/" & v_resourceId; + } else { + v_targetResourceAddress := f_getResourceAddress(v_aeIndex) & "/" & v_resourceName; } - - testcase TC_CSE_DMR_UPD_005_SUB_MNI() runs on Tester system CseSystem { - // Local variables - var AeSimu v_ae1 := AeSimu.create("AE1") alive; - var XSD.NonNegativeInteger v_maxNrOfInstances := 5; - var template RequestPrimitive v_createRequest := m_createSubscriptionBase; - var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase; - - v_updateRequest.primitiveContent := {subscription_update_invalid := m_contentUpdateSubscription_invalid}; - - v_updateRequest.primitiveContent.subscription_update_invalid.maxNrOfInstances := v_maxNrOfInstances; + + v_request := f_getUpdateRequestPrimitive(v_resourceType, v_aeIndex, v_updateRequest); + v_request.to_ := v_targetResourceAddress; + + mcaPort.send(m_request(v_request)); + + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int4004))){ + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": Operation not allowed because resource does not exist"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)){ + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Wrong response status code"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Attribute has been updated in a non existing resource"); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No answer while updating resource type " & int2str(enum2int(v_resourceType))); + } + } - v_ae1.start(f_CSE_DMR_UPD_005(int23, v_createRequest, v_updateRequest));//Subscription - v_ae1.done; - } + f_checkAeSimuStatus(); + + // Postamble + f_cse_postamble_deleteResources(); - } // end g_CSE_DMR_UPD_005 + // Tear down + f_cf01Down(); + } group g_CSE_DMR_UPD_006{ @@ -5521,96 +5522,64 @@ module OneM2M_Testcases_CSE_Release_1 { * @desc Check that the IUT responds with an error when the AE tries to update a RW attribute ATTRIBUTE_NAME of the TARGET_RESOURCE_ADDRESS resource with an UNACCEPTABLE_VALUE * */ - testcase TC_CSE_DMR_UPD_009_CNT_ET() runs on Tester system CseSystem { + testcase TC_CSE_DMR_UPD_009_CNT_EXC() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; - var Timestamp v_expirationTime := "20001231T012345"; + var XSD.PositiveInteger v_expirationCounter := 1; + var template RequestPrimitive v_createRequest := m_createContainerBase; var template RequestPrimitive v_updateRequest := m_updateContainerBase; - var PrimitiveContent v_primitiveContentRetrieveResource; + + v_updateRequest.primitiveContent := {container_update_invalid := m_contentUpdateContainer_invalid}; - v_updateRequest.primitiveContent.container.expirationTime := v_expirationTime; - - v_ae1.start(f_CSE_DMR_UPD_009(int3, m_createContainerBase, v_updateRequest));//Container + v_updateRequest.primitiveContent.container_update_invalid.expirationCounter := v_expirationCounter; + + v_ae1.start(f_CSE_DMR_UPD_009(int3, v_createRequest, v_updateRequest));//Container v_ae1.done; - - if(getverdict == pass){ - v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); - //Check that the resource has NOT been udpated - if(ischosen(v_primitiveContentRetrieveResource.container)) { - if(v_primitiveContentRetrieveResource.container.expirationTime == v_expirationTime){ - setverdict(fail, __SCOPE__ & ": Error: Expiration time attribute updated") - } - } - } } - - testcase TC_CSE_DMR_UPD_009_ACP_ET() runs on Tester system CseSystem { + + testcase TC_CSE_DMR_UPD_009_GRP_EXC() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; - var Timestamp v_expirationTime := "20001231T012345"; - var template RequestPrimitive v_updateRequest := m_updateAcpBase; - var PrimitiveContent v_primitiveContentRetrieveResource; - - v_updateRequest.primitiveContent.accessControlPolicy.expirationTime := v_expirationTime; - - v_ae1.start(f_CSE_DMR_UPD_009(int1, m_createAcpBase, v_updateRequest));//AccessControlPolicy + var XSD.PositiveInteger v_expirationCounter := 1; + var template RequestPrimitive v_createRequest := m_createGroupBase; + var template RequestPrimitive v_updateRequest := m_updateGroupBase; + + v_updateRequest.primitiveContent := {group_update_invalid := m_contentUpdateGroup_invalid}; + + v_updateRequest.primitiveContent.group_update_invalid.expirationCounter := v_expirationCounter; + + v_ae1.start(f_CSE_DMR_UPD_009(int9, v_createRequest, v_updateRequest));//Group v_ae1.done; - - if(getverdict == pass){ - v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); - //Check that the resource has NOT been udpated - if(ischosen(v_primitiveContentRetrieveResource.accessControlPolicy)) { - if(v_primitiveContentRetrieveResource.accessControlPolicy.expirationTime == v_expirationTime){ - setverdict(fail, __SCOPE__ & ": Error: Expiration time attribute updated") - } - } - } } - - testcase TC_CSE_DMR_UPD_009_SUB_ET() runs on Tester system CseSystem { + + testcase TC_CSE_DMR_UPD_009_ACP_EXC() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; - var Timestamp v_expirationTime := "20001231T012345"; - var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase; - var PrimitiveContent v_primitiveContentRetrieveResource; + var XSD.PositiveInteger v_expirationCounter := 1; + var template RequestPrimitive v_createRequest := m_createAcpBase; + var template RequestPrimitive v_updateRequest := m_updateAcpBase; - v_updateRequest.primitiveContent.subscription.expirationTime := v_expirationTime; + v_updateRequest.primitiveContent := {aCP_update_invalid := m_contentUpdateAcp_invalid}; + + v_updateRequest.primitiveContent.aCP_update_invalid.expirationCounter := v_expirationCounter; - v_ae1.start(f_CSE_DMR_UPD_009(int23, m_createSubscriptionBase, v_updateRequest));//Subscription + v_ae1.start(f_CSE_DMR_UPD_009(int1, v_createRequest, v_updateRequest));//AccessControlPolicy v_ae1.done; - - if(getverdict == pass){ - v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); - //Check that the resource has NOT been udpated - if(ischosen(v_primitiveContentRetrieveResource.subscription)) { - if(v_primitiveContentRetrieveResource.subscription.expirationTime == v_expirationTime){ - setverdict(fail, __SCOPE__ & ": Error: Expiration time attribute updated") - } - } - } } - - testcase TC_CSE_DMR_UPD_009_GRP_ET() runs on Tester system CseSystem { + + testcase TC_CSE_DMR_UPD_009_SUB_MNI() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; - var Timestamp v_expirationTime := "20001231T012345"; - var template RequestPrimitive v_updateRequest := m_updateGroupBase; - var PrimitiveContent v_primitiveContentRetrieveResource; - - v_updateRequest.primitiveContent.group_.expirationTime := v_expirationTime; - - v_ae1.start(f_CSE_DMR_UPD_009(int9, m_createGroupBase, v_updateRequest));//Group + var XSD.NonNegativeInteger v_maxNrOfInstances := 5; + var template RequestPrimitive v_createRequest := m_createSubscriptionBase; + var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase; + + v_updateRequest.primitiveContent := {subscription_update_invalid := m_contentUpdateSubscription_invalid}; + + v_updateRequest.primitiveContent.subscription_update_invalid.maxNrOfInstances := v_maxNrOfInstances; + + v_ae1.start(f_CSE_DMR_UPD_009(int23, v_createRequest, v_updateRequest));//Subscription v_ae1.done; - - if(getverdict == pass){ - v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); - //Check that the resource has NOT been udpated - if(ischosen(v_primitiveContentRetrieveResource.group_)) { - if(v_primitiveContentRetrieveResource.group_.expirationTime == v_expirationTime){ - setverdict(fail, __SCOPE__ & ": Error: Expiration time attribute updated") - } - } - } } } // end g_CSE_DMR_UPD_009