KnowledgeServiceMock.cs 3.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. using Hotline.Api.Controllers;
  2. using Hotline.Application.FlowEngine;
  3. using Hotline.Application.Tests.Infrastructure;
  4. using Hotline.FlowEngine.WorkflowModules;
  5. using Hotline.Identity.Accounts;
  6. using Hotline.Share.Dtos.FlowEngine;
  7. using Hotline.Share.Dtos.Knowledge;
  8. using Hotline.Share.Enums.FlowEngine;
  9. using Hotline.Share.Tools;
  10. using Hotline.Users;
  11. using System;
  12. using System.Collections.Generic;
  13. using System.Linq;
  14. using System.Text;
  15. using System.Threading.Tasks;
  16. using XF.Domain.Repository;
  17. namespace Hotline.Application.Tests.Mock;
  18. public class KnowledgeServiceMock
  19. {
  20. private readonly KnowledgeController _knowledgeController;
  21. private string KnowledgeId;
  22. private readonly IWorkflowApplication _workflowApplication;
  23. private readonly IRepository<Account> _accountRepository;
  24. public KnowledgeServiceMock(KnowledgeController knowledgeController, IWorkflowApplication workflowApplication, IRepository<Account> accountRepository)
  25. {
  26. _knowledgeController = knowledgeController;
  27. _workflowApplication = workflowApplication;
  28. _accountRepository = accountRepository;
  29. }
  30. public KnowledgeServiceMock 创建并审核知识()
  31. {
  32. 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\":[]}}";
  33. var inDto = json.FromJson<AddStartFlowDto>();
  34. var nextStep = _workflowApplication.GetStartStepsAsync(WorkflowModuleConsts.KnowledgeAdd, CancellationToken.None).GetAwaiter().GetResult();
  35. inDto.Data.Title = "单元测试" + DateTime.Now.ToString("yyyyMMddhhmmss");
  36. inDto.Workflow.FlowDirection = EFlowDirection.CenterToCenter;
  37. inDto.Workflow.NextStepCode = nextStep.Steps.First().Key;
  38. inDto.Workflow.NextStepName = nextStep.Steps.First().Value;
  39. var account = _accountRepository.GetAsync(m => m.UserName == TestSettingConstants.BanZhangAccountName).GetAwaiter().GetResult();
  40. var handler = nextStep.Steps.First().Items.Where(m => m.Username == account.Name).First();
  41. inDto.Workflow.NextHandlers.Add(handler);
  42. KnowledgeId = _knowledgeController.AddKnowledge(inDto).GetAwaiter().GetResult();
  43. return this;
  44. }
  45. public string GetKnowledgeId()
  46. {
  47. return KnowledgeId;
  48. }
  49. }