diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn index 5ded4dc60570513b13605e4258d7839647c5f592..23db167207d3bf5062dc2e0f7081d91f0b10d398 100644 --- a/LibOneM2M/OneM2M_Templates.ttcn +++ b/LibOneM2M/OneM2M_Templates.ttcn @@ -1362,7 +1362,16 @@ module OneM2M_Templates { resourceType := int19, primitiveContent := {serviceSubscribedAppRule := m_contentCreateServiceSubscribedAppRuleBase} }; - + + /** + * @desc Base CREATE request primitive for ServiceSubscribedNode Resource + */ + template (value) RequestPrimitive m_createServiceSubscribedNode modifies m_create := { + requestIdentifier := testcasename() & "-m_createServiceSubscribedNode", + resourceType := int20, + primitiveContent := {serviceSubscribedNode := m_contentServiceSubscribedNode} + }; + /** * @desc Base CREATE request primitive for Subscription resource */ diff --git a/LibOneM2M/OneM2M_TypesAndValues.ttcn b/LibOneM2M/OneM2M_TypesAndValues.ttcn index 9aaf4883acca6dd1d34f8cfe222995a34dc72e1f..ba3f6411608bb45edecd580ede904c16415511e1 100644 --- a/LibOneM2M/OneM2M_TypesAndValues.ttcn +++ b/LibOneM2M/OneM2M_TypesAndValues.ttcn @@ -4020,6 +4020,7 @@ group OtherTypes { StatsCollect_optional statsCollect, M2mServiceSubscriptionProfile_optional m2mServiceSubscriptionProfile, ServiceSubscribedAppRule_optional serviceSubscribedAppRule, + ServiceSubscribedNode_optional serviceSubscribedNode, Subscription_optional subscription, SemanticDescriptor_optional semanticDescriptor, TimeSeries_optional timeSeries, diff --git a/OneM2M_Testcases_CSE_Release_3.ttcn b/OneM2M_Testcases_CSE_Release_3.ttcn index 5aba1ab366582028e67a34e4e73c916d2efb6182..ff74f1ff1de1977b9bd44674556e1eeec42a3c96 100644 --- a/OneM2M_Testcases_CSE_Release_3.ttcn +++ b/OneM2M_Testcases_CSE_Release_3.ttcn @@ -12776,6 +12776,82 @@ module OneM2M_Testcases_CSE_Release_3 { group InitialServiceProvisioning{ + /** + * @desc Check that the IUT accepts the creation of a serviceSubscribedNode resource + * + */ + testcase TC_CSE_ISP_001() runs on Tester system CseSystem { + // Local variables + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + + v_ae1.start(f_CSE_ISP_001(e_cseRelative)); + v_ae1.done; + } + +// function f_CSE_GEN_CRE_001(in PrimitiveScope p_primitiveScope) runs on AeSimu system CseSystem { + function f_CSE_ISP_001(in PrimitiveScope p_primitiveScope) runs on AeSimu system CseSystem { + + // Local variables + var RequestPrimitive v_request; + var integer v_aeIndex := -1; + var integer v_resourceIndex := -1; + var AddressingMethod v_addressingMethod; + var PrimitiveScope v_primitiveScope; + + // Test control + if(not(PICS_UNSTRUCTURED_CSE_RELATIVE_RESOURCE_ID_FORMAT)) { + setverdict(inconc, __SCOPE__ & ": Unstructured-CSE-Relative-Resource-ID format support is required to run this test case"); + stop; + } + + // Test component configuration + f_cf01Up(); + + // Test adapter configuration + + // Preamble + v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); + +// v_resourceIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); + v_resourceIndex := f_cse_createResource(int20, m_createServiceSubscribedNode, v_aeIndex); + + // Test Body + //Force usage of Non-Hierarchical addressing method + v_addressingMethod := e_nonHierarchical; + v_primitiveScope := p_primitiveScope; +// v_request := f_getCreateRequestPrimitive(int3, m_createContainerBase, v_resourceIndex); + v_request := f_getCreateRequestPrimitive(int20, m_createServiceSubscribedNode, v_resourceIndex); + v_request.to_ := f_getResourceAddress(v_resourceIndex, v_addressingMethod, v_primitiveScope); + + f_send(e_mcaPort, m_request(v_request)); + + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": ServiceSubscribedNode resource created using non-hierarchical addressing method"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Wrong response status code in the response"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Error while creating ServiceSubscribedNode resource using non-hierarchical addressing method"); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No answer while creating resource"); + } + } + + // Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf01Down(); + + }//end f_CSE_ISP_001 }// end group InitialServiceProvisioning