diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn index 67f1ee93d3ca833cd720d57dc870ef840c28a824..30be8e0e93583e0a210a254e1a3ab4b54382ef96 100644 --- a/LibOneM2M/OneM2M_Templates.ttcn +++ b/LibOneM2M/OneM2M_Templates.ttcn @@ -912,6 +912,21 @@ module OneM2M_Templates { primitiveContent:= {role := m_contentUpdateRole} }; + /** + * @desc Base UPDATE request primitive for TransactionMgmt resource + */ + template (value) RequestPrimitive m_updateTransactionMgmtBase modifies m_update:= { + requestIdentifier := "m_updateTransactionMgmt", + primitiveContent:= {transactionMgmt := m_contentUpdateTransactionMgmt} + }; + + /** + * @desc Base UPDATE request primitive for Transaction resource + */ + template (value) RequestPrimitive m_updateTransactionBase modifies m_update:= { + requestIdentifier := "m_updateTransaction", + primitiveContent:= {transaction := m_contentUpdateTransaction} + }; }//end group Update @@ -1447,6 +1462,35 @@ module OneM2M_Templates { primitiveContent := {pollingChannel := mw_contentCreatePollingChannel} }; + /** + * @desc Base CREATE request primitive for TransactionMgmt resource's requestPrimitives + */ + /*template (value) AggregatedRequest m_createAggrRequestPrimitives(in template (value) Operation p_operation) := { + // requestIdentifier := testcasename() & "-m_createRequuestPrimitives", + request_list[-].from_ := "S0" + }*/ + + //const AggregatedRequest[-] c_AggregatedRequest := {request_list := {operation := int1; to_ := "resourceId"; from_ := "AeId"; }}; + + /** + * @desc Base CREATE request primitive for TransactionMgmt resource + */ + template (value) RequestPrimitive m_createTransactionMgmtBase(in template (value) AggregatedRequest p_aggregatedRequest) modifies m_create := { + requestIdentifier := testcasename() & "-m_createTransactionMgmt", + resourceType := int50, + primitiveContent := {transactionMgmt := m_contentCreateTransactionMgmt(p_aggregatedRequest, "MyTransactionMgmt", -) } + }; + + + /** + * @desc Base CREATE request primitive for Transaction resource + */ + template (value) RequestPrimitive m_createTransactionBase(in template (value) RequestPrimitive p_requestPrimitive) modifies m_create := { + requestIdentifier := testcasename() & "-m_createTransaction", + resourceType := int51, + primitiveContent := {transaction := m_contentCreateTransaction(p_requestPrimitive, "MyTransaction", -) } + }; + /** * @desc Base CREATE request primitive for PrimitveProfile resource */ @@ -3619,6 +3663,72 @@ module OneM2M_Templates { choice := omit//NP }; + /** + * @desc Base primitiveContent for CREATE operation for TransactionMgmt resource + * @param p_accessControlPolicyIds ACP IDs for the TransactionMgmt + * @param p_name Resource name + */ + template (value) TransactionMgmt_optional m_contentCreateTransactionMgmt ( in template (omit) AggregatedRequest p_requestPrimitives, + in template (omit) XSD.String p_name := c_defaultTransactionMgmtResourceName, + in template (omit) TransactionState p_transactionState := int1) := { + resourceName := p_name,//O p_name + resourceType := omit,//NP + resourceID := omit,//NP + parentID := omit,//NP + accessControlPolicyIDs := omit,//O + creationTime := omit,//NP + lastModifiedTime := omit,//NP + labels := omit,//O + expirationTime := omit,//O + dynamicAuthorizationConsultationIDs := omit, //O + creator := omit, //O + transactionLockTime := omit, //O + transactionExecuteTime := omit, //O + transactionCommitTime := omit, //O + transactionExpirationTime := omit, //O + transactionMode := omit, //O + transactionLockType := omit, //O + transactionControl := omit, //NP + transactionState := p_transactionState, //NP p_transactionState + transactionMaxRetries := omit, //O + transactionMgmtHandling := omit, //O + requestPrimitives := p_requestPrimitives, //M p_requestPrimitives + responsePrimitives := omit, //NP + choice := omit//NP + }; + + + /** + * @desc Base primitiveContent for CREATE operation for Transaction resource + * @param p_accessControlPolicyIds ACP IDs for the Transaction + * @param p_name Resource name + */ + template (value) Transaction_optional m_contentCreateTransaction ( in template (value) RequestPrimitive p_requestPrimitive , + in template (omit) XSD.String p_name := c_defaultTransactionMgmtResourceName, + in template (omit) TransactionControl p_transactionControl := int2) := { + resourceName := p_name,//O p_name + resourceType := omit,//NP + resourceID := omit,//NP + parentID := omit,//NP + accessControlPolicyIDs := omit,//O + creationTime := omit,//NP + lastModifiedTime := omit,//NP + labels := omit,//O + expirationTime := omit,//O + dynamicAuthorizationConsultationIDs := omit, //O + creator := omit, //O + transactionID := omit, + transactionControl := p_transactionControl, + transactionState := omit, + transactionLockTime := omit, //O + transactionExecuteTime := omit, //O + transactionCommitTime := omit, //O + transactionLockType := omit, //O + requestPrimitive := p_requestPrimitive, //M p_requestPrimitives + responsePrimitive := omit, //NP + choice := omit//NP + }; + /** * @desc Base template primitiveContent for CREATE operation for PrimitveProfile resource */ @@ -7266,6 +7376,32 @@ module OneM2M_Templates { aggregatedSoftwareStatus := omit,//NP individualSoftwareStatus := omit//NP }; + template (value) TransactionMgmt_optional m_contentUpdateTransactionMgmt := { + resourceName := omit, //NP + resourceType := omit, //NP + resourceID := omit, //NP + parentID := omit, //NP + creationTime := omit, //NP + lastModifiedTime := omit, //NP + labels := omit, //NP + accessControlPolicyIDs := omit, //NP + expirationTime := omit, //NP + dynamicAuthorizationConsultationIDs := omit, //NP + creator := omit, //NP + transactionExpirationTime := omit, //NP + transactionMode := omit, //NP + transactionMaxRetries := omit, //NP + transactionMgmtHandling := omit, //NP + transactionLockTime := omit, //NP + transactionExecuteTime := omit, //NP + transactionCommitTime := omit, //NP + transactionLockType := omit, //NP + transactionControl := omit, //NP + transactionState := omit, //NP + requestPrimitives := omit, //NP + responsePrimitives := omit, //NP + choice := omit //NP + }; /** * @desc Base UPDATE request primitive for SoftwareCampaign resource @@ -7274,6 +7410,31 @@ module OneM2M_Templates { requestIdentifier := "m_updateSoftwareCampaign", primitiveContent:= {softwareCampaign := m_contentUpdateSoftwareCampaign} }; + + template (value) Transaction_optional m_contentUpdateTransaction := { + resourceName := omit, //NP + resourceType := omit, //NP + resourceID := omit, //NP + parentID := omit, //NP + creationTime := omit, //NP + lastModifiedTime := omit, //NP + labels := omit, //NP + accessControlPolicyIDs := omit, //NP + expirationTime := omit, //NP + dynamicAuthorizationConsultationIDs := omit, //NP + creator := omit, //NP + transactionID := omit, //NP + transactionLockTime := omit, //NP + transactionExecuteTime := omit, //NP + transactionCommitTime := omit, //NP + transactionLockType := omit, //NP + transactionControl := omit, //NP + transactionState := omit, //NP + requestPrimitive := omit, //NP + responsePrimitive := omit, //NP + choice := omit //NP + }; + }//end group ContentUpdate group ContentRetrieve { diff --git a/LibOneM2M/OneM2M_TypesAndValues.ttcn b/LibOneM2M/OneM2M_TypesAndValues.ttcn index fcda65d54715b24a4d6cc2495fa9c7ea77d4caef..c767fc629c33f23000eec7cb971d6aebc658d2d0 100644 --- a/LibOneM2M/OneM2M_TypesAndValues.ttcn +++ b/LibOneM2M/OneM2M_TypesAndValues.ttcn @@ -54,6 +54,8 @@ module OneM2M_TypesAndValues { const XSD.String c_defaultTokenResourceName := "MyTokenResource"; const XSD.String c_defaultGenericInterworkingServiceResourceName := "MyGenericInterworkingServiceResource"; //<genericInterworkingService> const XSD.String c_defaultPrimitiveProfileceResourceName := "MyPrimitiveProfileResource"; + const XSD.String c_defaultTransactionMgmtResourceName := "MyTransactionMgmtResource"; + const XSD.String c_defaultTransactionResourceName := "MyTransactionResource"; const XSD.String c_defaultAe1ResourceName := "MyAe1"; const XSD.String c_defaultAe2ResourceName := "MyAe2"; const XSD.String c_defaultAcpResourceName := "MyAcp"; @@ -4133,6 +4135,90 @@ group OptionalResourceTypes { variant (choice.choice_list[-]) "untagged"; }; + type record TransactionMgmt_optional + { + ResourceName resourceName optional, + ResourceType resourceType optional, + XSD.ID resourceID optional, + NhURI parentID optional, + Timestamp creationTime optional, + Timestamp lastModifiedTime optional, + Labels labels optional, + AcpType accessControlPolicyIDs optional, + Timestamp expirationTime optional, + ListOfURIs dynamicAuthorizationConsultationIDs optional, + XSD.ID creator optional, + Timestamp transactionLockTime optional, + Timestamp transactionExecuteTime optional, + Timestamp transactionCommitTime optional, + Timestamp transactionExpirationTime optional, + TransactionMode transactionMode optional, + TransactionLockType transactionLockType optional, + TransactionControl transactionControl optional, + TransactionState transactionState optional, + XSD.NonNegativeInteger transactionMaxRetries optional, + TransactionMgmtHandling transactionMgmtHandling optional, + AggregatedRequest requestPrimitives optional, + AggregatedResponse responsePrimitives optional, + union { + record length(1 .. infinity) of ChildResourceRef childResource_list, + record length(1 .. infinity) of union { + Subscription subscription + } choice_list + } choice optional + } + with { + variant "name as uncapitalized"; + variant "element"; + variant (resourceName) "attribute"; + variant (choice) "untagged"; + variant (choice.childResource_list) "untagged"; + variant (choice.childResource_list[-]) "name as 'childResource'"; + variant (choice.choice_list) "untagged"; + variant (choice.choice_list[-]) "untagged"; + }; + + + type record Transaction_optional +{ + ResourceName resourceName optional, + ResourceType resourceType optional, + XSD.ID resourceID optional, + NhURI parentID optional, + Timestamp creationTime optional, + Timestamp lastModifiedTime optional, + Labels labels optional, + AcpType accessControlPolicyIDs optional, + Timestamp expirationTime optional, + ListOfURIs dynamicAuthorizationConsultationIDs optional, + XSD.ID creator optional, + XSD.String transactionID optional, + TransactionControl transactionControl optional, + TransactionState transactionState optional, + Timestamp transactionLockTime optional, + Timestamp transactionExecuteTime optional, + Timestamp transactionCommitTime optional, + TransactionLockType transactionLockType optional, + RequestPrimitive requestPrimitive optional, + ResponsePrimitive responsePrimitive optional, + union { + record length(1 .. infinity) of ChildResourceRef childResource_list, + record length(1 .. infinity) of union { + Subscription subscription + } choice_list + } choice optional +} +with { + variant "name as uncapitalized"; + variant "element"; + variant (resourceName) "attribute"; + variant (choice) "untagged"; + variant (choice.childResource_list) "untagged"; + variant (choice.childResource_list[-]) "name as 'childResource'"; + variant (choice.choice_list) "untagged"; + variant (choice.choice_list[-]) "untagged"; +}; + }//end group OptionalResourceTypes @@ -4724,7 +4810,9 @@ group OtherTypes { GenericInterworkingOperationInstance_optional genericInterworkingOperationInstance, Role_optional role, Token_optional token, - SoftwareCampaign_optional softwareCampaign, //added on Release-4 + SoftwareCampaign_optional softwareCampaign, //added on Release-4 + TransactionMgmt_optional transactionMgmt, + Transaction_optional transaction, //HAIM DeviceAirConditioner_optional deviceAirConditioner, DeviceClothesWasherDryer_optional deviceClothesWasherDryer, diff --git a/OneM2M_PermutationFunctions.ttcn b/OneM2M_PermutationFunctions.ttcn index 6cd543086cc4fc8baa64ed907ad352007c229a08..3b7ba624906a4e01f28eb52218d1a783a26e9c75 100644 --- a/OneM2M_PermutationFunctions.ttcn +++ b/OneM2M_PermutationFunctions.ttcn @@ -14767,6 +14767,332 @@ module OneM2M_PermutationFunctions { }//end of group Response_Type + group Transaction_Management{ + + group Update{ + + function f_CSE_TMG_UPD_003(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive) runs on AeSimu system CseSystem { + + // Local variables + var MsgIn v_response; + var RequestPrimitive v_request; + var integer v_aeIndex := -1; + var integer v_resourceIndex := -1; + var integer v_ae2Index := -1; + var integer v_parentIndex := -1; + + // Test control + + // Test component configuration + f_cf01Up(true); + + // Test adapter configuration + + // Preamble + v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); + + if(p_resourceType != int18) { + v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent + } + + v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, v_parentIndex); + + // Test Body + v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive); + + f_send(e_mcaPort, m_request(v_request)); + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int4123))) -> value v_response { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": ILLEGAL_TRANSACTION_STATE_TRANSITION_ATTEMPTED." & int2str(enum2int(p_resourceType)) ); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Wrong response status code"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Updating Invalid transactionControl "); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No answer while updating resource type " & int2str(enum2int(p_resourceType))); + } + } + + vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_resourceIndex); + + // Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf01Down(); + + }//end f_CSE_TMG_UPD_003 + + function f_CSE_TMG_UPD_004(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive) runs on AeSimu system CseSystem { + + // Local variables + var MsgIn v_response; + var RequestPrimitive v_request; + var integer v_aeIndex := -1; + var integer v_resourceIndex := -1; + var integer v_ae2Index := -1; + var integer v_parentIndex := -1; + + // Test control + + // Test component configuration + f_cf01Up(true); + + // Test adapter configuration + + // Preamble + v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); + + if(p_resourceType != int18) { + v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent + } + + v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, v_parentIndex); + + // Test Body + v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive); + + f_send(e_mcaPort, m_request(v_request)); + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value vc_response { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": Attribute of resource type " & int2str(enum2int(p_resourceType)) & " updated successfully"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value vc_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Wrong response status code"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value vc_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Error while updating resource type " & int2str(enum2int(p_resourceType))); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No answer while updating resource type " & int2str(enum2int(p_resourceType))); + } + } + + vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_resourceIndex); + + // Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf01Down(); + + }//end f_CSE_TMG_UPD_004 + + + function f_CSE_TMG_UPD_006(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive) runs on AeSimu system CseSystem { + + // Local variables + var MsgIn v_response; + var RequestPrimitive v_request; + var integer v_aeIndex := -1; + var integer v_resourceIndex := -1; + var integer v_ae2Index := -1; + var integer v_parentIndex := -1; + + // Test control + + // Test component configuration + f_cf01Up(true); + + // Test adapter configuration + + // Preamble + v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); + + if(p_resourceType != int18) { + v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent + } + + v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, v_parentIndex); + + // Test Body + v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive); + + f_send(e_mcaPort, m_request(v_request)); + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int4123))) -> value v_response { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": ILLEGAL_TRANSACTION_STATE_TRANSITION_ATTEMPTED." & int2str(enum2int(p_resourceType)) ); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Wrong response status code"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Updating Invalid transactionControl "); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No answer while updating resource type " & int2str(enum2int(p_resourceType))); + } + } + + vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_resourceIndex); + + // Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf01Down(); + + }//end f_CSE_TMG_UPD_006 + + function f_CSE_TMG_UPD_007(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive) runs on AeSimu system CseSystem { + + // Local variables + var MsgIn v_response; + var RequestPrimitive v_request; + var integer v_aeIndex := -1; + var integer v_resourceIndex := -1; + var integer v_ae2Index := -1; + var integer v_parentIndex := -1; + + // Test control + + // Test component configuration + f_cf01Up(true); + + // Test adapter configuration + + // Preamble + v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); + + if(p_resourceType != int18) { + v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent + } + + v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, v_parentIndex); + + // Test Body + v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive); + + f_send(e_mcaPort, m_request(v_request)); + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value vc_response { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": Attribute of resource type " & int2str(enum2int(p_resourceType)) & " updated successfully"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value vc_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Wrong response status code"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value vc_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Error while updating resource type " & int2str(enum2int(p_resourceType))); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No answer while updating resource type " & int2str(enum2int(p_resourceType))); + } + } + + vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_resourceIndex); + + // Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf01Down(); + + }//end f_CSE_TMG_UPD_007 + } // end of update + + + group Delete{ + function f_CSE_TMG_DEL_001(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive) runs on AeSimu system CseSystem { + // Local variables + var MsgIn v_response; + var RequestPrimitive v_request; + var integer v_aeIndex := -1; + var integer v_parentIndex := -1; + var integer v_containerIndex := -1; + var integer v_resourceIndex := -1; + var integer v_ae2Index := -1; + + // Test control + + // Test component configuration + f_cf01Up(true); + + // Test adapter configuration + + // Preamble + v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi) + + f_cse_preamble_subscriptionVerification(v_ae2Index, p_createRequestPrimitive, p_resourceType); + + if(p_resourceType == int4) { + v_containerIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); + v_parentIndex := v_containerIndex; + } else if(p_resourceType != int18) { + v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent + } + + v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, v_parentIndex); + + // Test Body + if(p_resourceType == int23) { + if (vc_ae2.running) { + vc_ae2.stop; + } + vc_ae2.start(f_cse_notifyProcedure_noNotificationHandler()); + } + + v_request := valueof(m_delete(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex))); + + f_send(e_mcaPort, m_request(v_request)); + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int2002))) -> value v_response { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": Resource" & int2str(enum2int(p_resourceType)) & " deleted successfully"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Wrong response status code"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Error while deleting resource type " & int2str(enum2int(p_resourceType))); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No answer while deleting resource type " & int2str(enum2int(p_resourceType))); + } + } + + f_checkAeSimuStatus(); + + //Check to see if the resource is present or not + if (f_cse_isResourceNotPresent(v_aeIndex, f_getResourceName(vc_resourcesList[v_resourceIndex].resource))){ + setverdict(pass, __SCOPE__ & ":INFO: Resource deleted"); + } else { + setverdict(fail, __SCOPE__ & ":ERROR: Resource not deleted"); + } + + // Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf01Down(); + + };//end f_CSE_DMR_DEL_001 + + + } // end of delete + }// end group Transaction_Management + }//end group CSE diff --git a/OneM2M_Testcases_CSE_Release_4.ttcn b/OneM2M_Testcases_CSE_Release_4.ttcn index e61c238442bf9ceb0012d613dcea74cfde923cc3..f46dd237a10ffd74a508c4f31e1973bcda9493f5 100644 --- a/OneM2M_Testcases_CSE_Release_4.ttcn +++ b/OneM2M_Testcases_CSE_Release_4.ttcn @@ -11787,6 +11787,2588 @@ module OneM2M_Testcases_CSE_Release_4 { // } End group SoftwareManagement + group Transaction_Management { + + group Create{ + + /** + * @desc Check that the IUT sets transactionControl to INITIAL during creation of TransactionMgmt resource + * + */ + testcase TC_CSE_TMG_CRE_001() runs on Tester system CseSystem { //Create + // Local variables + + + + + var AggregatedRequest.request_list[-] v_requestPrim; + + v_requestPrim := {int1, "", "", -, -, -}; + + var AggregatedRequest v_aggregatedRequest:= + { + request_list := + { + [0] := v_requestPrim + } + + }; + + + var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest); + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + + v_ae1.start(f_CSE_TMG_CRE_001(int50, v_createRequest));//TransactionMgmt + v_ae1.done; + }//end TC_CSE_TMG_CRE_001 + + function f_CSE_TMG_CRE_001(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive) runs on AeSimu system CseSystem return ResponsePrimitive { + + // Local variables + var MsgIn v_response; + var RequestPrimitive v_request; + var integer v_aeIndex := -1; + var integer v_resourceIndex := -1; + const TransactionControl transactionControl := int1; //INITIAL + + // Test control + + // Test component configuration + f_cf01Up(); + + // Test adapter configuration + + // Preamble + v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); + + // Test Body + v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestPrimitive, v_aeIndex); + + f_send(e_mcaPort, m_request(v_request)); + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) -> value vc_response { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": Accepted creation rejected for resource type " & int2str(enum2int(p_resourceType))); + f_checkAttributesToBeSaved(p_resourceType, v_request, vc_response.primitive.responsePrimitive); + v_resourceIndex := f_setResource(vc_response.primitive.responsePrimitive.primitiveContent, p_resourceType, v_aeIndex); + if(not match(transactionControl , v_response.primitive.responsePrimitive.primitiveContent.transactionMgmt.transactionControl)){ + setverdict(fail, __SCOPE__ & ": Error, transactionControl is not set to INITIAL "); + } + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value vc_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Wrong response status code"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value vc_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Creation rejected of resource type " & int2str(enum2int(p_resourceType))); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No answer while creating resource type " & int2str(enum2int(p_resourceType))); + } + } + + f_checkAeSimuStatus(); + + //Check to see if the resource is present or not + if(f_cse_isResourcePresent(v_resourceIndex)){ + setverdict(pass, __SCOPE__ & ":INFO: Resource created"); + } else { + setverdict(fail, __SCOPE__ & ":ERROR: Resource not created"); + } + + // Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf01Down(); + + return vc_response.primitive.responsePrimitive; + + }//end f_CSE_TMG_CRE_001 + + /** + * @desc Check that the IUT rejecet creation of <transactionMgmt> resource if from parameter of one of AggregatedRequest is not same as origitor * + */ + testcase TC_CSE_TMG_CRE_002() runs on Tester system CseSystem { + // Local variables + var AggregatedRequest.request_list[-] v_requestPrim; + + v_requestPrim := {int1, "", "", -, -, -}; + + var AggregatedRequest v_aggregatedRequest:= + { + request_list := + { + [0] := v_requestPrim + } + + }; + var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest); + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + v_createRequest.primitiveContent.transactionMgmt.resourceName := omit; + v_ae1.start(f_CSE_TMG_CRE_002(int50, v_createRequest));//TransactionMgmt + v_ae1.done; + }//end TC_CSE_TMG_CRE_002 + + + function f_CSE_TMG_CRE_002(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive) runs on AeSimu system CseSystem return ResponsePrimitive { + // Local variables + var MsgIn v_response; + var RequestPrimitive v_request; + var integer v_aeIndex := -1; + var integer v_ae2Index := -1; + var integer v_resourceIndex := -1; + + // Test control + + // Test component configuration + f_cf01Up(); + + // Test adapter configuration + + // Preamble + v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); + v_ae2Index := f_cse_preamble_registerAe(); //other AE + + // Test Body + v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestPrimitive, v_aeIndex); + v_request.primitiveContent.transactionMgmt.requestPrimitives.request_list[0].from_ := f_getResourceId(vc_resourcesList[v_ae2Index].resource);//f_getResourceAddress(v_ae2Index); + f_send(e_mcaPort, m_request(v_request)); + tc_ac.start; + + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int4000))) -> value v_response { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": Creation rejected for resource type " & int2str(enum2int(p_resourceType))); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> 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__ & ": Accepted creation of resource type " & int2str(enum2int(p_resourceType))); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No answer while creating resource type " & int2str(enum2int(p_resourceType))); + } + } + + f_checkAeSimuStatus(); + + //Check to see if the resource is present or not + if(f_cse_isResourcePresent(v_resourceIndex)){ + setverdict(pass, __SCOPE__ & ":INFO: Resource created"); + } else { + setverdict(fail, __SCOPE__ & ":ERROR: Resource not created"); + } + + // Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf01Down(); + + return vc_response.primitive.responsePrimitive; + }//end f_CSE_TMG_CRE_002 + + /** + * @desc Check that the IUT sets transactionControl to LOCK during creation of <transaction> resource + * + */ + testcase TC_CSE_TMG_CRE_003() runs on Tester system CseSystem { //Create + // Local variables + + var template RequestPrimitive v_createRequest := m_createTransactionBase(m_create); + //var ResponsePrimitive v_responsePrimitive; + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + + //v_createRequest.primitiveContent.transactionMgmt.resourceName := omit; + v_createRequest.primitiveContent.transaction.requestPrimitive := omit; + + + v_ae1.start(f_CSE_TMG_CRE_003(int51, v_createRequest));//Transaction + v_ae1.done; + }//end TC_CSE_TMG_CRE_003 + + function f_CSE_TMG_CRE_003(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive) runs on AeSimu system CseSystem return ResponsePrimitive { + // Local variables + var MsgIn v_response; + var RequestPrimitive v_request; + var integer v_aeIndex := -1; + //var integer v_ae2Index := -1; + var integer v_resourceIndex := -1; + const TransactionControl transactionControl := int2; //LOCK + + // Test control + + // Test component configuration + f_cf01Up(); + + // Test adapter configuration + + // Preamble + v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); + + + // Test Body + v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestPrimitive, v_aeIndex); + + var RequestPrimitive v_createInnerRequestPrimitive := m_create; + v_createInnerRequestPrimitive.to_ := f_getResourceId(vc_resourcesList[v_aeIndex].resource); + v_createInnerRequestPrimitive.from_ := f_getResourceId(vc_resourcesList[v_aeIndex].resource); + + v_request.primitiveContent.transaction.requestPrimitive := v_createInnerRequestPrimitive; + + f_send(e_mcaPort, m_request(v_request)); + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) -> value vc_response { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": Accepted creation rejected for resource type " & int2str(enum2int(p_resourceType))); + f_checkAttributesToBeSaved(p_resourceType, v_request, vc_response.primitive.responsePrimitive); + v_resourceIndex := f_setResource(vc_response.primitive.responsePrimitive.primitiveContent, p_resourceType, v_aeIndex); + if(not match(transactionControl , v_response.primitive.responsePrimitive.primitiveContent.transactionMgmt.transactionControl)){ + setverdict(fail, __SCOPE__ & ": Error, transactionControl is not set to INITIAL "); + } + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value vc_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Wrong response status code"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value vc_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Creation rejected of resource type " & int2str(enum2int(p_resourceType))); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No answer while creating resource type " & int2str(enum2int(p_resourceType))); + } + } + + f_checkAeSimuStatus(); + + //Check to see if the resource is present or not + if(f_cse_isResourcePresent(v_resourceIndex)){ + setverdict(pass, __SCOPE__ & ":INFO: Resource created"); + } else { + setverdict(fail, __SCOPE__ & ":ERROR: Resource not created"); + } + + // Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf01Down(); + + return vc_response.primitive.responsePrimitive; + + + }//end f_CSE_TMG_CRE_003 + + /** + * @desc Check that the IUT rejecets creation of <transaction> resource if from parameter of requestPrimitive is not same as origitor * + */ + testcase TC_CSE_TMG_CRE_004() runs on Tester system CseSystem { //Create + // Local variables + + var template RequestPrimitive v_createRequest := m_createTransactionBase(m_create); + //var ResponsePrimitive v_responsePrimitive; + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + + v_ae1.start(f_CSE_TMG_CRE_004(int51, v_createRequest));//Transaction + v_ae1.done; + }//end TC_CSE_TMG_CRE_004 + + function f_CSE_TMG_CRE_004(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive) runs on AeSimu system CseSystem return ResponsePrimitive { + // Local variables + var MsgIn v_response; + var RequestPrimitive v_request; + var integer v_aeIndex := -1; + var integer v_ae2Index := -1; + var integer v_resourceIndex := -1; + + // Test control + + // Test component configuration + f_cf01Up(); + + // Test adapter configuration + + // Preamble + v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); + v_ae2Index := f_cse_preamble_registerAe(); //other AE + + + // Test Body + v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestPrimitive, v_aeIndex); + v_request.primitiveContent.transaction.requestPrimitive.from_ := f_getResourceId(vc_resourcesList[v_ae2Index].resource); +// {f_getResourceAddress(v_ae2Index)} + f_send(e_mcaPort, m_request(v_request)); + tc_ac.start; + + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int4000))) -> value v_response { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": Creation rejected for resource type " & int2str(enum2int(p_resourceType))); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> 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__ & ": Accepted creation of resource type " & int2str(enum2int(p_resourceType))); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No answer while creating resource type " & int2str(enum2int(p_resourceType))); + } + } + + f_checkAeSimuStatus(); + + //Check to see if the resource is present or not + if(f_cse_isResourcePresent(v_resourceIndex)){ + setverdict(pass, __SCOPE__ & ":INFO: Resource created"); + } else { + setverdict(fail, __SCOPE__ & ":ERROR: Resource not created"); + } + + // Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf01Down(); + + return vc_response.primitive.responsePrimitive; + } // end f_CSE_TMG_CRE_004 + + testcase TC_CSE_TMG_CRE_005() runs on Tester system CseSystem { //Create + // Local variables + + var AggregatedRequest.request_list[-] v_requestPrim; + + v_requestPrim := {int1, "", "", -, -, -}; + + var AggregatedRequest v_aggregatedRequest:= + { + request_list := + { + [0] := v_requestPrim + } + + }; + + var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest); + //var ResponsePrimitive v_responsePrimitive; + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + + v_ae1.start(f_CSE_TMG_CRE_005(int50, v_createRequest));//TransactionMgmt + v_ae1.done; + }//end TC_CSE_TMG_CRE_005 //TODO + + function f_CSE_TMG_CRE_005(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive) runs on AeSimu system CseSystem return ResponsePrimitive { + + // Local variables + var MsgIn v_response; + var RequestPrimitive v_request; + var integer v_aeIndex := -1; + var integer v_resourceIndex := -1; + const TransactionControl c_transactionControl := int1; //INITIAL + + // Test control + + // Test component configuration + f_cf01Up(); + + // Test adapter configuration + + // Preamble + v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); + + // Test Body + v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestPrimitive, v_aeIndex); + + f_send(e_mcaPort, m_request(v_request)); + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) -> value vc_response { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": Accepted creation rejected for resource type " & int2str(enum2int(p_resourceType))); + f_checkAttributesToBeSaved(p_resourceType, v_request, vc_response.primitive.responsePrimitive); + v_resourceIndex := f_setResource(vc_response.primitive.responsePrimitive.primitiveContent, p_resourceType, v_aeIndex); + if(not match(c_transactionControl , v_response.primitive.responsePrimitive.primitiveContent.transactionMgmt.transactionControl)){ + setverdict(fail, __SCOPE__ & ": Error, transactionControl is not set to INITIAL "); + } + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value vc_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Wrong response status code"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value vc_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Creation rejected of resource type " & int2str(enum2int(p_resourceType))); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No answer while creating resource type " & int2str(enum2int(p_resourceType))); + } + } + + f_checkAeSimuStatus(); + + //Check to see if the resource is present or not + if(f_cse_isResourcePresent(v_resourceIndex)){ + setverdict(pass, __SCOPE__ & ":INFO: Resource created"); + } else { + setverdict(fail, __SCOPE__ & ":ERROR: Resource not created"); + } + + // Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf01Down(); + + return vc_response.primitive.responsePrimitive; + + }//end f_CSE_TMG_CRE_005 + + + + } // end group Create + + group Update{ + + /** + * @desc Check that the IUT rejecet update of transactionControl attribute of <transactionMgmt> resource if from parameter is not same as origitor + * + * + */ + + testcase TC_CSE_TMG_UPD_001() runs on Tester system CseSystem { + // Local variables + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase; + var PrimitiveContent v_primitiveContentRetrieveResource; + v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int2; + var AggregatedRequest.request_list[-] v_requestPrim; + + v_requestPrim := {int1, "", "", -, -, -}; + + var AggregatedRequest v_aggregatedRequest:= + { + request_list := + { + [0] := v_requestPrim + } + + }; + + v_ae1.start(f_CSE_TMG_UPD_001(int50, m_createTransactionMgmtBase(v_aggregatedRequest), v_updateRequest));//Container + v_ae1.done; + + if(getverdict == pass){ + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + //Check that the resource has NOT been udpated + if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) { + if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int2){ + setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated") + } + } + } + + } // TC_CSE_TMG_UPD_001 + + function f_CSE_TMG_UPD_001(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive) runs on AeSimu system CseSystem { + + // Local variables + var MsgIn v_response; + var RequestPrimitive v_request; + var integer v_aeIndex := -1; + var integer v_resourceIndex := -1; + var integer v_ae2Index := -1; + var integer v_parentIndex := -1; + + // Test control + + // Test component configuration + f_cf01Up(true); + + // Test adapter configuration + + // Preamble + v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); + + v_ae2Index := f_cse_preamble_registerAe();//c_CRUDNDi); + //f_cse_preamble_subscriptionVerification(v_ae2Index, p_createRequestPrimitive, p_resourceType); + + if(p_resourceType != int18) { + v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent + } + + v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, v_parentIndex); + + // Test Body + v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive); + v_request.from_ := f_getResourceId(vc_resourcesList[v_ae2Index].resource); + + f_send(e_mcaPort, m_request(v_request)); + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int4103))) -> value v_response { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": Originator has no privilege. Creator is not same as originator of request " & int2str(enum2int(p_resourceType)) ); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Wrong response status code"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Updating transactionControl when originator is not creator"); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No answer while updating resource type " & int2str(enum2int(p_resourceType))); + } + } + + vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_resourceIndex); + + // Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf01Down(); + + }//end f_CSE_TMG_UPD_001 + + /** + /** + * @desc Check that the IUT rejecet update of transactionControl attribute of <transactionMgmt> resource if + * + * + */ + testcase TC_CSE_TMG_UPD_002() runs on Tester system CseSystem { + // Local variables + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase; + var PrimitiveContent v_primitiveContentRetrieveResource; + v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int2; + var AggregatedRequest.request_list[-] v_requestPrim; + + v_requestPrim := {int1, "", "", -, -, -}; + + var AggregatedRequest v_aggregatedRequest:= + { + request_list := + { + [0] := v_requestPrim + } + + }; + + v_ae1.start(f_CSE_TMG_UPD_002(int50, m_createTransactionMgmtBase(v_aggregatedRequest), v_updateRequest));//Container + v_ae1.done; + + if(getverdict == pass){ + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + //Check that the resource has NOT been udpated + if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) { + if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int2){ + setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated") + } + } + } + + } // TC_CSE_TMG_UPD_002 + + function f_CSE_TMG_UPD_002(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive) runs on AeSimu system CseSystem { + + // Local variables + var MsgIn v_response; + var RequestPrimitive v_request; + var integer v_aeIndex := -1; + var integer v_resourceIndex := -1; + //var integer v_ae2Index := -1; + var integer v_parentIndex := -1; + + // Test control + + // Test component configuration + f_cf01Up(true); + + // Test adapter configuration + + // Preamble + v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); + + if(p_resourceType != int18) { + v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent + } + + p_createRequestPrimitive.primitiveContent.transactionMgmt.transactionMode := int1; + v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, v_parentIndex); + + // Test Body + v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive); + + f_send(e_mcaPort, m_request(v_request)); + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int4000))) -> value v_response { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": BAD_REQUEST. transactionMode is CSE_CONTROLLED " & int2str(enum2int(p_resourceType)) ); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Wrong response status code"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Updating transactionControl when transactionMode is CSE_CONTROLLED"); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No answer while updating resource type " & int2str(enum2int(p_resourceType))); + } + } + + vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_resourceIndex); + + // Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf01Down(); + + }//end f_CSE_TMG_UPD_002 + /** + /** + * @desc Check that the IUT rejecets update of transactionControl attribute of <transactionMgmt> resource if it does not transition to valid value + * + * + */ + + group TC_CSE_TMG_UPD_003{ + + group TC_CSE_TMG_UPD_003_INI{ + + testcase TC_CSE_TMG_UPD_003_INI_EXE() runs on Tester system CseSystem { + // Local variables + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase; + var PrimitiveContent v_primitiveContentRetrieveResource; + v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int3; //EXECUTE + var AggregatedRequest.request_list[-] v_requestPrim; + + v_requestPrim := {int1, "", "", -, -, -}; + + var AggregatedRequest v_aggregatedRequest:= + { + request_list := + { + [0] := v_requestPrim + } + + }; + var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest); + v_createRequest.primitiveContent.transactionMgmt.transactionState := int1; //INITIAL + v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED + + v_ae1.start(f_CSE_TMG_UPD_003(int50, v_createRequest, v_updateRequest));//Container + v_ae1.done; + + if(getverdict == pass){ + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + //Check that the resource has NOT been udpated + if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) { + if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int3){ + setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated") + } + } + } + + } // TC_CSE_TMG_UPD_003_INI_EXE + + testcase TC_CSE_TMG_UPD_003_INI_ABT() runs on Tester system CseSystem { + // Local variables + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase; + var PrimitiveContent v_primitiveContentRetrieveResource; + v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int5; //ABORT + var AggregatedRequest.request_list[-] v_requestPrim; + + v_requestPrim := {int1, "", "", -, -, -}; + + var AggregatedRequest v_aggregatedRequest:= + { + request_list := + { + [0] := v_requestPrim + } + + }; + var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest); + v_createRequest.primitiveContent.transactionMgmt.transactionState := int1; //INITIAL + v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED + + v_ae1.start(f_CSE_TMG_UPD_003(int50, v_createRequest, v_updateRequest));//Container + v_ae1.done; + + if(getverdict == pass){ + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + //Check that the resource has NOT been udpated + if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) { + if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int5){ + setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated") + } + } + } + + } // TC_CSE_TMG_UPD_003_INI_ABT + + testcase TC_CSE_TMG_UPD_003_INI_COM() runs on Tester system CseSystem { + // Local variables + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase; + var PrimitiveContent v_primitiveContentRetrieveResource; + v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int4; //COMMIT + var AggregatedRequest.request_list[-] v_requestPrim; + + v_requestPrim := {int1, "", "", -, -, -}; + + var AggregatedRequest v_aggregatedRequest:= + { + request_list := + { + [0] := v_requestPrim + } + + }; + var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest); + v_createRequest.primitiveContent.transactionMgmt.transactionState := int1; //INITIAL + v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED + + v_ae1.start(f_CSE_TMG_UPD_003(int50, v_createRequest, v_updateRequest));//Container + v_ae1.done; + + if(getverdict == pass){ + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + //Check that the resource has NOT been udpated + if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) { + if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int4){ + setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated") + } + } + } + + } // TC_CSE_TMG_UPD_003_INI_COM + + testcase TC_CSE_TMG_UPD_003_INI_INI() runs on Tester system CseSystem { + // Local variables + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase; + var PrimitiveContent v_primitiveContentRetrieveResource; + v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int1; //COMMIT + var AggregatedRequest.request_list[-] v_requestPrim; + + v_requestPrim := {int1, "", "", -, -, -}; + + var AggregatedRequest v_aggregatedRequest:= + { + request_list := + { + [0] := v_requestPrim + } + + }; + var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest); + v_createRequest.primitiveContent.transactionMgmt.transactionState := int1; //INITIAL + v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED + + v_ae1.start(f_CSE_TMG_UPD_003(int50, v_createRequest, v_updateRequest));//Container + v_ae1.done; + + if(getverdict == pass){ + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + //Check that the resource has NOT been udpated + if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) { + if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int1){ + setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated") + } + } + } + + } // TC_CSE_TMG_UPD_003_INI_INI + + } // end of TC_CSE_TMG_UPD_003_INI + + group TC_CSE_TMG_UPD_003_LOC{ + testcase TC_CSE_TMG_UPD_003_LOC_INI() runs on Tester system CseSystem { + // Local variables + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase; + var PrimitiveContent v_primitiveContentRetrieveResource; + v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int1; //INITIAL + var AggregatedRequest.request_list[-] v_requestPrim; + + v_requestPrim := {int1, "", "", -, -, -}; + + var AggregatedRequest v_aggregatedRequest:= + { + request_list := + { + [0] := v_requestPrim + } + + }; + var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest); + v_createRequest.primitiveContent.transactionMgmt.transactionState := int2; //LOCKED + v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED + + v_ae1.start(f_CSE_TMG_UPD_003(int50, v_createRequest, v_updateRequest));//Container + v_ae1.done; + + if(getverdict == pass){ + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + //Check that the resource has NOT been udpated + if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) { + if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int1){ + setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated") + } + } + } + + } // TC_CSE_TMG_UPD_003_LOC_INI + + testcase TC_CSE_TMG_UPD_003_LOC_LOC() runs on Tester system CseSystem { + // Local variables + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase; + var PrimitiveContent v_primitiveContentRetrieveResource; + v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int2; //LOCK + var AggregatedRequest.request_list[-] v_requestPrim; + + v_requestPrim := {int1, "", "", -, -, -}; + + var AggregatedRequest v_aggregatedRequest:= + { + request_list := + { + [0] := v_requestPrim + } + + }; + var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest); + v_createRequest.primitiveContent.transactionMgmt.transactionState := int2; //LOCKED + v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED + + v_ae1.start(f_CSE_TMG_UPD_003(int50, v_createRequest, v_updateRequest));//Container + v_ae1.done; + + if(getverdict == pass){ + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + //Check that the resource has NOT been udpated + if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) { + if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int2){ + setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated") + } + } + } + + } // TC_CSE_TMG_UPD_003_LOC_LOC + + testcase TC_CSE_TMG_UPD_003_LOC_COM() runs on Tester system CseSystem { + // Local variables + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase; + var PrimitiveContent v_primitiveContentRetrieveResource; + v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int4; //COMMIT + var AggregatedRequest.request_list[-] v_requestPrim; + + v_requestPrim := {int1, "", "", -, -, -}; + + var AggregatedRequest v_aggregatedRequest:= + { + request_list := + { + [0] := v_requestPrim + } + + }; + var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest); + v_createRequest.primitiveContent.transactionMgmt.transactionState := int2; //LOCKED + v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED + + v_ae1.start(f_CSE_TMG_UPD_003(int50, v_createRequest, v_updateRequest));//Container + v_ae1.done; + + if(getverdict == pass){ + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + //Check that the resource has NOT been udpated + if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) { + if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int4){ + setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated") + } + } + } + + } // TC_CSE_TMG_UPD_003_LOC_COM + + } // end of TC_CSE_TMG_UPD_003_LOC + + group TC_CSE_TMG_UPD_003_EXE{ + + testcase TC_CSE_TMG_UPD_003_EXE_INI() runs on Tester system CseSystem { + // Local variables + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase; + var PrimitiveContent v_primitiveContentRetrieveResource; + v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int1; // INITIAL + var AggregatedRequest.request_list[-] v_requestPrim; + + v_requestPrim := {int1, "", "", -, -, -}; + + var AggregatedRequest v_aggregatedRequest:= + { + request_list := + { + [0] := v_requestPrim + } + + }; + var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest); + v_createRequest.primitiveContent.transactionMgmt.transactionState := int3; //EXECUTED + v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED + + v_ae1.start(f_CSE_TMG_UPD_003(int50, v_createRequest, v_updateRequest));//Container + v_ae1.done; + + if(getverdict == pass){ + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + //Check that the resource has NOT been udpated + if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) { + if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int1){ + setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated") + } + } + } + + } // TC_CSE_TMG_UPD_003_EXE_INI + + testcase TC_CSE_TMG_UPD_003_EXE_LOC() runs on Tester system CseSystem { + // Local variables + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase; + var PrimitiveContent v_primitiveContentRetrieveResource; + v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int2; // LOC + var AggregatedRequest.request_list[-] v_requestPrim; + + v_requestPrim := {int1, "", "", -, -, -}; + + var AggregatedRequest v_aggregatedRequest:= + { + request_list := + { + [0] := v_requestPrim + } + + }; + var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest); + v_createRequest.primitiveContent.transactionMgmt.transactionState := int3; //EXECUTED + v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED + + v_ae1.start(f_CSE_TMG_UPD_003(int50, v_createRequest, v_updateRequest));//Container + v_ae1.done; + + if(getverdict == pass){ + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + //Check that the resource has NOT been udpated + if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) { + if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int2){ + setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated") + } + } + } + + } // TC_CSE_TMG_UPD_003_EXE_LOC + + testcase TC_CSE_TMG_UPD_003_EXE_EXE() runs on Tester system CseSystem { + // Local variables + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase; + var PrimitiveContent v_primitiveContentRetrieveResource; + v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int3; // EXECUTE + var AggregatedRequest.request_list[-] v_requestPrim; + + v_requestPrim := {int1, "", "", -, -, -}; + + var AggregatedRequest v_aggregatedRequest:= + { + request_list := + { + [0] := v_requestPrim + } + + }; + var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest); + v_createRequest.primitiveContent.transactionMgmt.transactionState := int3; //EXECUTED + v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED + + v_ae1.start(f_CSE_TMG_UPD_003(int50, v_createRequest, v_updateRequest));//Container + v_ae1.done; + + if(getverdict == pass){ + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + //Check that the resource has NOT been udpated + if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) { + if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int3){ + setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated") + } + } + } + + } // TC_CSE_TMG_UPD_003_EXE_EXE + + } // end of TC_CSE_TMG_UPD_003_EXE + + group TC_CSE_TMG_UPD_003_COM { + + testcase TC_CSE_TMG_UPD_003_COM_LOC() runs on Tester system CseSystem { + // Local variables + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase; + var PrimitiveContent v_primitiveContentRetrieveResource; + v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int2; // LOC + var AggregatedRequest.request_list[-] v_requestPrim; + + v_requestPrim := {int1, "", "", -, -, -}; + + var AggregatedRequest v_aggregatedRequest:= + { + request_list := + { + [0] := v_requestPrim + } + + }; + var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest); + v_createRequest.primitiveContent.transactionMgmt.transactionState := int4; //COMMITED + v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED + + v_ae1.start(f_CSE_TMG_UPD_003(int50, v_createRequest, v_updateRequest));//Container + v_ae1.done; + + if(getverdict == pass){ + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + //Check that the resource has NOT been udpated + if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) { + if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int2){ + setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated") + } + } + } + + } // TC_CSE_TMG_UPD_003_COM_LOC + + + testcase TC_CSE_TMG_UPD_003_COM_EXE() runs on Tester system CseSystem { + // Local variables + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase; + var PrimitiveContent v_primitiveContentRetrieveResource; + v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int3; // EXECUTE + var AggregatedRequest.request_list[-] v_requestPrim; + + v_requestPrim := {int1, "", "", -, -, -}; + + var AggregatedRequest v_aggregatedRequest:= + { + request_list := + { + [0] := v_requestPrim + } + + }; + var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest); + v_createRequest.primitiveContent.transactionMgmt.transactionState := int4; //COMMITED + v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED + + v_ae1.start(f_CSE_TMG_UPD_003(int50, v_createRequest, v_updateRequest));//Container + v_ae1.done; + + if(getverdict == pass){ + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + //Check that the resource has NOT been udpated + if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) { + if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int3){ + setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated") + } + } + } + + } // TC_CSE_TMG_UPD_003_COM_EXE + + testcase TC_CSE_TMG_UPD_003_COM_COM() runs on Tester system CseSystem { + // Local variables + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase; + var PrimitiveContent v_primitiveContentRetrieveResource; + v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int4; // COMMIT + var AggregatedRequest.request_list[-] v_requestPrim; + + v_requestPrim := {int1, "", "", -, -, -}; + + var AggregatedRequest v_aggregatedRequest:= + { + request_list := + { + [0] := v_requestPrim + } + + }; + var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest); + v_createRequest.primitiveContent.transactionMgmt.transactionState := int4; //COMMITED + v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED + + v_ae1.start(f_CSE_TMG_UPD_003(int50, v_createRequest, v_updateRequest));//Container + v_ae1.done; + + if(getverdict == pass){ + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + //Check that the resource has NOT been udpated + if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) { + if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int4){ + setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated") + } + } + } + + } // TC_CSE_TMG_UPD_003_COM_COM + + testcase TC_CSE_TMG_UPD_003_COM_ABT() runs on Tester system CseSystem { + // Local variables + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase; + var PrimitiveContent v_primitiveContentRetrieveResource; + v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int5; // ABORT + var AggregatedRequest.request_list[-] v_requestPrim; + + v_requestPrim := {int1, "", "", -, -, -}; + + var AggregatedRequest v_aggregatedRequest:= + { + request_list := + { + [0] := v_requestPrim + } + + }; + var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest); + v_createRequest.primitiveContent.transactionMgmt.transactionState := int4; //COMMITED + v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED + + v_ae1.start(f_CSE_TMG_UPD_003(int50, v_createRequest, v_updateRequest));//Container + v_ae1.done; + + if(getverdict == pass){ + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + //Check that the resource has NOT been udpated + if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) { + if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int5){ + setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated") + } + } + } + + } // TC_CSE_TMG_UPD_003_COM_ABT + + } // end of TC_CSE_TMG_UPD_003_COM + + group TC_CSE_TMG_UPD_003_ERR{ + + testcase TC_CSE_TMG_UPD_003_ERR_LOC() runs on Tester system CseSystem { + // Local variables + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase; + var PrimitiveContent v_primitiveContentRetrieveResource; + v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int2; // LOCK + var AggregatedRequest.request_list[-] v_requestPrim; + + v_requestPrim := {int1, "", "", -, -, -}; + + var AggregatedRequest v_aggregatedRequest:= + { + request_list := + { + [0] := v_requestPrim + } + + }; + var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest); + v_createRequest.primitiveContent.transactionMgmt.transactionState := int5; //ERROR + v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED + + v_ae1.start(f_CSE_TMG_UPD_003(int50, v_createRequest, v_updateRequest));//Container + v_ae1.done; + + if(getverdict == pass){ + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + //Check that the resource has NOT been udpated + if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) { + if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int2){ + setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated") + } + } + } + + } // TC_CSE_TMG_UPD_003_ERR_LOC + + testcase TC_CSE_TMG_UPD_003_ERR_EXE() runs on Tester system CseSystem { + // Local variables + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase; + var PrimitiveContent v_primitiveContentRetrieveResource; + v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int3; // EXECUTE + var AggregatedRequest.request_list[-] v_requestPrim; + + v_requestPrim := {int1, "", "", -, -, -}; + + var AggregatedRequest v_aggregatedRequest:= + { + request_list := + { + [0] := v_requestPrim + } + + }; + var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest); + v_createRequest.primitiveContent.transactionMgmt.transactionState := int5; //ERROR + v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED + + v_ae1.start(f_CSE_TMG_UPD_003(int50, v_createRequest, v_updateRequest));//Container + v_ae1.done; + + if(getverdict == pass){ + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + //Check that the resource has NOT been udpated + if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) { + if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int3){ + setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated") + } + } + } + + } // TC_CSE_TMG_UPD_003_ERR_EXE + + testcase TC_CSE_TMG_UPD_003_ERR_COM() runs on Tester system CseSystem { + // Local variables + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase; + var PrimitiveContent v_primitiveContentRetrieveResource; + v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int4; // COMMIT + var AggregatedRequest.request_list[-] v_requestPrim; + + v_requestPrim := {int1, "", "", -, -, -}; + + var AggregatedRequest v_aggregatedRequest:= + { + request_list := + { + [0] := v_requestPrim + } + + }; + var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest); + v_createRequest.primitiveContent.transactionMgmt.transactionState := int5; //ERROR + v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED + + v_ae1.start(f_CSE_TMG_UPD_003(int50, v_createRequest, v_updateRequest));//Container + v_ae1.done; + + if(getverdict == pass){ + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + //Check that the resource has NOT been udpated + if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) { + if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int4){ + setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated") + } + } + } + + } // TC_CSE_TMG_UPD_003_ERR_COM + + } // end of TC_CSE_TMG_UPD_003_ERR + + group TC_CSE_TMG_UPD_003_ABT { + testcase TC_CSE_TMG_UPD_003_ABT_LOC() runs on Tester system CseSystem { + // Local variables + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase; + var PrimitiveContent v_primitiveContentRetrieveResource; + v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int2; // LOCK + var AggregatedRequest.request_list[-] v_requestPrim; + + v_requestPrim := {int1, "", "", -, -, -}; + + var AggregatedRequest v_aggregatedRequest:= + { + request_list := + { + [0] := v_requestPrim + } + + }; + var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest); + v_createRequest.primitiveContent.transactionMgmt.transactionState := int6; //ABORTED + v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED + + v_ae1.start(f_CSE_TMG_UPD_003(int50, v_createRequest, v_updateRequest));//Container + v_ae1.done; + + if(getverdict == pass){ + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + //Check that the resource has NOT been udpated + if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) { + if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int2){ + setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated") + } + } + } + + } // TC_CSE_TMG_UPD_003_ABT_LOC + + testcase TC_CSE_TMG_UPD_003_ABT_EXE() runs on Tester system CseSystem { + // Local variables + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase; + var PrimitiveContent v_primitiveContentRetrieveResource; + v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int3; // EXECUTE + var AggregatedRequest.request_list[-] v_requestPrim; + + v_requestPrim := {int1, "", "", -, -, -}; + + var AggregatedRequest v_aggregatedRequest:= + { + request_list := + { + [0] := v_requestPrim + } + + }; + var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest); + v_createRequest.primitiveContent.transactionMgmt.transactionState := int6; //ABORTED + v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED + + v_ae1.start(f_CSE_TMG_UPD_003(int50, v_createRequest, v_updateRequest));//Container + v_ae1.done; + + if(getverdict == pass){ + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + //Check that the resource has NOT been udpated + if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) { + if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int3){ + setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated") + } + } + } + + } // TC_CSE_TMG_UPD_003_ABT_EXE + + testcase TC_CSE_TMG_UPD_003_ABT_COM() runs on Tester system CseSystem { + // Local variables + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase; + var PrimitiveContent v_primitiveContentRetrieveResource; + v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int4; // COMMIT + var AggregatedRequest.request_list[-] v_requestPrim; + + v_requestPrim := {int1, "", "", -, -, -}; + + var AggregatedRequest v_aggregatedRequest:= + { + request_list := + { + [0] := v_requestPrim + } + + }; + var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest); + v_createRequest.primitiveContent.transactionMgmt.transactionState := int6; //ABORTED + v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED + + v_ae1.start(f_CSE_TMG_UPD_003(int50, v_createRequest, v_updateRequest));//Container + v_ae1.done; + + if(getverdict == pass){ + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + //Check that the resource has NOT been udpated + if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) { + if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int4){ + setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated") + } + } + } + + } // TC_CSE_TMG_UPD_003_ABT_COM + + testcase TC_CSE_TMG_UPD_003_ABT_ABT() runs on Tester system CseSystem { + // Local variables + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase; + var PrimitiveContent v_primitiveContentRetrieveResource; + v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int5; // ABORT + var AggregatedRequest.request_list[-] v_requestPrim; + + v_requestPrim := {int1, "", "", -, -, -}; + + var AggregatedRequest v_aggregatedRequest:= + { + request_list := + { + [0] := v_requestPrim + } + + }; + var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest); + v_createRequest.primitiveContent.transactionMgmt.transactionState := int6; //ABORTED + v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED + + v_ae1.start(f_CSE_TMG_UPD_003(int50, v_createRequest, v_updateRequest));//Container + v_ae1.done; + + if(getverdict == pass){ + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + //Check that the resource has NOT been udpated + if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) { + if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int5){ + setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated") + } + } + } + + } // TC_CSE_TMG_UPD_003_ABT_ABT + + } // end of TC_CSE_TMG_UPD_003_ABT + } // end of TC_CSE_TMG_UPD_003 + + group TC_CSE_TMG_UPD_004{ + testcase TC_CSE_TMG_UPD_004_INI() runs on Tester system CseSystem { + // Local variables + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase; + var PrimitiveContent v_primitiveContentRetrieveResource; + v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int2; // ABORT + var AggregatedRequest.request_list[-] v_requestPrim; + + v_requestPrim := {int1, "", "", -, -, -}; + + var AggregatedRequest v_aggregatedRequest:= + { + request_list := + { + [0] := v_requestPrim + } + + }; + var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest); + v_createRequest.primitiveContent.transactionMgmt.transactionState := int1; // INITIAL + v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED + + v_ae1.start(f_CSE_TMG_UPD_004(int50, v_createRequest, v_updateRequest));//TransactionMgmt + v_ae1.done; + + if(getverdict == pass){ + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + //Check that the resource has NOT been udpated + if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) { + if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl != int2){ + setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute not updated") + } + } + } + + } // TC_CSE_TMG_UPD_004_INI + + group TC_CSE_TMG_UPD_004_LOC{ + + testcase TC_CSE_TMG_UPD_004_LOC_EXE() runs on Tester system CseSystem { + // Local variables + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase; + var PrimitiveContent v_primitiveContentRetrieveResource; + v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int3; // EXECUTE + var AggregatedRequest.request_list[-] v_requestPrim; + + v_requestPrim := {int1, "", "", -, -, -}; + + var AggregatedRequest v_aggregatedRequest:= + { + request_list := + { + [0] := v_requestPrim + } + + }; + var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest); + v_createRequest.primitiveContent.transactionMgmt.transactionState := int2; // LOCKED + v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED + + v_ae1.start(f_CSE_TMG_UPD_004(int50, v_createRequest, v_updateRequest));//TransactionMgmt + v_ae1.done; + + if(getverdict == pass){ + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + //Check that the resource has NOT been udpated + if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) { + if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl != int3){ + setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute not updated") + } + } + } + + } // TC_CSE_TMG_UPD_004_LOC_EXE + + testcase TC_CSE_TMG_UPD_004_LOC_ABT() runs on Tester system CseSystem { + // Local variables + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase; + var PrimitiveContent v_primitiveContentRetrieveResource; + v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int5; // ABORT + var AggregatedRequest.request_list[-] v_requestPrim; + + v_requestPrim := {int1, "", "", -, -, -}; + + var AggregatedRequest v_aggregatedRequest:= + { + request_list := + { + [0] := v_requestPrim + } + + }; + var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest); + v_createRequest.primitiveContent.transactionMgmt.transactionState := int2; // LOCKED + v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED + + v_ae1.start(f_CSE_TMG_UPD_004(int50, v_createRequest, v_updateRequest));//TransactionMgmt + v_ae1.done; + + if(getverdict == pass){ + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + //Check that the resource has NOT been udpated + if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) { + if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl != int5){ + setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute not updated") + } + } + } + + } // TC_CSE_TMG_UPD_004_LOC_EXE + + } //end TC_CSE_TMG_UPD_004_LOC + + group TC_CSE_TMG_UPD_004_EXE{ + testcase TC_CSE_TMG_UPD_004_EXE_COM() runs on Tester system CseSystem { + // Local variables + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase; + var PrimitiveContent v_primitiveContentRetrieveResource; + v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int4; // COMMIT + var AggregatedRequest.request_list[-] v_requestPrim; + + v_requestPrim := {int1, "", "", -, -, -}; + + var AggregatedRequest v_aggregatedRequest:= + { + request_list := + { + [0] := v_requestPrim + } + + }; + var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest); + v_createRequest.primitiveContent.transactionMgmt.transactionState := int3; // EXECUTED + v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED + + v_ae1.start(f_CSE_TMG_UPD_004(int50, v_createRequest, v_updateRequest));//TransactionMgmt + v_ae1.done; + + if(getverdict == pass){ + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + //Check that the resource has NOT been udpated + if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) { + if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl != int4){ + setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute not updated") + } + } + } + + } // TC_CSE_TMG_UPD_004_EXE_COM + + testcase TC_CSE_TMG_UPD_004_EXE_ABT() runs on Tester system CseSystem { + // Local variables + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase; + var PrimitiveContent v_primitiveContentRetrieveResource; + v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int5; // ABORTED + var AggregatedRequest.request_list[-] v_requestPrim; + + v_requestPrim := {int1, "", "", -, -, -}; + + var AggregatedRequest v_aggregatedRequest:= + { + request_list := + { + [0] := v_requestPrim + } + + }; + var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest); + v_createRequest.primitiveContent.transactionMgmt.transactionState := int3; // EXECUTED + v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED + + v_ae1.start(f_CSE_TMG_UPD_004(int50, v_createRequest, v_updateRequest));//TransactionMgmt + v_ae1.done; + + if(getverdict == pass){ + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + //Check that the resource has NOT been udpated + if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) { + if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl != int5){ + setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute not updated") + } + } + } + + } // TC_CSE_TMG_UPD_004_EXE_ABT + + + } // end TC_CSE_TMG_UPD_004_EXE + + + group TC_CSE_TMG_UPD_004_ERR{ + testcase TC_CSE_TMG_UPD_004_ERR_ABT() runs on Tester system CseSystem { + // Local variables + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase; + var PrimitiveContent v_primitiveContentRetrieveResource; + v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int5; // ABORTED + var AggregatedRequest.request_list[-] v_requestPrim; + + v_requestPrim := {int1, "", "", -, -, -}; + + var AggregatedRequest v_aggregatedRequest:= + { + request_list := + { + [0] := v_requestPrim + } + + }; + var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest); + v_createRequest.primitiveContent.transactionMgmt.transactionState := int5; // ERROR + v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED + + v_ae1.start(f_CSE_TMG_UPD_004(int50, v_createRequest, v_updateRequest));//TransactionMgmt + v_ae1.done; + + if(getverdict == pass){ + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + //Check that the resource has NOT been udpated + if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) { + if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl != int5){ + setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute not updated") + } + } + } + + } // TC_CSE_TMG_UPD_004_ERR_ABT + + testcase TC_CSE_TMG_UPD_004_ERR_INI() runs on Tester system CseSystem { + // Local variables + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase; + var PrimitiveContent v_primitiveContentRetrieveResource; + v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int1; // INITIAL + var AggregatedRequest.request_list[-] v_requestPrim; + + v_requestPrim := {int1, "", "", -, -, -}; + + var AggregatedRequest v_aggregatedRequest:= + { + request_list := + { + [0] := v_requestPrim + } + + }; + var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest); + v_createRequest.primitiveContent.transactionMgmt.transactionState := int5; // ERROR + v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED + + v_ae1.start(f_CSE_TMG_UPD_004(int50, v_createRequest, v_updateRequest));//TransactionMgmt + v_ae1.done; + + if(getverdict == pass){ + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + //Check that the resource has NOT been udpated + if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) { + if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl != int1){ + setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute not updated") + } + } + } + + } // TC_CSE_TMG_UPD_004_ERR_INI + } // end TC_CSE_TMG_UPD_004_ERR + + testcase TC_CSE_TMG_UPD_004_COM() runs on Tester system CseSystem { + // Local variables + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase; + var PrimitiveContent v_primitiveContentRetrieveResource; + v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int1; // INITIAL + var AggregatedRequest.request_list[-] v_requestPrim; + + v_requestPrim := {int1, "", "", -, -, -}; + + var AggregatedRequest v_aggregatedRequest:= + { + request_list := + { + [0] := v_requestPrim + } + + }; + var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest); + v_createRequest.primitiveContent.transactionMgmt.transactionState := int4; // COMMITTED + v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED + + v_ae1.start(f_CSE_TMG_UPD_004(int50, v_createRequest, v_updateRequest));//TransactionMgmt + v_ae1.done; + + if(getverdict == pass){ + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + //Check that the resource has NOT been udpated + if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) { + if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl != int1){ + setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute not updated") + } + } + } + + } // TC_CSE_TMG_UPD_004_COM + + testcase TC_CSE_TMG_UPD_004_ABT() runs on Tester system CseSystem { + // Local variables + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_updateRequest := m_updateTransactionMgmtBase; + var PrimitiveContent v_primitiveContentRetrieveResource; + v_updateRequest.primitiveContent.transactionMgmt.transactionControl := int1; // INITIAL + var AggregatedRequest.request_list[-] v_requestPrim; + + v_requestPrim := {int1, "", "", -, -, -}; + + var AggregatedRequest v_aggregatedRequest:= + { + request_list := + { + [0] := v_requestPrim + } + + }; + var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest); + v_createRequest.primitiveContent.transactionMgmt.transactionState := int6; // ABORTED + v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED + + v_ae1.start(f_CSE_TMG_UPD_004(int50, v_createRequest, v_updateRequest));//TransactionMgmt + v_ae1.done; + + if(getverdict == pass){ + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + //Check that the resource has NOT been udpated + if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) { + if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl != int1){ + setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute not updated") + } + } + } + + } // TC_CSE_TMG_UPD_004_ABT + } // end TC_CSE_TMG_UPD_004 + + testcase TC_CSE_TMG_UPD_005() runs on Tester system CseSystem { + // Local variables + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_updateRequest := m_updateTransactionBase; + var PrimitiveContent v_primitiveContentRetrieveResource; + v_updateRequest.primitiveContent.transaction.transactionControl := int2; // LOCK + //var template RequestPrimitive v_createRequest := m_createTransactionBase(m_create); + //v_createRequest.primitiveContent.transactionMgmt.transactionState := int6; // ABORTED + //v_createRequest.primitiveContent.transactionMgmt.transactionMode := int2; //CREATOR_CONTROLLED + + v_ae1.start(f_CSE_TMG_UPD_005(int51, m_createTransactionBase(m_create), v_updateRequest));//TransactionMgmt + v_ae1.done; + + if(getverdict == pass){ + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + //Check that the resource has NOT been udpated + if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) { + if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int2){ + setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated") + } + } + } + + } // TC_CSE_TMG_UPD_005 + + + function f_CSE_TMG_UPD_005(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive) runs on AeSimu system CseSystem { + + // Local variables + var MsgIn v_response; + var RequestPrimitive v_request; + var integer v_aeIndex := -1; + var integer v_resourceIndex := -1; + var integer v_ae2Index := -1; + var integer v_parentIndex := -1; + + // Test control + + // Test component configuration + f_cf01Up(true); + + // Test adapter configuration + + // Preamble + v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); + + v_ae2Index := f_cse_preamble_registerAe();//c_CRUDNDi); + //f_cse_preamble_subscriptionVerification(v_ae2Index, p_createRequestPrimitive, p_resourceType); + + if(p_resourceType != int18) { + v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent + } + + v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, v_parentIndex); + + // Test Body + v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive); + v_request.from_ := f_getResourceAddress(v_ae2Index); + + f_send(e_mcaPort, m_request(v_request)); + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int4103))) -> value v_response { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": Originator has no privilege. Creator is not same as originator of request " & int2str(enum2int(p_resourceType)) ); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Wrong response status code"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Updating transactionControl when originator is not creator"); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No answer while updating resource type " & int2str(enum2int(p_resourceType))); + } + } + + vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_resourceIndex); + + // Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf01Down(); + + }//end f_CSE_TMG_UPD_005 + + group TC_CSE_TMG_UPD_006{ + + group TC_CSE_TMG_UPD_006_LOC{ + testcase TC_CSE_TMG_UPD_006_LOC_LOC() runs on Tester system CseSystem { + // Local variables + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_updateRequest := m_updateTransactionBase; + var PrimitiveContent v_primitiveContentRetrieveResource; + v_updateRequest.primitiveContent.transaction.transactionControl := int2; // LOCK + var template RequestPrimitive v_createRequest := m_createTransactionBase(m_create); + v_createRequest.primitiveContent.transaction.transactionState := int2; // LOCKED + + v_ae1.start(f_CSE_TMG_UPD_006(int51, v_createRequest, v_updateRequest));//Transaction + v_ae1.done; + + if(getverdict == pass){ + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + //Check that the resource has NOT been udpated + if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) { + if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int2){ + setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated") + } + } + } + + } // TC_CSE_TMG_UPD_006_LOC_LOC + + testcase TC_CSE_TMG_UPD_006_LOC_COM() runs on Tester system CseSystem { + // Local variables + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_updateRequest := m_updateTransactionBase; + var PrimitiveContent v_primitiveContentRetrieveResource; + v_updateRequest.primitiveContent.transaction.transactionControl := int4; // COMMIT + var template RequestPrimitive v_createRequest := m_createTransactionBase(m_create); + v_createRequest.primitiveContent.transaction.transactionState := int2; // LOCKED + + v_ae1.start(f_CSE_TMG_UPD_006(int51, v_createRequest, v_updateRequest));//Transaction + v_ae1.done; + + if(getverdict == pass){ + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + //Check that the resource has NOT been udpated + if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) { + if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int4){ + setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated") + } + } + } + + } // TC_CSE_TMG_UPD_006_LOC_COM + + + } // end TC_CSE_TMG_UPD_006_LOC + + group TC_CSE_TMG_UPD_006_EXE{ + testcase TC_CSE_TMG_UPD_006_EXE_INI() runs on Tester system CseSystem { + // Local variables + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_updateRequest := m_updateTransactionBase; + var PrimitiveContent v_primitiveContentRetrieveResource; + v_updateRequest.primitiveContent.transaction.transactionControl := int1; // INI + var template RequestPrimitive v_createRequest := m_createTransactionBase(m_create); + v_createRequest.primitiveContent.transaction.transactionState := int3; // LOCKED + + v_ae1.start(f_CSE_TMG_UPD_006(int51, v_createRequest, v_updateRequest));//Transaction + v_ae1.done; + + if(getverdict == pass){ + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + //Check that the resource has NOT been udpated + if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) { + if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int1){ + setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated") + } + } + } + + } // TC_CSE_TMG_UPD_006_EXE_INI + + testcase TC_CSE_TMG_UPD_006_EXE_LOC() runs on Tester system CseSystem { + // Local variables + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_updateRequest := m_updateTransactionBase; + var PrimitiveContent v_primitiveContentRetrieveResource; + v_updateRequest.primitiveContent.transaction.transactionControl := int2; // LOCK + var template RequestPrimitive v_createRequest := m_createTransactionBase(m_create); + v_createRequest.primitiveContent.transaction.transactionState := int3; // LOCKED + + v_ae1.start(f_CSE_TMG_UPD_006(int51, v_createRequest, v_updateRequest));//Transaction + v_ae1.done; + + if(getverdict == pass){ + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + //Check that the resource has NOT been udpated + if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) { + if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int2){ + setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated") + } + } + } + + } // TC_CSE_TMG_UPD_006_EXE_LOC + + testcase TC_CSE_TMG_UPD_006_EXE_EXE() runs on Tester system CseSystem { + // Local variables + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_updateRequest := m_updateTransactionBase; + var PrimitiveContent v_primitiveContentRetrieveResource; + v_updateRequest.primitiveContent.transaction.transactionControl := int3; // EXECUTE + var template RequestPrimitive v_createRequest := m_createTransactionBase(m_create); + v_createRequest.primitiveContent.transaction.transactionState := int3; // LOCKED + + v_ae1.start(f_CSE_TMG_UPD_006(int51, v_createRequest, v_updateRequest));//Transaction + v_ae1.done; + + if(getverdict == pass){ + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + //Check that the resource has NOT been udpated + if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) { + if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int3){ + setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated") + } + } + } + + } // TC_CSE_TMG_UPD_006_EXE_EXE + + } // end TC_CSE_TMG_UPD_006_EXE + + group TC_CSE_TMG_UPD_006_ERR{ + testcase TC_CSE_TMG_UPD_006_ERR_EXE() runs on Tester system CseSystem { + // Local variables + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_updateRequest := m_updateTransactionBase; + var PrimitiveContent v_primitiveContentRetrieveResource; + v_updateRequest.primitiveContent.transaction.transactionControl := int3; // EXECUTE + var template RequestPrimitive v_createRequest := m_createTransactionBase(m_create); + v_createRequest.primitiveContent.transaction.transactionState := int5; // ERROR + + v_ae1.start(f_CSE_TMG_UPD_006(int51, v_createRequest, v_updateRequest));//Transaction + v_ae1.done; + + if(getverdict == pass){ + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + //Check that the resource has NOT been udpated + if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) { + if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int3){ + setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated") + } + } + } + + } // TC_CSE_TMG_UPD_006_ERR_EXE + + testcase TC_CSE_TMG_UPD_006_ERR_COM() runs on Tester system CseSystem { + // Local variables + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_updateRequest := m_updateTransactionBase; + var PrimitiveContent v_primitiveContentRetrieveResource; + v_updateRequest.primitiveContent.transaction.transactionControl := int4; // COMMIT + var template RequestPrimitive v_createRequest := m_createTransactionBase(m_create); + v_createRequest.primitiveContent.transaction.transactionState := int5; // ERROR + + v_ae1.start(f_CSE_TMG_UPD_006(int51, v_createRequest, v_updateRequest));//Transaction + v_ae1.done; + + if(getverdict == pass){ + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + //Check that the resource has NOT been udpated + if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) { + if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int4){ + setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated") + } + } + } + + } // TC_CSE_TMG_UPD_006_ERR_COM + + } // end TC_CSE_TMG_UPD_006_ERR + + group TC_CSE_TMG_UPD_006_COM{ + + testcase TC_CSE_TMG_UPD_006_COM_EXE() runs on Tester system CseSystem { + // Local variables + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_updateRequest := m_updateTransactionBase; + var PrimitiveContent v_primitiveContentRetrieveResource; + v_updateRequest.primitiveContent.transaction.transactionControl := int3; // EXECUTE + var template RequestPrimitive v_createRequest := m_createTransactionBase(m_create); + v_createRequest.primitiveContent.transaction.transactionState := int4; // COMMIT + + v_ae1.start(f_CSE_TMG_UPD_006(int51, v_createRequest, v_updateRequest));//Transaction + v_ae1.done; + + if(getverdict == pass){ + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + //Check that the resource has NOT been udpated + if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) { + if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int3){ + setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated") + } + } + } + + } // TC_CSE_TMG_UPD_006_COM_EXE + + testcase TC_CSE_TMG_UPD_006_COM_ABT() runs on Tester system CseSystem { + // Local variables + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_updateRequest := m_updateTransactionBase; + var PrimitiveContent v_primitiveContentRetrieveResource; + v_updateRequest.primitiveContent.transaction.transactionControl := int5; // ABORT + var template RequestPrimitive v_createRequest := m_createTransactionBase(m_create); + v_createRequest.primitiveContent.transaction.transactionState := int4; // COMMIT + + v_ae1.start(f_CSE_TMG_UPD_006(int51, v_createRequest, v_updateRequest));//Transaction + v_ae1.done; + + if(getverdict == pass){ + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + //Check that the resource has NOT been udpated + if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) { + if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int5){ + setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated") + } + } + } + + } // TC_CSE_TMG_UPD_006_COM_ABT + + testcase TC_CSE_TMG_UPD_006_COM_COM() runs on Tester system CseSystem { + // Local variables + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_updateRequest := m_updateTransactionBase; + var PrimitiveContent v_primitiveContentRetrieveResource; + v_updateRequest.primitiveContent.transaction.transactionControl := int4; // COMMIT + var template RequestPrimitive v_createRequest := m_createTransactionBase(m_create); + v_createRequest.primitiveContent.transaction.transactionState := int4; // COMMIT + + v_ae1.start(f_CSE_TMG_UPD_006(int51, v_createRequest, v_updateRequest));//Transaction + v_ae1.done; + + if(getverdict == pass){ + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + //Check that the resource has NOT been udpated + if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) { + if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int4){ + setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated") + } + } + } + + } // TC_CSE_TMG_UPD_006_COM_COM + + } // end TC_CSE_TMG_UPD_006_COM + + group TC_CSE_TMG_UPD_006_ABT{ + + testcase TC_CSE_TMG_UPD_006_ABT_EXE() runs on Tester system CseSystem { + // Local variables + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_updateRequest := m_updateTransactionBase; + var PrimitiveContent v_primitiveContentRetrieveResource; + v_updateRequest.primitiveContent.transaction.transactionControl := int3; // EXE + var template RequestPrimitive v_createRequest := m_createTransactionBase(m_create); + v_createRequest.primitiveContent.transaction.transactionState := int6; // ABORTED + + v_ae1.start(f_CSE_TMG_UPD_006(int51, v_createRequest, v_updateRequest));//Transaction + v_ae1.done; + + if(getverdict == pass){ + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + //Check that the resource has NOT been udpated + if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) { + if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int3){ + setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated") + } + } + } + + } // TC_CSE_TMG_UPD_006_ABT_EXE + + testcase TC_CSE_TMG_UPD_006_ABT_COM() runs on Tester system CseSystem { + // Local variables + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_updateRequest := m_updateTransactionBase; + var PrimitiveContent v_primitiveContentRetrieveResource; + v_updateRequest.primitiveContent.transaction.transactionControl := int4; // COMMIT + var template RequestPrimitive v_createRequest := m_createTransactionBase(m_create); + v_createRequest.primitiveContent.transaction.transactionState := int6; // ABORTED + + v_ae1.start(f_CSE_TMG_UPD_006(int51, v_createRequest, v_updateRequest));//Transaction + v_ae1.done; + + if(getverdict == pass){ + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + //Check that the resource has NOT been udpated + if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) { + if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int4){ + setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated") + } + } + } + + } // TC_CSE_TMG_UPD_006_ABT_COM + + testcase TC_CSE_TMG_UPD_006_ABT_ABT() runs on Tester system CseSystem { + // Local variables + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_updateRequest := m_updateTransactionBase; + var PrimitiveContent v_primitiveContentRetrieveResource; + v_updateRequest.primitiveContent.transaction.transactionControl := int5; // ABORT + var template RequestPrimitive v_createRequest := m_createTransactionBase(m_create); + v_createRequest.primitiveContent.transaction.transactionState := int6; // ABORTED + + v_ae1.start(f_CSE_TMG_UPD_006(int51, v_createRequest, v_updateRequest));//Transaction + v_ae1.done; + + if(getverdict == pass){ + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + //Check that the resource has NOT been udpated + if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) { + if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl == int5){ + setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute updated") + } + } + } + + } // TC_CSE_TMG_UPD_006_ABT_ABT + + } // end TC_CSE_TMG_UPD_006_ABT + + }// end TC_CSE_TMG_UPD_006 + + group TC_CSE_TMG_UPD_007{ + + group TC_CSE_TMG_UPD_007_LOC{ + testcase TC_CSE_TMG_UPD_007_LOC_EXE() runs on Tester system CseSystem { + // Local variables + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_updateRequest := m_updateTransactionBase; + var PrimitiveContent v_primitiveContentRetrieveResource; + v_updateRequest.primitiveContent.transaction.transactionControl := int3; // EXECUTE + var template RequestPrimitive v_createRequest := m_createTransactionBase(m_create); + v_createRequest.primitiveContent.transaction.transactionState := int2; // LOCKED + + v_ae1.start(f_CSE_TMG_UPD_004(int51, v_createRequest, v_updateRequest));//Transaction + v_ae1.done; + + if(getverdict == pass){ + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + //Check that the resource has NOT been udpated + if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) { + if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl != int3){ + setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute not updated") + } + } + } + + } // TC_CSE_TMG_UPD_007_LOC_EXE + + testcase TC_CSE_TMG_UPD_007_LOC_ABT() runs on Tester system CseSystem { + // Local variables + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_updateRequest := m_updateTransactionBase; + var PrimitiveContent v_primitiveContentRetrieveResource; + v_updateRequest.primitiveContent.transaction.transactionControl := int5; // ABORT + var template RequestPrimitive v_createRequest := m_createTransactionBase(m_create); + v_createRequest.primitiveContent.transaction.transactionState := int2; // LOCKED + + v_ae1.start(f_CSE_TMG_UPD_004(int51, v_createRequest, v_updateRequest));//Transaction + v_ae1.done; + + if(getverdict == pass){ + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + //Check that the resource has NOT been udpated + if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) { + if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl != int5){ + setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute not updated") + } + } + } + + } // TC_CSE_TMG_UPD_007_LOC_ABT + + + + } // end TC_CSE_TMG_UPD_007_LOC + + group TC_CSE_TMG_UPD_007_EXE{ + testcase TC_CSE_TMG_UPD_007_EXE_COM() runs on Tester system CseSystem { + // Local variables + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_updateRequest := m_updateTransactionBase; + var PrimitiveContent v_primitiveContentRetrieveResource; + v_updateRequest.primitiveContent.transaction.transactionControl := int4; // ABORT + var template RequestPrimitive v_createRequest := m_createTransactionBase(m_create); + v_createRequest.primitiveContent.transaction.transactionState := int3; // LOCKED + + v_ae1.start(f_CSE_TMG_UPD_004(int51, v_createRequest, v_updateRequest));//Transaction + v_ae1.done; + + if(getverdict == pass){ + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + //Check that the resource has NOT been udpated + if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) { + if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl != int4){ + setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute not updated") + } + } + } + + } // TC_CSE_TMG_UPD_007_EXE_COM + + testcase TC_CSE_TMG_UPD_007_EXE_ABT() runs on Tester system CseSystem { + // Local variables + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_updateRequest := m_updateTransactionBase; + var PrimitiveContent v_primitiveContentRetrieveResource; + v_updateRequest.primitiveContent.transaction.transactionControl := int5; // ABORT + var template RequestPrimitive v_createRequest := m_createTransactionBase(m_create); + v_createRequest.primitiveContent.transaction.transactionState := int3; // EXECUTE + + v_ae1.start(f_CSE_TMG_UPD_004(int51, v_createRequest, v_updateRequest));//Transaction + v_ae1.done; + + if(getverdict == pass){ + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + //Check that the resource has NOT been udpated + if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) { + if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl != int5){ + setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute not updated") + } + } + } + + } // TC_CSE_TMG_UPD_007_EXE_COM + + } // end TC_CSE_TMG_UPD_007_EXE + + group TC_CSE_TMG_UPD_007_ERR{ + testcase TC_CSE_TMG_UPD_007_ERR_ABT() runs on Tester system CseSystem { + // Local variables + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_updateRequest := m_updateTransactionBase; + var PrimitiveContent v_primitiveContentRetrieveResource; + v_updateRequest.primitiveContent.transaction.transactionControl := int5; // ABORT + var template RequestPrimitive v_createRequest := m_createTransactionBase(m_create); + v_createRequest.primitiveContent.transaction.transactionState := int5; // ERROR + + v_ae1.start(f_CSE_TMG_UPD_004(int51, v_createRequest, v_updateRequest));//Transaction + v_ae1.done; + + if(getverdict == pass){ + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + //Check that the resource has NOT been udpated + if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) { + if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl != int5){ + setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute not updated") + } + } + } + + } // TC_CSE_TMG_UPD_007_ERR_ABT + + testcase TC_CSE_TMG_UPD_007_ERR_LOC() runs on Tester system CseSystem { + // Local variables + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_updateRequest := m_updateTransactionBase; + var PrimitiveContent v_primitiveContentRetrieveResource; + v_updateRequest.primitiveContent.transaction.transactionControl := int2; // LOC + var template RequestPrimitive v_createRequest := m_createTransactionBase(m_create); + v_createRequest.primitiveContent.transaction.transactionState := int5; // ERROR + + v_ae1.start(f_CSE_TMG_UPD_004(int51, v_createRequest, v_updateRequest));//Transaction + v_ae1.done; + + if(getverdict == pass){ + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + //Check that the resource has NOT been udpated + if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) { + if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl != int2){ + setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute not updated") + } + } + } + + } // TC_CSE_TMG_UPD_007_ERR_LOC + + } // end TC_CSE_TMG_UPD_007_ERR + + testcase TC_CSE_TMG_UPD_007_COM() runs on Tester system CseSystem { + // Local variables + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_updateRequest := m_updateTransactionBase; + var PrimitiveContent v_primitiveContentRetrieveResource; + v_updateRequest.primitiveContent.transaction.transactionControl := int2; // LOC + var template RequestPrimitive v_createRequest := m_createTransactionBase(m_create); + v_createRequest.primitiveContent.transaction.transactionState := int4; // COMMITTED + + v_ae1.start(f_CSE_TMG_UPD_004(int51, v_createRequest, v_updateRequest));//Transaction + v_ae1.done; + + if(getverdict == pass){ + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + //Check that the resource has NOT been udpated + if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) { + if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl != int2){ + setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute not updated") + } + } + } + + } // TC_CSE_TMG_UPD_007_COM + + testcase TC_CSE_TMG_UPD_007_ABT() runs on Tester system CseSystem { + // Local variables + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_updateRequest := m_updateTransactionBase; + var PrimitiveContent v_primitiveContentRetrieveResource; + v_updateRequest.primitiveContent.transaction.transactionControl := int2; // LOC + var template RequestPrimitive v_createRequest := m_createTransactionBase(m_create); + v_createRequest.primitiveContent.transaction.transactionState := int6; // ABORTED + + v_ae1.start(f_CSE_TMG_UPD_004(int51, v_createRequest, v_updateRequest));//Transaction + v_ae1.done; + + if(getverdict == pass){ + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + //Check that the resource has NOT been udpated + if(ischosen(v_primitiveContentRetrieveResource.transactionMgmt)) { + if(v_primitiveContentRetrieveResource.transactionMgmt.transactionControl != int2){ + setverdict(fail, __SCOPE__ & ": Error: transactionControl attribute not updated") + } + } + } + + } // TC_CSE_TMG_UPD_007_ABT + + } // end TC_CSE_TMG_UPD_007 + + } // end of Update + + group delete { + testcase TC_CSE_TMG_DEL_001_TRAM_COM() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var AggregatedRequest.request_list[-] v_requestPrim; + + v_requestPrim := {int1, "", "", -, -, -}; + + var AggregatedRequest v_aggregatedRequest:= + { + request_list := + { + [0] := v_requestPrim + } + + }; + var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest); + v_createRequest.primitiveContent.transactionMgmt.transactionState := int4; // COMMITTED + + v_ae1.start(f_CSE_TMG_DEL_001(int50, v_createRequest));//TransactionMgmt + v_ae1.done; + + if(getverdict == pass){ + //check if "MyRessource" container resource isn't present in the IUT (for exemple attempt to update the resource) + }; + }; + + testcase TC_CSE_TMG_DEL_001_TRAM_ABT() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var AggregatedRequest.request_list[-] v_requestPrim; + + v_requestPrim := {int1, "", "", -, -, -}; + + var AggregatedRequest v_aggregatedRequest:= + { + request_list := + { + [0] := v_requestPrim + } + + }; + var template RequestPrimitive v_createRequest := m_createTransactionMgmtBase(v_aggregatedRequest); + v_createRequest.primitiveContent.transactionMgmt.transactionState := int6; // ABORTED + + v_ae1.start(f_CSE_TMG_DEL_001(int50, v_createRequest));//TransactionMgmt + v_ae1.done; + + if(getverdict == pass){ + //check if "MyRessource" container resource isn't present in the IUT (for exemple attempt to update the resource) + }; + }; + + testcase TC_CSE_TMG_DEL_001_TRAC_COM() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_createRequest := m_createTransactionBase(m_create); + v_createRequest.primitiveContent.transactionMgmt.transactionState := int4; // COMMIT + + v_ae1.start(f_CSE_TMG_DEL_001(int50, v_createRequest));//Transaction + v_ae1.done; + + if(getverdict == pass){ + //check if "MyRessource" container resource isn't present in the IUT (for exemple attempt to update the resource) + }; + }; + + testcase TC_CSE_TMG_DEL_001_TRAC_ABT() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_createRequest := m_createTransactionBase(m_create); + v_createRequest.primitiveContent.transaction.transactionState := int6; // ABORTED + + v_ae1.start(f_CSE_TMG_DEL_001(int50, v_createRequest));//Transaction + v_ae1.done; + + if(getverdict == pass){ + //check if "MyRessource" container resource isn't present in the IUT (for exemple attempt to update the resource) + }; + }; + + + } // end delete + } // end group Transaction_Management + }//end group CSE } \ No newline at end of file