KnowledgeServiceMock.cs 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. using Hotline.Api.Controllers;
  2. using Hotline.Application.FlowEngine;
  3. using Hotline.FlowEngine.WorkflowModules;
  4. using Hotline.Identity.Accounts;
  5. using Hotline.Share.Dtos.Knowledge;
  6. using Hotline.Share.Enums.FlowEngine;
  7. using Hotline.Share.Tools;
  8. using Hotline.Tests.Infrastructure;
  9. using XF.Domain.Repository;
  10. namespace Hotline.Tests.Mock;
  11. public class KnowledgeServiceMock
  12. {
  13. private readonly KnowledgeController _knowledgeController;
  14. private string KnowledgeId;
  15. private readonly IWorkflowApplication _workflowApplication;
  16. private readonly IRepository<Account> _accountRepository;
  17. public KnowledgeServiceMock(KnowledgeController knowledgeController, IWorkflowApplication workflowApplication, IRepository<Account> accountRepository)
  18. {
  19. _knowledgeController = knowledgeController;
  20. _workflowApplication = workflowApplication;
  21. _accountRepository = accountRepository;
  22. }
  23. public KnowledgeServiceMock 创建并审核知识()
  24. {
  25. var json = "{\"data\":{\"attribution\":\"中心知识库\",\"isPublic\":true,\"keywords\":[\"08dcfe29-01a5-4b6e-8b47-640d75aa8b23\",\"08dcfe29-01a7-4488-8412-65907c33576d\",\"08dcfe29-01a8-4217-84ae-45eda2481c9b\"],\"keywordsName\":\"张继科扥,金卡,希望\",\"knowledgeTypeId\":[\"08dc903c-aad8-4515-89f3-1ae2d6961b90\"],\"hotspotId\":\"\",\"knowledges\":[],\"files\":[],\"template\":\"\",\"content\":\"<p style=\\\"line-height: 2;\\\"><span style=\\\"font-size: 20px; font-family: 仿宋;\\\">你张继科扥金卡希望智啊</span></p>\",\"sourceOrganizeId\":\"\",\"title\":\"你张继科扥金卡希望智啊\",\"knowledgeType\":[{\"KnowledgeTypeName\":\"类型11\",\"KnowledgeTypeId\":\"08dc903c-aad8-4515-89f3-1ae2d6961b90\",\"KnowledgeTypeSpliceName\":\"类型11\"}]},\"workflow\":{\"isPass\":true,\"opinion\":\"123\",\"nextStepCode\":\"da354c75-d8f7-4c8c-af6f-1e69fb09c343\",\"nextStepName\":\"流程节点\",\"backToCountersignEnd\":false,\"nextHandlers\":[{\"userId\":\"08dc3c21-8e9b-4387-8306-6cc32d127397\",\"username\":\"班长2\",\"orgId\":\"001\",\"orgName\":\"市民热线服务中心\",\"roleId\":\"zhongxinlingdao\",\"roleName\":\"中心领导\",\"key\":\"08dc3c21-8e9b-4387-8306-6cc32d127397\",\"value\":\"班长2\"}],\"nextMainHandler\":\"08dc3c21-8e9b-4387-8306-6cc32d127397\",\"isSms\":false,\"isStartCountersign\":false,\"stepId\":null,\"nextHandler\":{},\"workflowId\":\"\",\"handlerType\":0,\"businessType\":0,\"flowDirection\":2,\"external\":{},\"files\":[]}}";
  26. var inDto = json.FromJson<AddStartFlowDto>();
  27. var nextStep = _workflowApplication.GetStartStepsAsync(WorkflowModuleConsts.KnowledgeAdd, CancellationToken.None).GetAwaiter().GetResult();
  28. inDto.Data.Title = "单元测试" + DateTime.Now.ToString("yyyyMMddhhmmss");
  29. inDto.Workflow.FlowDirection = EFlowDirection.CenterToCenter;
  30. inDto.Workflow.NextStepCode = nextStep.Steps.First().Key;
  31. inDto.Workflow.NextStepName = nextStep.Steps.First().Value;
  32. var account = _accountRepository.GetAsync(m => m.UserName == TestSettingConstants.BanZhangAccountName).GetAwaiter().GetResult();
  33. var handler = nextStep.Steps.First().Items.Where(m => m.Username == account.Name).First();
  34. inDto.Workflow.NextHandlers.Add(handler);
  35. KnowledgeId = _knowledgeController.AddKnowledge(inDto).GetAwaiter().GetResult();
  36. return this;
  37. }
  38. public string GetKnowledgeId()
  39. {
  40. return KnowledgeId;
  41. }
  42. }