@@ -3702,6 +3702,88 @@ public async Task ProcessTaskUpdate_ValidTaskUpdateEventWithExportHl7TaskDestina
37023702 response . Should ( ) . BeTrue ( ) ;
37033703 }
37043704
3705+ [ Fact ]
3706+ public async Task ProcessTaskUpdate_ValidTaskUpdateEventWith_Same_Status_returns_true ( )
3707+ {
3708+ var workflowInstanceId = Guid . NewGuid ( ) . ToString ( ) ;
3709+ var taskId = Guid . NewGuid ( ) . ToString ( ) ;
3710+
3711+ var updateEvent = new TaskUpdateEvent
3712+ {
3713+ WorkflowInstanceId = workflowInstanceId ,
3714+ TaskId = "pizza" ,
3715+ ExecutionId = Guid . NewGuid ( ) . ToString ( ) ,
3716+ Status = TaskExecutionStatus . Succeeded ,
3717+ } ;
3718+
3719+ var workflowId = Guid . NewGuid ( ) . ToString ( ) ;
3720+
3721+ var workflow = new WorkflowRevision
3722+ {
3723+ Id = Guid . NewGuid ( ) . ToString ( ) ,
3724+ WorkflowId = workflowId ,
3725+ Revision = 1 ,
3726+ Workflow = new Workflow
3727+ {
3728+ Name = "Workflowname2" ,
3729+ Description = "Workflowdesc2" ,
3730+ Version = "1" ,
3731+ InformaticsGateway = new InformaticsGateway
3732+ {
3733+ AeTitle = "aetitle"
3734+ } ,
3735+ Tasks = new TaskObject [ ]
3736+ {
3737+ new TaskObject {
3738+ Id = "pizza" ,
3739+ Type = "type" ,
3740+ Description = "taskdesc" ,
3741+ TaskDestinations = new TaskDestination [ ]
3742+ {
3743+ new TaskDestination
3744+ {
3745+ Name = "exporttaskid"
3746+ } ,
3747+ }
3748+ }
3749+ }
3750+ }
3751+ } ;
3752+
3753+ var workflowInstance = new WorkflowInstance
3754+ {
3755+ Id = workflowInstanceId ,
3756+ WorkflowId = workflowId ,
3757+ WorkflowName = workflow . Workflow . Name ,
3758+ PayloadId = Guid . NewGuid ( ) . ToString ( ) ,
3759+ Status = Status . Created ,
3760+ BucketId = "bucket" ,
3761+ Tasks = new List < TaskExecution >
3762+ {
3763+ new TaskExecution
3764+ {
3765+ TaskId = "pizza" ,
3766+ Status = TaskExecutionStatus . Succeeded
3767+ }
3768+ }
3769+ } ;
3770+
3771+ _workflowInstanceRepository . Setup ( w => w . UpdateTaskStatusAsync ( It . IsAny < string > ( ) , It . IsAny < string > ( ) , It . IsAny < TaskExecutionStatus > ( ) ) ) . ReturnsAsync ( true ) ;
3772+ _workflowInstanceRepository . Setup ( w => w . GetByWorkflowInstanceIdAsync ( workflowInstance . Id ) ) . ReturnsAsync ( workflowInstance ) ;
3773+ _workflowInstanceRepository . Setup ( w => w . UpdateTasksAsync ( workflowInstance . Id , It . IsAny < List < TaskExecution > > ( ) ) ) . ReturnsAsync ( true ) ;
3774+ _workflowRepository . Setup ( w => w . GetByWorkflowIdAsync ( workflowInstance . WorkflowId ) ) . ReturnsAsync ( workflow ) ;
3775+ _payloadService . Setup ( p => p . GetByIdAsync ( It . IsAny < string > ( ) ) ) . ReturnsAsync ( new Payload { PatientDetails = new PatientDetails { } } ) ;
3776+ _artifactMapper . Setup ( a => a . ConvertArtifactVariablesToPath ( It . IsAny < Artifact [ ] > ( ) , It . IsAny < string > ( ) , It . IsAny < string > ( ) , It . IsAny < string > ( ) , It . IsAny < bool > ( ) ) ) . ReturnsAsync ( new Dictionary < string , string > { { "dicomexport" , "/dcm" } } ) ;
3777+
3778+ var response = await WorkflowExecuterService . ProcessTaskUpdate ( updateEvent ) ;
3779+
3780+ _messageBrokerPublisherService . Verify ( w => w . Publish ( _configuration . Value . Messaging . Topics . ExportHL7 , It . IsAny < Message > ( ) ) , Times . Exactly ( 0 ) ) ;
3781+
3782+ _logger . Verify ( logger => logger . IsEnabled ( LogLevel . Trace ) , Times . Once ) ;
3783+
3784+ response . Should ( ) . BeTrue ( ) ;
3785+ }
3786+
37053787 [ Fact ]
37063788 public async Task ProcessPayload_With_Multiple_Taskdestinations_One_Has_Inputs ( )
37073789 {
0 commit comments