diff --git a/OneM2M_TestControl.ttcn b/OneM2M_TestControl.ttcn index 4596e1f6fb3804b8278cfa8bb62351f361205ca1..3efaae2752ce431787d13f5f1d7cc201a40f3c86 100644 --- a/OneM2M_TestControl.ttcn +++ b/OneM2M_TestControl.ttcn @@ -14,7 +14,7 @@ module OneM2M_TestControl { - import from OneM2M_Testcases all; + import from OneM2M_Testcases_CSE all; control { execute(TC_CSE_GEN_CRE_001_CSR()); @@ -262,11 +262,11 @@ module OneM2M_TestControl { execute(TC_CSE_GMG_CRE_005()); execute(TC_CSE_GMG_CRE_006()); execute(TC_CSE_GMG_CRE_007()); - execute(TC_CSE_GMG_CRE_008_CRE()); + /*execute(TC_CSE_GMG_CRE_008_CRE()); execute(TC_CSE_GMG_CRE_008_UPD()); execute(TC_CSE_GMG_CRE_008_RET()); execute(TC_CSE_GMG_CRE_008_DEL()); - execute(TC_CSE_GMG_CRE_009()); + execute(TC_CSE_GMG_CRE_009());*/ execute(TC_CSE_GMG_UPD_001()); execute(TC_CSE_GMG_UPD_002()); execute(TC_CSE_GMG_UPD_003()); diff --git a/OneM2M_Testcases_CSE.ttcn b/OneM2M_Testcases_CSE.ttcn index e5ac3f468e8111eefe0fe776f0394341ce04b5ce..004f5647d66ec70cbb1aea92d8ba5772b4f22163 100644 --- a/OneM2M_Testcases_CSE.ttcn +++ b/OneM2M_Testcases_CSE.ttcn @@ -874,10 +874,9 @@ module OneM2M_Testcases_CSE { f_cf01Up(); //Preamble - v_cseBaseIndex := f_cse_preamble_createServiceSubscribedProfile({"S*"}); //c_CRUDNDi); - + //Test Body - v_request := valueof(m_createAe(PX_APP_ID, omit, omit)); + v_request := valueof(m_createAe(PX_APP_ID, omit, "SAE-ID-STEM")); v_request := f_getCreateRequestPrimitive(v_resourceType, v_request, -1); @@ -949,6 +948,25 @@ module OneM2M_Testcases_CSE { // Tear down f_cf01Down(); + } + + /** + * @desc Check that the IUT accepts a create request of <AE> resource with attributes multiplicity equals to 1 and provided preprovisioned SP_relative_AE_ID. + */ + + testcase TC_CSE_REG_CRE_003() runs on CseSimu system CseSystem{ + + var integer v_remoteCseIndex := -1; + + //Test Configuration + //f_cf02Up(); + + //Preamble + v_remoteCseIndex := f_cse_registrationRemoteCse(); + vc_aeSimu := AeSimu.create("AE1") alive; + //vc_aeSimu.start(f_a); + + } /** @@ -1225,6 +1243,76 @@ module OneM2M_Testcases_CSE { }; //end TC_CSE_REG_CRE_010 + group g_CSE_REG_CRE_013 { + + testcase TC_CSE_REG_CRE_013_AE_LBL() runs on AeSimu system CseSystem { + var template RequestPrimitive m_create := m_createAe(PX_APP_ID, omit, omit); + m_create.primitiveContent.aE.labels := {"labels"}; + } + + testcase TC_CSE_REG_CRE_013_AE_APN() runs on AeSimu system CseSystem { + var template RequestPrimitive m_create := m_createAe(PX_APP_ID, omit, omit); + m_create.primitiveContent.aE.appName := "AeAppName"; + } + + testcase TC_CSE_REG_CRE_013_AE_POA() runs on AeSimu system CseSystem { + var template RequestPrimitive m_create := m_createAe(PX_APP_ID, omit, omit); + m_create.primitiveContent.aE.pointOfAccess := {PX_AE1_ADDRESS}; + } + + testcase TC_CSE_REG_CRE_013_AE_NL() runs on AeSimu system CseSystem { + var template RequestPrimitive m_create := m_createAe(PX_APP_ID, omit, omit); + m_create.primitiveContent.aE.nodeLink := "http://127.0.0.1/"; + } + + testcase TC_CSE_REG_CRE_013_AE_OR() runs on AeSimu system CseSystem { + var template RequestPrimitive m_create := m_createAe(PX_APP_ID, omit, omit); + m_create.primitiveContent.aE.ontologyRef := "MyOntologyRef"; + } + + function TC_CSE_REG_CRE_013(in template RequestPrimitive p_createAe) runs on AeSimu { + + //Local variables + var MsgIn v_response; + var RequestPrimitive v_request; + var ResourceType v_resourceType := int2; //AE + + // Test control + + // Test component configuration + f_cf01Up(); + + //Test Body + + v_request := valueof(p_createAe); + v_request := f_getCreateRequestPrimitive(v_resourceType, v_request, -1); + + mcaPort.send(m_request(v_request)); + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": AE creation successfull."); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int2001))) -> value v_response{ + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Error while creating AE with status code " & int2str(enum2int(v_response.primitive.responsePrimitive.responseStatusCode))); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No answer while creating AE"); + } + } + + //Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf01Down(); + } + + } + + group g_CSE_REG_CRE_016 { /** @@ -1839,9 +1927,9 @@ module OneM2M_Testcases_CSE { tc_ac.stop; if ((ispresent(v_response.primitive.responsePrimitive.primitiveContent.cSEBase.cseType)) or (ispresent(v_response.primitive.responsePrimitive.primitiveContent.cSEBase.nodeLink))){ - setverdict(pass, __SCOPE__ & ": Response OK for retrieving for attribute cseType or nodeLink"); + setverdict(pass, __SCOPE__ & ": Response OK for retrieving for attribute"); } else { - setverdict(fail, __SCOPE__ & ": Error: Unable to retrieve attribute cseType"); + setverdict(fail, __SCOPE__ & ": Error: Unable to retrieve attribute"); } } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK(p_contentResponse))) -> value v_response { @@ -1870,6 +1958,175 @@ module OneM2M_Testcases_CSE { } //end g_CSE_REG_RET_002 + testcase TC_CSE_REG_RET_003() runs on AeSimu system CseSystem { + // Local variables + var MsgIn v_response; + var integer v_aeIndex := -1; + var template PrimitiveContent v_contentResponse; + + // Test control + + // Test component configuration + f_cf01Up(); + + // Test adapter configuration + + // Preamble + v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); + + // Test Body + v_contentResponse.aE := mw_contentAeBase; + + mcaPort.send(m_request(m_retrieveResource(f_getResourceAddress(), f_getOriginator(v_aeIndex))));//TODO Maybe PX_SUPER_AE_ID + + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000, v_contentResponse))) -> value v_response { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": Response OK for retrieving"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK(v_contentResponse))) -> value v_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Wrong response status code"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Error, resource elements provided not matching expected resource elements"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Error while retrieving resource"); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No answer while retrieving resource"); + } + } + + // Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf01Down(); + + }//end TC_CSE_REG_RET_003 + + group g_CSE_REG_RET_004 { + + testcase TC_CSE_REG_RET_004_LBL() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template PrimitiveContent v_contentResponse; + + v_contentResponse.aE := mw_contentAeBase; + + v_ae1.start(f_CSE_REG_RET_004(v_contentResponse)); + v_ae1.done; + } + + testcase TC_CSE_REG_RET_004_APN() runs on Tester system CseSystem { + //Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template PrimitiveContent v_contentResponse; + + v_contentResponse.aE := mw_contentAeBase; + + v_ae1.start(f_CSE_REG_RET_004(v_contentResponse)); + v_ae1.done; + } + + testcase TC_CSE_REG_RET_004_POA() runs on Tester system CseSystem { + //Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template PrimitiveContent v_contentResponse; + + v_contentResponse.aE := mw_contentAeBase; + + v_ae1.start(f_CSE_REG_RET_004(v_contentResponse)); + v_ae1.done; + } + + testcase TC_CSE_REG_RET_004_NL() runs on Tester system CseSystem { + //Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template PrimitiveContent v_contentResponse; + + v_contentResponse.aE := mw_contentAeBase; + + v_ae1.start(f_CSE_REG_RET_004(v_contentResponse)); + v_ae1.done; + } + + testcase TC_CSE_REG_RET_004_CSZ() runs on Tester system CseSystem { + //Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template PrimitiveContent v_contentResponse; + + v_contentResponse.aE := mw_contentAeBase; + + v_ae1.start(f_CSE_REG_RET_004(v_contentResponse)); + v_ae1.done; + } + + function f_CSE_REG_RET_004(template PrimitiveContent p_contentResponse) runs on AeSimu { + //Local variables + var MsgIn v_response; + var integer v_aeIndex := -1; + + // Test control + + // Test component configuration + f_cf01Up(); + + // Test adapter configuration + + // Preamble + v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); + + mcaPort.send(m_request(m_retrieveResource(f_getResourceAddress(), f_getOriginator(v_aeIndex))));//TODO Maybe PX_SUPER_AE_ID + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000, p_contentResponse))) -> value v_response { + tc_ac.stop; + if (ispresent(v_response.primitive.responsePrimitive.primitiveContent)){ + if ((ispresent(v_response.primitive.responsePrimitive.primitiveContent.aE.appName)) or + (ispresent(v_response.primitive.responsePrimitive.primitiveContent.aE.nodeLink)) or + (ispresent(v_response.primitive.responsePrimitive.primitiveContent.aE.labels)) or + (ispresent(v_response.primitive.responsePrimitive.primitiveContent.aE.pointOfAccess)) or + (ispresent(v_response.primitive.responsePrimitive.primitiveContent.aE.contentSerialization)) ){ + setverdict(pass, __SCOPE__ & ": Response OK for retrieving for attribute"); + } else { + setverdict(fail, __SCOPE__ & ": Error: Unable to retrieve attribute"); + } + } else { + setverdict(fail, __SCOPE__ & ": Error: Primitive content not available"); + } + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK(p_contentResponse))) -> value v_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Wrong response status code"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Error, resource elements provided not matching expected resource elements"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Error while retrieving resource"); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No answer while retrieving resource"); + } + } + + // Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf01Down(); + } //end f_CSE_REG_RET_004 + + } //end g_CSE_REG_RET_004 + /** * @desc Check that if the IUT is IN-CSE, it accepts an retrieval request of <CSEBase> resource and returns the cseType attribute. cseType Attribute is mandatory for IN-CSE * @@ -1904,16 +2161,19 @@ module OneM2M_Testcases_CSE { alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000, v_contentResponse))) -> value v_response { tc_ac.stop; - if (ispresent(v_response.primitive.responsePrimitive.primitiveContent.cSEBase.cseType)){ - if (v_response.primitive.responsePrimitive.primitiveContent.cSEBase.cseType==int1){ - setverdict(pass, __SCOPE__ & ": cseType attribute is set to 1 (IN_CSE)"); + if (ispresent(v_response.primitive.responsePrimitive.primitiveContent)) { + if (ispresent(v_response.primitive.responsePrimitive.primitiveContent.cSEBase.cseType)){ + if (v_response.primitive.responsePrimitive.primitiveContent.cSEBase.cseType==int1){ + setverdict(pass, __SCOPE__ & ": cseType attribute is set to 1 (IN_CSE)"); + }else{ + setverdict(fail, __SCOPE__ & ": Error, cseType attribute is set to " & int2str(enum2int(v_response.primitive.responsePrimitive.primitiveContent.cSEBase.cseType))); + } }else{ - setverdict(fail, __SCOPE__ & ": Error, cseType attribute is set to " & int2str(enum2int(v_response.primitive.responsePrimitive.primitiveContent.cSEBase.cseType))); + setverdict(fail, __SCOPE__ & ": Error, cseType attribute is not present"); } - }else{ - setverdict(fail, __SCOPE__ & ": Error, cseType attribute is not present"); - } - + } else { + setverdict(fail, __SCOPE__ & ": Error, Primitive content not available"); + } } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK(v_contentResponse))) -> value v_response { tc_ac.stop; @@ -1940,6 +2200,163 @@ module OneM2M_Testcases_CSE { }//end TC_CSE_REG_RET_BV_005 + testcase TC_CSE_REG_RET_006() runs on CseSimu system CseSystem { + //Local variables + //Local variables + var MsgIn v_response; + var RequestPrimitive v_request; + var ResourceType v_resourceType := int16; //remoteCSE + var template PrimitiveContent v_contentResponse; + + // Test control + + // Test component configuration + f_cf04Up(); + + // Test adapter configuration + + // Preamble + vc_remoteCseIndex := f_cse_registerRemoteCse(m_createRemoteCSEBase); + + v_contentResponse.remoteCSE := mw_contentRemoteCSEBase; + + mccPort.send(m_request(m_retrieveResource(f_getResourceAddress(), f_getOriginator(vc_remoteCseIndex)))); + tc_ac.start; + alt { + [] mccPort.receive(mw_response(mw_responsePrimitive(int2000, v_contentResponse))) -> value v_response { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": Response OK for retrieving"); + } + [] mccPort.receive(mw_response(mw_responsePrimitiveOK(v_contentResponse))) -> value v_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Wrong response status code"); + } + [] mccPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Error, resource elements provided not matching expected resource elements"); + } + [] mccPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Error while retrieving resource"); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No answer while retrieving resource"); + } + } + + // Postamble + f_cse_postamble_deleteResourcesCSE(); + + // Tear down + f_cf04Down(); + + }//end TC_CSE_REG_RET_006 + + group g_CSE_REG_RET_007 { + + testcase TC_CSE_REG_RET_007_LBL() runs on Tester system CseSystem { + // Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template PrimitiveContent v_contentResponse; + + v_contentResponse.remoteCSE := mw_contentRemoteCSEBase; + + v_cse1.start(f_CSE_REG_RET_007(v_contentResponse)); + v_cse1.done; + } + + testcase TC_CSE_REG_RET_007_CST() runs on Tester system CseSystem { + // Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template PrimitiveContent v_contentResponse; + + v_contentResponse.remoteCSE := mw_contentRemoteCSEBase; + + v_cse1.start(f_CSE_REG_RET_007(v_contentResponse)); + v_cse1.done; + } + + testcase TC_CSE_REG_RET_007_POA() runs on Tester system CseSystem { + // Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template PrimitiveContent v_contentResponse; + + v_contentResponse.remoteCSE := mw_contentRemoteCSEBase; + + v_cse1.start(f_CSE_REG_RET_007(v_contentResponse)); + v_cse1.done; + } + + testcase TC_CSE_REG_RET_007_NL() runs on Tester system CseSystem { + // Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template PrimitiveContent v_contentResponse; + + v_contentResponse.remoteCSE := mw_contentRemoteCSEBase; + + v_cse1.start(f_CSE_REG_RET_007(v_contentResponse)); + v_cse1.done; + } + + function f_CSE_REG_RET_007(template PrimitiveContent p_contentResponse) runs on CseSimu { + var MsgIn v_response; + var RequestPrimitive v_request; + var ResourceType v_resourceType := int16; //remoteCSE + var template PrimitiveContent v_contentResponse; + + // Test control + + // Test component configuration + f_cf04Up(); + + // Test adapter configuration + + // Preamble + vc_remoteCseIndex := f_cse_registerRemoteCse(m_createRemoteCSEBase); + mccPort.send(m_request(m_retrieveResource(f_getResourceAddress(), f_getOriginator(vc_remoteCseIndex)))); + tc_ac.start; + alt { + [] mccPort.receive(mw_response(mw_responsePrimitive(int2000, p_contentResponse))) -> value v_response { + tc_ac.stop; + if (ispresent(v_response.primitive.responsePrimitive.primitiveContent)){ + if ((ispresent(v_response.primitive.responsePrimitive.primitiveContent.remoteCSE.labels)) or + (ispresent(v_response.primitive.responsePrimitive.primitiveContent.remoteCSE.nodeLink)) or + (ispresent(v_response.primitive.responsePrimitive.primitiveContent.remoteCSE.cseType)) or + (ispresent(v_response.primitive.responsePrimitive.primitiveContent.remoteCSE.pointOfAccess))){ + setverdict(pass, __SCOPE__ & ": Response OK for retrieving for attribute"); + } else { + setverdict(fail, __SCOPE__ & ": Error: Unable to retrieve attribute"); + } + } else { + setverdict(fail, __SCOPE__ & ": Error: Primitive content not available"); + } + } + [] mccPort.receive(mw_response(mw_responsePrimitiveOK(p_contentResponse))) -> value v_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Wrong response status code"); + } + [] mccPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Error, resource elements provided not matching expected resource elements"); + } + [] mccPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Error while retrieving resource"); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No answer while retrieving resource"); + } + } + + //Postamble + f_cse_postamble_deleteResourcesCSE(); + + // Tear down + f_cf04Down(); + } // f_CSE_REG_RET_007 + + } //end g_CSE_REG_RET_007 + /** * @desc Check that the IUT accepts a retrieval request of <CSEBase> resource and responds with supportedResourceTypes attribute containing a list of the supported resources and pointOfAccess containing the list of physical addresses to be used by Registree to connect to this CSE (e.g. IP address, FQDN). *