You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

130 lines
4.8 KiB

2 years ago
  1. using Microsoft.EntityFrameworkCore;
  2. using NPOI.SS.Formula.Functions;
  3. using Shentun.Peis.GuidTypes;
  4. using Shentun.Peis.Models;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. using TencentCloud.Ame.V20190916.Models;
  11. using Volo.Abp.Domain.Repositories;
  12. using Volo.Abp.Uow;
  13. using Xunit;
  14. using Xunit.Abstractions;
  15. namespace Shentun.Peis
  16. {
  17. public class SysParmTypeManagerTest : PeisDomainTestBase
  18. {
  19. private readonly IRepository<SysParmType> _repository;
  20. private readonly GuideTypeManager _manager;
  21. //private readonly IDbContextProvider<PeisDbContext> _dbContextProvider;
  22. private readonly ITestOutputHelper _output;
  23. private readonly IRepository<ItemType, Guid> _itemTypeRepository;
  24. private readonly IUnitOfWorkManager _unitOfWorkManager;
  25. public SysParmTypeManagerTest(ITestOutputHelper output)
  26. {
  27. _output = output;
  28. _repository = GetRequiredService<IRepository<SysParmType>>();
  29. _itemTypeRepository = GetRequiredService<IRepository<ItemType, Guid>>();
  30. _manager = GetRequiredService<GuideTypeManager>();
  31. _unitOfWorkManager = GetRequiredService<IUnitOfWorkManager>();
  32. }
  33. [Fact]
  34. public async Task GetListAsync()
  35. {
  36. var items = await _repository.GetListAsync();
  37. items.ForEach(o =>
  38. {
  39. _output.WriteLine(o.Id + o.DisplayName.ToString());
  40. });
  41. }
  42. [Fact]
  43. public async Task GetByIdAsync()
  44. {
  45. using (var uow = _unitOfWorkManager.Begin())
  46. {
  47. //var queryableAsync = await _repository.GetQueryableAsync();
  48. //var items = queryableAsync.Include(o => o.SysParms).ThenInclude(o => o.SysParmValues).
  49. // Where(o => o.Id == "doctor_check_rule").ToList();
  50. var item = await _repository.GetAsync(o => o.Id == "doctor_check_rule");
  51. _output.WriteLine(item.Id + item.DisplayName);
  52. }
  53. }
  54. [Fact]
  55. public async Task GetByIdNoUnitOfWork()
  56. {
  57. var item = await _repository.GetAsync(o => o.Id == "doctor_check_rule");
  58. _output.WriteLine(item.Id + item.DisplayName);
  59. }
  60. [Fact]
  61. public async Task GetListByIdAsync()
  62. {
  63. using (var uow = _unitOfWorkManager.Begin())
  64. {
  65. //var queryableAsync = await _repository.GetQueryableAsync();
  66. //var items = queryableAsync.Include(o => o.SysParms).ThenInclude(o => o.SysParmValues).
  67. // Where(o => o.Id == "doctor_check_rule").ToList();
  68. var items = _repository.GetQueryableAsync().GetAwaiter().GetResult().
  69. Include(o => o.SysParms).ThenInclude(o => o.SysParmValues).
  70. Where(o => o.Id == "doctor_check_rule").ToList();
  71. items.ForEach(o =>
  72. {
  73. _output.WriteLine(o.Id + o.DisplayName.ToString());
  74. foreach (var item in o.SysParms)
  75. {
  76. _output.WriteLine("SysParms " + item.Id + " " + item.DisplayName);
  77. foreach (var item2 in item.SysParmValues)
  78. {
  79. _output.WriteLine("SysParmValues " + item2.OrganizationUnitId.ToString() + " " + item2.ParmValue);
  80. }
  81. }
  82. });
  83. }
  84. }
  85. [Fact]
  86. public async Task GetListByIdNoUnitOfWorkAsync()
  87. {
  88. //var queryableAsync = await _repository.GetQueryableAsync();
  89. //var items = queryableAsync.Include(o => o.SysParms).ThenInclude(o => o.SysParmValues).
  90. // Where(o => o.Id == "doctor_check_rule").ToList();
  91. try
  92. {
  93. var items = _repository.GetQueryableAsync().GetAwaiter().GetResult().
  94. Include(o => o.SysParms).ThenInclude(o => o.SysParmValues).
  95. Where(o => o.Id == "doctor_check_rule").ToList();
  96. items.ForEach(o =>
  97. {
  98. _output.WriteLine(o.Id + o.DisplayName.ToString());
  99. foreach (var item in o.SysParms)
  100. {
  101. _output.WriteLine("SysParms " + item.Id + " " + item.DisplayName);
  102. foreach (var item2 in item.SysParmValues)
  103. {
  104. _output.WriteLine("SysParmValues " + item2.OrganizationUnitId.ToString() + " " + item2.ParmValue);
  105. }
  106. }
  107. });
  108. }
  109. catch (Exception ex)
  110. {
  111. _output.WriteLine(ex.Message);
  112. }
  113. }
  114. }
  115. }