WorkflowDomainServiceTest.cs 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. using Hotline.Caching.Interfaces;
  2. using Hotline.FlowEngine.Workflows;
  3. using Hotline.Share.Dtos.FlowEngine.Workflow;
  4. using Hotline.Share.Enums.FlowEngine;
  5. using XF.Domain.Exceptions;
  6. namespace Hotline.Tests.Domain.Workflow;
  7. public class WorkflowDomainServiceTest
  8. {
  9. private readonly IWorkflowDomainService _workflowDomainService;
  10. private readonly IWfModuleCacheManager _wfModuleCacheManager;
  11. public WorkflowDomainServiceTest(
  12. IWorkflowDomainService workflowDomainService,
  13. IWfModuleCacheManager wfModuleCacheManager)
  14. {
  15. _workflowDomainService = workflowDomainService;
  16. _wfModuleCacheManager = wfModuleCacheManager;
  17. }
  18. public async Task StartAsyncTest(string definitionModuleCode)
  19. {
  20. var wfModule = await _wfModuleCacheManager.GetWorkflowModuleAsync(definitionModuleCode, default);
  21. if (wfModule == null)
  22. throw UserFriendlyException.SameMessage("无效流程模块编码");
  23. if (wfModule.Definition is null)
  24. throw new UserFriendlyException($"{definitionModuleCode} 未配置流程模板", "未配置流程模板");
  25. var definition = wfModule.Definition;
  26. if (definition == null)
  27. throw new UserFriendlyException("无效模板编码");
  28. if (definition.Status is not EDefinitionStatus.Enable)
  29. throw new UserFriendlyException("该模板不可用");
  30. //如果发起会签需检查是否支持发起会签
  31. var startStepDefine = definition.FindStartStepDefine();
  32. var nextStep = definition.FindStepDefine(startStepDefine.NextSteps.First().Code);
  33. //StartWorkflowDto dto, string externalId,DateTime? expiredTime = null,
  34. var dto = new StartWorkflowDto
  35. {
  36. DefinitionModuleCode = definitionModuleCode,
  37. Title = "测试流程开启",
  38. NextStepCode = nextStep.Code,
  39. NextStepName = nextStep.Name,
  40. };
  41. //_workflowDomainService.StartAsync()
  42. }
  43. }