diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn index 20b3e13192e37803e5a18f28de009dfe113e260f..61eb54f37897cbb6c07f25fce60d02485a959021 100644 --- a/LibOneM2M/OneM2M_Functions.ttcn +++ b/LibOneM2M/OneM2M_Functions.ttcn @@ -4695,6 +4695,9 @@ module OneM2M_Functions { function f_getCreateRequestPrimitive(in ResourceType p_resourceType, template RequestPrimitive p_request := m_create, integer p_parentIndex) runs on Tester return RequestPrimitive { var template ListOfURIs v_defaultListOfURIs := {"NotInitialized"}; var template AcpType v_defaultAcpIDs := {"NotInitialized"}; + var template Timestamp v_defaultTimestamp := "00000101T000000"; + var template AbsRelTimestamp v_defaultAbsRelTimestamp := {alt_ := v_defaultTimestamp}; + var template DynAuthJWT v_defaultDynAuthJWT := {alt_ := "oneM2M.oneM2M.oneM2M"}; p_request.requestIdentifier := valueof(p_request.requestIdentifier) & f_rnd(1, 1000000); @@ -4710,24 +4713,13 @@ module OneM2M_Functions { p_request.to_ := f_getResourceAddress(p_parentIndex); } + //Specific actions for eac reasoure type if (p_resourceType == int1) {//AccessControlPolicy } else if (p_resourceType == int2) {//AE if(ispresent(p_request.primitiveContent.aE.pointOfAccess)) { p_request.primitiveContent.aE.requestReachability := true; } - } else if (p_resourceType == int16) {//remoteCSE - if(ispresent(p_request.primitiveContent.remoteCSE.pointOfAccess)) { - p_request.primitiveContent.remoteCSE.requestReachability := true; - } - } else if (p_resourceType == int9) {//group - if(match(valueof(p_request.primitiveContent.group_.memberIDs), v_defaultListOfURIs )){ - if (p_parentIndex == -1){ - p_request.primitiveContent.group_.memberIDs := {}; - }else{ - p_request.primitiveContent.group_.memberIDs := {f_getResourceId(vc_resourcesList[p_parentIndex].resource)}; - } - } } else if(p_resourceType == int3){//container //when a container is created by hosting cse for storing location information, the container is seen as a location container if(PX_IS_LOC_CONTAINER){ @@ -4738,10 +4730,27 @@ module OneM2M_Functions { p_request.primitiveContent.container.accessControlPolicyIDs := {f_getResourceId(vc_resourcesList[vc_acpAuxIndex].resource)}; } } + } else if (p_resourceType == int4) {//contentInstance + //creator attribute + if(ispresent(p_request.primitiveContent.contentInstance.creator)) { + p_request.primitiveContent.contentInstance.creator := f_getCreator(p_parentIndex); + } + } else if (p_resourceType == int9) {//group + if(match(valueof(p_request.primitiveContent.group_.memberIDs), v_defaultListOfURIs )){ + if (p_parentIndex == -1){ + p_request.primitiveContent.group_.memberIDs := {}; + }else{ + p_request.primitiveContent.group_.memberIDs := {f_getResourceId(vc_resourcesList[p_parentIndex].resource)}; + } + } } else if (p_resourceType == int15) {//pollingChannel if(ischosen(vc_resourcesList[p_parentIndex].resource.aE)) { p_request.from_ := vc_resourcesList[p_parentIndex].resource.aE.aE_ID; } + } else if (p_resourceType == int16) {//remoteCSE + if(ispresent(p_request.primitiveContent.remoteCSE.pointOfAccess)) { + p_request.primitiveContent.remoteCSE.requestReachability := true; + } } else if (p_resourceType == int18) {//schedule } else if (p_resourceType == int23) {//subscription //notificationURI @@ -4760,18 +4769,36 @@ module OneM2M_Functions { p_request.primitiveContent.subscription.accessControlPolicyIDs := {f_getResourceId(vc_resourcesList[vc_acpAuxIndex].resource)}; } } - } else if (p_resourceType == int4) {//contentInstance - //creator attribute - if(ispresent(p_request.primitiveContent.contentInstance.creator)) { - p_request.primitiveContent.contentInstance.creator := f_getCreator(p_parentIndex); - } } else if(p_resourceType == int29){//timeSeries if(ispresent(p_request.primitiveContent.timeSeries.accessControlPolicyIDs)) { if((match(valueof(p_request.primitiveContent.timeSeries.accessControlPolicyIDs), v_defaultAcpIDs )) and (isbound(vc_acpAuxIndex))){ p_request.primitiveContent.timeSeries.accessControlPolicyIDs := {f_getResourceId(vc_resourcesList[vc_acpAuxIndex].resource)}; - } + } } + } else if(p_resourceType == int30){//timeSeriesInstance + if(ispresent(p_request.primitiveContent.timeSeriesInstance.dataGenerationTime)) { + if((match(valueof(p_request.primitiveContent.timeSeriesInstance.dataGenerationTime), v_defaultAbsRelTimestamp))){ + p_request.primitiveContent.timeSeriesInstance.dataGenerationTime := {alt_ := fx_generateTimestamp()}; + } + } + } else if(p_resourceType == int31){//role + if(ispresent(p_request.primitiveContent.role.notBefore)) { + if((match(valueof(p_request.primitiveContent.role.notBefore), v_defaultTimestamp))){ + p_request.primitiveContent.role.notBefore := fx_generateTimestamp(); + } + } else if(ispresent(p_request.primitiveContent.role.notAfter)) { + if((match(valueof(p_request.primitiveContent.role.notAfter), v_defaultTimestamp))){ + p_request.primitiveContent.role.notAfter := fx_generateTimestamp(); + } + } + } else if(p_resourceType == int32){//token + if(ispresent(p_request.primitiveContent.token.tokenObject)) { + if((match(valueof(p_request.primitiveContent.token.tokenObject), v_defaultDynAuthJWT))){ + p_request.primitiveContent.token.tokenObject := fx_generateJWT(); + } + } } + return valueof(p_request); } diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn index c332349daa79eb5e09c505010ed344344f600fb0..6a12d1389fa58b287d657ebe09f0530bfc30c232 100644 --- a/LibOneM2M/OneM2M_Templates.ttcn +++ b/LibOneM2M/OneM2M_Templates.ttcn @@ -4464,7 +4464,7 @@ module OneM2M_Templates { expirationTime := omit,//O announceTo := omit,//O announcedAttribute := omit,//O - dataGenerationTime := {alt_ := fx_generateTimestamp()},//M + dataGenerationTime := {alt_ := "00000101T000000"},//M content := "AnyValue",//M sequenceNr := omit,//O contentSize := omit,//NP @@ -4537,8 +4537,8 @@ module OneM2M_Templates { roleID := "roleID@a.b", //M issuer := "issuer", //M holder := "holder", //M - notBefore := fx_generateTimestamp(),//M - notAfter := fx_generateTimestamp(),//M + notBefore := "00000101T000000",//M + notAfter := "00000101T000000",//M roleName := omit, //O tokenLink := omit, //O choice := omit//O @@ -4585,7 +4585,7 @@ module OneM2M_Templates { expirationTime := omit,//O dynamicAuthorizationConsultationIDs := omit, //O tokenID := "roleID@a.b", //M - tokenObject := fx_generateJWT(), //M + tokenObject := {alt_ := "oneM2M.oneM2M.oneM2M"}, //M version := omit, //O issuer := omit, //O holder := omit, //O diff --git a/LibOneM2M/OneM2M_Types.ttcn b/LibOneM2M/OneM2M_Types.ttcn index 3c7cff7f7dfcd78609129a7864c8ebb4dc08d0e6..105580b59882a4aa3413cc292d7689b6c3f6a258 100644 --- a/LibOneM2M/OneM2M_Types.ttcn +++ b/LibOneM2M/OneM2M_Types.ttcn @@ -1877,13 +1877,13 @@ with { }; -type XSD.String E2eCompactJWS (pattern "([a-zA-Z0-9\-_=]+).([a-zA-Z0-9\-_=]*).([A-Za-z0-9\-_=])+") +type XSD.String E2eCompactJWS (pattern "([a-zA-Z0-9\-_=]#(1,)).([a-zA-Z0-9\-_=]#(0,)).([A-Za-z0-9\-_=])#(1,)") with { variant "name as uncapitalized"; }; -type XSD.String E2eCompactJWE (pattern "([a-zA-Z0-9\-_=]+).([a-zA-Z0-9\-_=]*).([a-zA-Z0-9\-_=]*).([a-zA-Z0-9\-_=]*).([A-Za-z0-9\-_=])+") +type XSD.String E2eCompactJWE (pattern "([a-zA-Z0-9\-_=]#(1,)).([a-zA-Z0-9\-_=]#(0,)).([a-zA-Z0-9\-_=]#(0,)).([a-zA-Z0-9\-_=]#(0,)).([A-Za-z0-9\-_=])#(1,)") with { variant "name as uncapitalized"; };