KnowledgeControllerTest.cs 2.5 KB

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