KnowledgeControllerTest.cs 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. using Hotline.Api.Controllers;
  2. using Hotline.Api.Controllers.Bi;
  3. using Hotline.Application.Tests.Mock;
  4. using Hotline.Identity.Accounts;
  5. using Hotline.Identity.Roles;
  6. using Hotline.KnowledgeBase;
  7. using Hotline.Share.Dtos.FlowEngine;
  8. using Hotline.Share.Dtos.Knowledge;
  9. using Hotline.Share.Enums.FlowEngine;
  10. using Hotline.Share.Enums.KnowledgeBase;
  11. using Hotline.Snapshot.Interfaces;
  12. using Hotline.Users;
  13. using Microsoft.AspNetCore.Http;
  14. using Microsoft.AspNetCore.Mvc;
  15. using Microsoft.Extensions.DependencyInjection;
  16. using Shouldly;
  17. using System;
  18. using System.Collections.Generic;
  19. using System.Linq;
  20. using System.Text;
  21. using System.Threading.Tasks;
  22. using XF.Domain.Repository;
  23. namespace Hotline.Application.Tests.Controller;
  24. public class KnowledgeControllerTest : TestBase
  25. {
  26. private readonly KnowledgeServiceMock _knowledgeServiceMock;
  27. private readonly KnowledgeController _knowledgeController;
  28. private readonly IRepository<KnowledgeBase.Knowledge> _knowledgeRepository;
  29. public KnowledgeControllerTest(IAccountRepository accountRepository, IRepository<Role> roleRepository, UserController userController, IServiceScopeFactory scopeFactory, IRepository<User> userRepository, KnowledgeServiceMock knowledgeServiceMock, KnowledgeController knowledgeController, IRepository<KnowledgeBase.Knowledge> knowledgeRepository, IHttpContextAccessor httpContextAccessor, IThirdIdentiyService thirdService, IThirdAccountRepository thirdAccount) : base(accountRepository, roleRepository, userController, scopeFactory, userRepository, httpContextAccessor, thirdService, thirdAccount)
  30. {
  31. _knowledgeServiceMock = knowledgeServiceMock;
  32. _knowledgeController = knowledgeController;
  33. _knowledgeController.ControllerContext = new ControllerContext
  34. {
  35. HttpContext = new DefaultHttpContext()
  36. };
  37. _knowledgeRepository = knowledgeRepository;
  38. }
  39. /// <summary>
  40. /// 批量审核知识
  41. /// </summary>
  42. /// <returns></returns>
  43. //[Fact]
  44. public async Task KnowledgeBatchAudit_TestAsync()
  45. {
  46. SetPaiDanYuan();
  47. var inDto = new KnowledgeBatchAuditInDto
  48. {
  49. IsPass = true,
  50. KnowledgeIds = new string[3],
  51. IsSms = false,
  52. Opinion = "批量审核通过"
  53. };
  54. for (int i = 0;i < 3;i++)
  55. {
  56. inDto.KnowledgeIds[i] = _knowledgeServiceMock.创建并审核知识()
  57. .GetKnowledgeId();
  58. }
  59. Set班长();
  60. var result = await _knowledgeController.KnowledgeBatchAuditAsync(inDto);
  61. foreach (var id in inDto.KnowledgeIds)
  62. {
  63. var k = await _knowledgeRepository.GetAsync(id);
  64. k.Status.ShouldBe(EKnowledgeStatus.OnShelf, $"{id} 状态错误: {result}");
  65. }
  66. }
  67. }