diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn index 5ac698c5f4055e170c1aa88e180f02cc0ba8077f..0907164e53b3e645bf031d4ccf61a27dde507704 100644 --- a/LibOneM2M/OneM2M_Functions.ttcn +++ b/LibOneM2M/OneM2M_Functions.ttcn @@ -868,30 +868,34 @@ module OneM2M_Functions { var integer v_resourceIndex; // AE TODO To review the code (use of indexes, generation of value for certain attributes, etc..) - if(p_resourceType == int2 and ischosen(p_resource.any_1[0].AE_optional)) { - var AE_optional v_ae := p_resource.any_1[0].AE_optional; - var AE_optional v_aeModified; - - v_resourceIndex := lengthof(vc_resourcesList) - 1; - v_ae.resourceType := p_resourceType; - - v_ae.parentID := int2str(p_parentIndex); - v_ae.creationTime := fx_generateTimestamp(); - v_ae.lastModifiedTime := v_ae.creationTime; - v_ae.resourceID := "ae" & int2char(v_resourceIndex); - v_ae.aE_ID := "ae" & int2char(v_resourceIndex); - v_ae.resourceName := "ae" & int2char(v_resourceIndex); - - v_aeModified.parentID := v_ae.parentID; - v_aeModified.creationTime := v_ae.creationTime; - v_aeModified.lastModifiedTime := v_ae.lastModifiedTime; - v_aeModified.resourceID := v_ae.resourceID; - v_aeModified.aE_ID := v_ae.aE_ID; - v_aeModified.resourceName := v_ae.resourceName; - - p_resource.any_1[0].AE_optional := v_ae; - p_modifiedResource.AE_optional := v_aeModified; - return f_setResource(p_resource, p_parentIndex); + if(p_resourceType == int2 and ispresent(p_resource)) { + if(ischosen(p_resource.any_1[0].AE_optional)){ + var AE_optional v_ae := p_resource.any_1[0].AE_optional; + var AE_optional v_aeModified; + + v_resourceIndex := lengthof(vc_resourcesList) - 1; + v_ae.resourceType := p_resourceType; + + v_ae.parentID := int2str(p_parentIndex); + v_ae.creationTime := fx_generateTimestamp(); + v_ae.lastModifiedTime := v_ae.creationTime; + v_ae.resourceID := "ae" & int2char(v_resourceIndex); + v_ae.aE_ID := "ae" & int2char(v_resourceIndex); + v_ae.resourceName := "ae" & int2char(v_resourceIndex); + + v_aeModified.parentID := v_ae.parentID; + v_aeModified.creationTime := v_ae.creationTime; + v_aeModified.lastModifiedTime := v_ae.lastModifiedTime; + v_aeModified.resourceID := v_ae.resourceID; + v_aeModified.aE_ID := v_ae.aE_ID; + v_aeModified.resourceName := v_ae.resourceName; + + p_resource.any_1[0].AE_optional := v_ae; + p_modifiedResource.AE_optional := v_aeModified; + return f_setResource(p_resource, p_parentIndex); + + } + } // TODO: implement other resource types diff --git a/OneM2M_Testcases.ttcn b/OneM2M_Testcases.ttcn index 1d88ad8b6dc82609534280359c2648eab8506cf5..783ee7c579ee2eb5714eb880e264539f68f96cf2 100644 --- a/OneM2M_Testcases.ttcn +++ b/OneM2M_Testcases.ttcn @@ -1682,7 +1682,7 @@ module OneM2M_Testcases { var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; - + // Test control // Test component configuration @@ -1695,8 +1695,8 @@ module OneM2M_Testcases { // Test Body v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestPrimitive, v_aeIndex); - - mcaPort.send(m_request(v_request, {valueof(p_invalidAttribute)})); + + mcaPort.send(m_request(v_request, {p_invalidAttribute})); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { @@ -1708,7 +1708,7 @@ module OneM2M_Testcases { setverdict(fail, testcasename() & ": Accepted creation of resource type " & int2str(enum2int(p_resourceType)) & " containing an invalid value for attribute" & p_invalidAttribute.name); } [] tc_ac.timeout { - setverdict(inconc, testcasename() & ": No answer while creating resource type " & int2str(enum2int(p_resourceType))); + setverdict(inconc, testcasename() & ": No answer while creating resource type " & int2str(enum2int(p_resourceType))); } }