PushMessageControllerTest.cs 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. using Hotline.Api.Controllers;
  2. using Hotline.Share.Dtos.Push;
  3. using Hotline.Users;
  4. using Microsoft.AspNetCore.Http;
  5. using Microsoft.AspNetCore.Mvc;
  6. using Shouldly;
  7. using XF.Domain.Exceptions;
  8. using XF.Domain.Repository;
  9. namespace Hotline.Tests.Controller;
  10. public class PushMessageControllerTest
  11. {
  12. private readonly PushMessageController _pushMessageController;
  13. private readonly IRepository<User> _userRepository;
  14. public PushMessageControllerTest(PushMessageController pushMessageController, IRepository<User> userRepository)
  15. {
  16. _pushMessageController = pushMessageController;
  17. pushMessageController.ControllerContext = new ControllerContext
  18. {
  19. HttpContext = new DefaultHttpContext()
  20. };
  21. _userRepository = userRepository;
  22. }
  23. //[Fact]
  24. public async Task SendMessage_Test()
  25. {
  26. try
  27. {
  28. await _pushMessageController.SendMessage(new MessageInDto { Content = "123"});
  29. }
  30. catch (UserFriendlyException e)
  31. {
  32. e.Message.ShouldBe("电话号码和用户Id不能同时为空");
  33. }
  34. try
  35. {
  36. await _pushMessageController.SendMessage(new MessageInDto());
  37. }
  38. catch (UserFriendlyException e)
  39. {
  40. e.Message.ShouldBe("内容不能为空");
  41. }
  42. var phoneNo = await _userRepository.Queryable()
  43. .Where(m => m.Name.Contains("测试账号"))
  44. .Select(m => m.PhoneNo)
  45. .FirstAsync();
  46. var inDto = new MessageInDto
  47. {
  48. TelNumbers = phoneNo,
  49. Content = "单元测试, 输入的手机号码发送的短信"
  50. };
  51. // await _pushMessageController.SendMessage(inDto);
  52. var ids = await _userRepository.Queryable()
  53. .Where(m => m.Name.Contains("测试账号"))
  54. .Select(m => m.Id)
  55. .Take(2)
  56. .ToListAsync();
  57. inDto = new MessageInDto
  58. {
  59. UserIds = ids,
  60. Content = "单元测试, 选择的联系人发送的短信"
  61. };
  62. await _pushMessageController.SendMessage(inDto);
  63. }
  64. }