diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn index cd87e06ee3b3f214dbbffb8cbe049a84be1ef8a6..cdc19bbe6bcf4eb75b8cb457f4a4bd0cb94cd182 100644 --- a/LibOneM2M/OneM2M_Templates.ttcn +++ b/LibOneM2M/OneM2M_Templates.ttcn @@ -397,14 +397,14 @@ module OneM2M_Templates { * @desc Base CREATE request primitive for AE resource (AUX) */ //Added by @Naum - template RequestPrimitive mw_createAEannc(template (omit) AcpType p_accessControlPolicyIds := omit,template (omit) XSD.ID p_from := omit, XSD.ID p_appId) := { + template RequestPrimitive mw_createAEannc(template (omit) AcpType p_accessControlPolicyIds := omit, template (omit) XSD.ID p_to := omit, template (omit) XSD.ID p_from := omit, XSD.ID p_appId, XSD.ID p_stemId := omit) := { operation := int1, - to_ := ?, + to_ := p_to, from_ := p_from,//PX_AE_ID_STEM,//TODO We should use omit, "s", or "c" requestIdentifier := ?, resourceType := int10002, primitiveContent := { - any_1 := {{AEAnnc_optional := mw_contentCreateAEannc(c_aeAuxName, p_accessControlPolicyIds, p_appId)}} + any_1 := {{AEAnnc_optional := mw_contentCreateAEannc("Credential-ID:None", p_accessControlPolicyIds, p_appId, p_to & "/" & p_stemId)}} }, roleIDs := *, originatingTimestamp := *, @@ -845,14 +845,14 @@ module OneM2M_Templates { group ContentCreate { - template AEAnnc_optional mw_contentCreateAEannc (in template (omit) XSD.String p_name, in template (omit) AcpType p_accessControlPolicyIds, XSD.ID p_appId := PX_APP_ID) := { - resourceName := p_name,//O + template AEAnnc_optional mw_contentCreateAEannc (in template (omit) XSD.String p_labels, in template (omit) AcpType p_accessControlPolicyIds, XSD.ID p_appId := PX_APP_ID, XSD.AnyURI p_nodeLink := omit) := { + resourceName := *,//O resourceType := omit,//NP resourceID := omit,//NP parentID := omit,//NP creationTime := omit,//NP lastModifiedTime := omit,//NP - labels := *,//O + labels := p_labels,//O accessControlPolicyIDs := p_accessControlPolicyIds,//O expirationTime := *,//O dynamicAuthorizationConsultationIDs := omit, //TODO Check whether it is optional or mandatory for create operation @@ -862,7 +862,7 @@ module OneM2M_Templates { aE_ID := omit,//NP pointOfAccess := *, //{"http://127.0.0.1:1400/monitor"},//O //{"http://192.168.1.92:18080/notifications/AE"}, // TODO: Check this => AE PoA ontologyRef := *,//O - nodeLink := omit,//NP + nodeLink := p_nodeLink,//NP requestReachability := ?,//M contentSerialization := *,//O e2eSecInfo := omit, //O TODO Check whether it is optional or mandatory for create operation @@ -2404,6 +2404,21 @@ module OneM2M_Templates { assignedTokenIdentifiers := omit, tokenRequestInformation := omit }; + + template ResponsePrimitive m_responsePrimitiveCreate(in template PrimitiveContent p_content := omit) := { + responseStatusCode := int2001, + requestIdentifier := testcasename() & "-m_responseNotification" & f_rnd(1, 1000000),, + primitiveContent := p_content, + to_ := omit, + from_ := omit, + originatingTimestamp := omit, + resultExpirationTimestamp := omit, + eventCategory := omit, + contentStatus := omit, + contentOffset := omit, + assignedTokenIdentifiers := omit, + tokenRequestInformation := omit + }; }//end group ResponsePrimitives diff --git a/OneM2M_Testcases.ttcn b/OneM2M_Testcases.ttcn index c42057bd1e7da22fb34dac62c10a01c41cadba7a..66272f7081f7e95a0b72ad21af352cbbe2ebf488 100644 --- a/OneM2M_Testcases.ttcn +++ b/OneM2M_Testcases.ttcn @@ -354,11 +354,11 @@ module OneM2M_Testcases { mcaPort.send(m_request(v_request)); tc_ac.start; alt { - [] mcaPort.receive(mw_response(mw_responsePrimitive(int4005))) { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int4105))) { tc_ac.stop; setverdict(pass, testcasename() & ": AE creation rejected."); } - [] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int4005))) -> value v_response{ + [] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int4105))) -> value v_response{ tc_ac.stop; setverdict(fail, testcasename() & ": Error while creating AE with status code " & int2str(enum2int(v_response.primitive.responsePrimitive.responseStatusCode))); } @@ -389,7 +389,7 @@ module OneM2M_Testcases { v_cseBaseIndex := f_cse_preamble_createServiceSubscribedAppRule({"S"});//c_CRUDNDi); //Test Body - v_request := valueof(m_createAe(PX_APP_ID, omit, "C-AE-ID-STEM")); + v_request := valueof(m_createAe(PX_APP_ID, omit, "S-AE-ID-STEM")); v_request := f_getUpdateRequestPrimitive(v_resourceType,v_cseBaseIndex, v_request); @@ -397,7 +397,7 @@ module OneM2M_Testcases { tc_ac.start; alt { - [] mccPort.receive(mw_request(mw_createAEannc(omit, omit, "APP_ID"))) { + [] mccPort.receive(mw_request(mw_createAEannc(omit, "CSE_ID", "/S", "APP_ID", "S-AE-ID-STEM"))) { tc_ac.stop; setverdict(pass, testcasename() & ": AE creation redirected."); } @@ -414,7 +414,94 @@ module OneM2M_Testcases { f_cse_postamble_deleteResources(); // Tear down - f_cf01Down(); + f_cf02Down(); + + } + + testcase TC_CSE_REG_BV_008() runs on CseTester system CseSystem { + + var MsgIn v_response; + var RequestPrimitive v_request; + var integer v_cseBaseIndex := -1; + var ResourceType v_resourceType := int2; + + // Test component configuration + f_cf02Up(); + + //Preambule + v_cseBaseIndex := f_cse_preamble_registerAe(); + f_cse_postamble_deleteResources(); //to deregister the AE, I don't know if it's correct like this? + + //Test Body + v_request := valueof(mw_createAEannc(omit, "CSE_ID", "/S", "APP_ID", "S-AE-ID-STEM")); + + v_request := f_getUpdateRequestPrimitive(v_resourceType,v_cseBaseIndex, v_request); + + mccPort.send(m_request(v_request)); + tc_ac.start; + + alt { + [] mccPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value v_response { + tc_ac.stop; + setverdict(pass, testcasename() & ": AE creation redirected."); + //continue to test the content + } + [] mccPort.receive { + tc_ac.stop; + setverdict(fail, testcasename() & ": Error while creating AE"); + } + [] tc_ac.timeout { + setverdict(inconc, testcasename() & ": No answer while creating AE"); + } + } + + // Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf02Down(); + + } + + testcase TC_CSE_REG_BV_009() runs on CseTester system CseSystem { + + var MsgIn v_response; + var ResponsePrimitive v_request; + var integer v_cseBaseIndex := -1; + var ResourceType v_resourceType := int2; + + // Test component configuration + f_cf02Up(); + + //Preambule + v_cseBaseIndex := f_cse_preamble_createServiceSubscribedAppRule({"S"});//c_CRUDNDi); + + //Test Body + v_request := valueof(m_responsePrimitiveCreate({any_1 := {{AEAnnc_optional := mw_contentCreateAEannc("Credential-ID:None", omit, PX_APP_ID, "/CSE_ID/S-AE-ID-STEM")}}})); + + mccPort.send(m_request(v_request)); + tc_ac.start; + + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) -> value v_response { + tc_ac.stop; + setverdict(pass, testcasename() & ": AE creation success."); + //continue to test the content + } + [] mcaPort.receive { + tc_ac.stop; + setverdict(fail, testcasename() & ": Error while creating AE"); + } + [] tc_ac.timeout { + setverdict(inconc, testcasename() & ": No answer while creating AE"); + } + } + + // Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf02Down(); }