单元测试提交

Test.EIImageViewer
hang 2023-07-25 17:27:35 +08:00
parent 8a074de2f0
commit 93bd2d92f2
3 changed files with 976 additions and 288 deletions

926
EI_TestProject/APITest.cs Normal file
View File

@ -0,0 +1,926 @@
using System.Net;
using System.Text;
using System.Text.Json.Nodes;
using Azure.Core;
using BeetleX.Clients;
using BeetleX.Redis.Commands;
using EI_TestProject;
using IRaCIS.Application.Contracts;
using IRaCIS.Core.Application.Contracts;
using IRaCIS.Core.Application.ViewModel;
using IRaCIS.Core.Domain.Models;
using IRaCIS.Core.Infrastructure;
using IRaCIS.Core.Infrastructure.Extention;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Org.BouncyCastle.Asn1.Crmf;
using Org.BouncyCastle.Asn1.Ocsp;
using RestSharp;
using Xunit;
using Xunit.Abstractions;
public class UserApiTests : IDisposable
{
private RestClient _client;
public UserApiTests()
{
// 创建一个 RestClient 对象,并设置基本 URL
//client = new RestClient("http://localhost:6100");
_client = RestHelper.InitRestHelper("http://123.56.94.154:8090/api", "Admin", MD5Helper.Md5("WHxckj@2019"));
}
#region 用户 用户类型
/// <summary>
/// 添加系统用户
/// </summary>
[Fact]
public async void Test_AddUser()
{
var url = $"/user/addUser";
var jsonBody = new JObject
{
{ "UserName", "test_hang" },
{ "LastName", "zhou" },
{ "FirstName", "hang" },
{ "Sex", 1 },
{ "EMail", "872297557@qq.com" },
{ "Phone", "" },
{ "UserTypeId", "40240000-3e2c-0016-b35f-08db1895d627" },
{ "IsZhiZhun", "" },
{ "OrganizationName", "" },
{ "DepartmentName", "" },
{ "PositionName", "" },
{ "IsTestUser", true },
{ "UserTypeEnum", 1 },
{ "BaseUrl", "http://123.56.94.154:8090/login" },
{ "RouteUrl", "http://123.56.94.154:8090/email-recompose" },
{ "RealName", string.Empty }
};
var result = await RestHelper.Post_JsonBodyRequestAsync<ResponseOutput<UserAddedReturnDTO>>(url, jsonBody);
Assert.True(result.Code != ApiResponseCodeEnum.ApiInputError && result.Code != ApiResponseCodeEnum.ProgramException);
}
/// <summary>
/// 更新用户
/// </summary>
[Fact]
public async void Test_UpdateUser()
{
var url = $"/user/updateUser";
var jsonBody = new JObject
{
{ "CanEditUserType", false },
{ "Id", "d83f0000-3e2c-0016-2ed8-08db3f051caf" },
{ "UserName", "zhouhang" },
{ "Password", "e10adc3949ba59abbe56e057f20f883e" },
{ "RealName", "zhou / hang" },
{ "FirstName", "hang" },
{ "LastName", "zhou" },
{ "Sex", 1 },
{ "Status", 1 },
{ "Phone", "17673237815" },
{ "EMail", "872297557@qq.com" },
{ "UserTypeId", "40240000-3e2c-0016-b35f-08db1895d627" },
{ "UserCode", "U0178" },
{ "UserType", "PM (Project Manager)" },
{ "UserTypeShortName", "PM" },
{ "UserTypeEnum", 1 },
{ "IsZhiZhun", true },
{ "OrganizationName", "ExtImaging" },
{ "DepartmentName", "xx" },
{ "PositionName", "xx" },
{ "IsTestUser", false },
{ "BaseUrl", "http://123.56.94.154:8090/login" },
{ "RouteUrl", "http://123.56.94.154:8090/email-recompose" }
};
var result = await RestHelper.Put_JsonBodyRequestAsync<ResponseOutput<string>>(url, jsonBody);
Assert.True(result.Code != ApiResponseCodeEnum.ApiInputError && result.Code != ApiResponseCodeEnum.ProgramException);
}
/// <summary>
/// 重置密码
/// </summary>
[Fact]
public async void Test_ResetPassword()
{
var id = Guid.Parse("d05c0000-3e2c-0016-64eb-08db617a483b");
var url = $"/user/resetPassword/{id}";
var result = await RestHelper.GetRequestAsync<ResponseOutput<UserAddedReturnDTO>>(url);
Assert.True(result.Code != ApiResponseCodeEnum.ApiInputError && result.Code != ApiResponseCodeEnum.ProgramException);
}
/// <summary>
/// 查询系统用户
/// </summary>
[Fact]
public async void Test_GetUserList()
{
var url = $"/user/getUserList";
var jsonBody = new JObject
{
{ "RealName", string.Empty }
};
//测试删除Api
var result = await RestHelper.Post_JsonBodyRequestAsync<ResponseOutput<PageOutput<UserListDTO>>>(url, jsonBody);
Assert.True(result.Data.CurrentPageData.Count >= 0);
}
/// <summary>
/// 删除系统用户
/// </summary>
[Fact]
public async void Test_DeleteUser()
{
var userId = Guid.Parse("98430000-3e2c-0016-225f-08db7612c7ae");
var url = $"/user/deleteUser/{userId}";
//测试删除Api
var result = await RestHelper.DeleteRequestAsync<ResponseOutput<string>>(url);
Assert.True(result.Code != ApiResponseCodeEnum.ApiInputError && result.Code != ApiResponseCodeEnum.ProgramException);
}
/// <summary>
/// 角色
/// </summary>
[Fact]
public async void Test_GetUserTypeRoleList()
{
var url = $"/UserTypeRole/getUserTypeRoleList";
var jsonBody = new JObject
{
};
var result = await RestHelper.Post_JsonBodyRequestAsync<ResponseOutput<List<UserTypeRoleView>>>(url, jsonBody);
Assert.True(result.Data.Count >= 0);
}
#endregion
#region 匿名化
/// <summary>
/// 匿名化配置
/// </summary>
[Fact]
public async void Test_getSystemAnonymizationList()
{
var url = $"/SystemAnonymization/getSystemAnonymizationList";
var jsonBody = new JObject
{
{ "Group", "" },
{ "Element", "" },
{ "TagDescription", "" },
{ "IsAdd", false },
{ "TagDescriptionCN", "" },
{ "PageIndex", 1 },
{ "PageSize", 500 }
};
var result = await RestHelper.Post_JsonBodyRequestAsync<ResponseOutput<PageOutput<SystemAnonymizationView>>>(url, jsonBody);
Assert.True(result.Data.CurrentPageData.Count >= 0);
}
/// <summary>
/// 删除匿名化配置
/// </summary>
[Fact]
public async void Test_DeleteSystemAnonymization()
{
var id = Guid.Parse("98430000-3e2c-0016-225f-08db7612c7ae");
var url = $"/SystemAnonymization/deleteSystemAnonymization/{id}";
//测试删除Api
var result = await RestHelper.DeleteRequestAsync<ResponseOutput<string>>(url);
Assert.True(result.Code != ApiResponseCodeEnum.ApiInputError && result.Code != ApiResponseCodeEnum.ProgramException);
}
/// <summary>
/// 更新 匿名化配置
/// </summary>
[Fact]
public async void Test_UpdateSystemAnonymization()
{
var url = $"/SystemAnonymization/addOrUpdateSystemAnonymization";
var jsonBody = new JObject
{
{ "CreateUserId", "e2e165a0-44b0-4b16-9a4d-0b9b7a1ce362" },
{ "UpdateTime", "2023-06-19 14:36:56" },
{ "UpdateUserId", "e2e165a0-44b0-4b16-9a4d-0b9b7a1ce362" },
{ "CreateTime", "2023-06-15 10:21:19" },
{ "Id", "640a0000-3e2c-0016-ae9b-08db6d4734c9" },
{ "Group", "1" },
{ "Element", "2" },
{ "TagDescription", "3" },
{ "TagDescriptionCN", "4" },
{ "ReplaceValue", "123" },
{ "ValueRepresentation", "5" },
{ "IsAdd", false },
{ "IsEnable", true },
{ "IsFixed", true }
};
var result = await RestHelper.Post_JsonBodyRequestAsync<ResponseOutput<string>>(url, jsonBody);
Assert.True(result.Code != ApiResponseCodeEnum.ApiInputError && result.Code != ApiResponseCodeEnum.ProgramException);
}
/// <summary>
/// 添加 匿名化配置
/// </summary>
[Fact]
public async void Test_AddSystemAnonymization()
{
var url = $"/SystemAnonymization/addOrUpdateSystemAnonymization";
var jsonBody = new JObject
{
{ "Group", "0010" },
{ "Element", "0021" },
{ "TagDescription", "test" },
{ "TagDescriptionCN", "test" },
{ "ValueRepresentation", "test" },
{ "ReplaceValue", "test" },
{ "IsEnable", false },
{ "IsAdd", false },
{ "IsFixed", false }
};
var result = await RestHelper.Post_JsonBodyRequestAsync<ResponseOutput<string>>(url, jsonBody);
Assert.True(result.Code != ApiResponseCodeEnum.ApiInputError && result.Code != ApiResponseCodeEnum.ProgramException);
}
#endregion
#region 项目
/// 查询系项目列表
/// </summary>
[Fact]
public async void Test_GetTrialList()
{
var url = $"/trial/getTrialList";
var jsonBody = new JObject
{
{ "Code", "" },
{ "CriterionIds", new JArray() },
{ "SponsorId", "" },
{ "ReviewTypeIds", new JArray() },
{ "CROId", "" },
{ "Expedited", "" },
{ "Indication", "" },
{ "Phase", "" },
{ "ModalityIds", new JArray() },
{ "BeginDate", "" },
{ "EndDate", "" },
{ "AttendedReviewerType", "" },
{ "ResearchProgramNo", "" },
{ "ExperimentName", "" },
{ "PageIndex", 1 },
{ "PageSize", 20 },
{ "Asc", false },
{ "SortField", "" }
};
//测试删除Api
var result = await RestHelper.Post_JsonBodyRequestAsync<ResponseOutput<PageOutput<PageOutput<TrialDetailDTO>>>>(url, jsonBody);
Assert.True(result.Data.CurrentPageData.Count >= 0);
}
/// <summary>
/// 更新项目
/// </summary>
[Fact]
public async void Test_UpdateTrial()
{
var pmclient = RestHelper.InitRestHelper("http://123.56.94.154:8090/api", "PM01", MD5Helper.Md5("WHxckj@2019"));
var url = $"/trial/addOrUpdateTrial";
var jsonBody = new JObject
{
{ "Id", "20430000-3e2c-0016-aa08-08db791c6ae5" },
{ "TrialCode", "23000067" },
{ "TrialType", 1 },
{ "SponsorId", "" },
{ "CROId", "" },
{ "ReviewModeId", "" },
{ "ReviewTypeIds", new JArray() },
{ "Expedited", 0 },
{ "ModalityIds", new JArray() },
{ "Note", "" },
{ "ExpectedPatients", 0 },
{ "TimePointsPerPatient", 0 },
{ "ProjectCycle", "" },
{ "TotalReviewers", 0 },
{ "DeclarationTypeId", "742e0000-3e2c-0016-b5ca-08da6222442f" },
{ "IndicationTypeId", "437a81b3-c5ad-49fd-82a1-8f441c4ba8da" },
{ "PhaseId", "b1509dde-234a-46ce-cf13-08d9c120c961" },
{ "AttendedReviewerType", 0 },
{ "IsLocked", false },
{ "ResearchProgramNo", "111" },
{ "ExperimentName", "项目1" },
{ "MainResearchUnit", "" },
{ "HeadPI", "" },
{ "PlanSiteCount", 0 },
{ "PlanVisitCount", 0 },
{ "Indication", "肺癌" },
{ "IndicationOther", null }
};
var result = await RestHelper.Post_JsonBodyRequestAsync<ResponseOutput<Trial>>(url, jsonBody,restClient: pmclient);
Assert.True(result.Code != ApiResponseCodeEnum.ApiInputError && result.Code != ApiResponseCodeEnum.ProgramException);
}
/// <summary>
/// 添加项目
/// </summary>
///
[Fact]
public async void Test_AddTrial()
{
var pmclient = RestHelper.InitRestHelper("http://123.56.94.154:8090/api", "PM01", MD5Helper.Md5("WHxckj@2019"));
var url = $"/trial/addOrUpdateTrial";
var jsonBody = new JObject
{
{ "Id", "" },
{ "TrialType", 1 },
{ "SponsorId", "" },
{ "CROId", "" },
{ "ReviewModeId", "" },
{ "ReviewTypeIds", new JArray() },
{ "Expedited", 0 },
{ "ModalityIds", new JArray("b44915a2-6f08-45f8-bd6c-74abad2298e1", "80480000-3e2c-0016-f090-08da6b92accd") },
{ "Note", "" },
{ "ExpectedPatients", 0 },
{ "TimePointsPerPatient", 0 },
{ "ProjectCycle", "" },
{ "TotalReviewers", 0 },
{ "DeclarationTypeId", "742e0000-3e2c-0016-b5ca-08da6222442f" },
{ "IndicationTypeId", "437a81b3-c5ad-49fd-82a1-8f441c4ba8da" },
{ "PhaseId", "b1509dde-234a-46ce-cf13-08d9c120c961" },
{ "AttendedReviewerType", 0 },
{ "IsLocked", false },
{ "ResearchProgramNo", "111" },
{ "ExperimentName", "test" },
{ "MainResearchUnit", "" },
{ "HeadPI", "zz" },
{ "PlanSiteCount", null },
{ "PlanVisitCount", null },
{ "Indication", "肺癌" },
{ "IndicationOther", null }
};
var result = await RestHelper.Post_JsonBodyRequestAsync<ResponseOutput<Trial>>(url, jsonBody, restClient: pmclient);
Assert.True(result.Code != ApiResponseCodeEnum.ApiInputError && result.Code != ApiResponseCodeEnum.ProgramException);
}
/// <summary>
/// 删除项目
/// </summary>
[Fact]
public async void Test_DeleteTrial()
{
var pmclient = RestHelper.InitRestHelper("http://123.56.94.154:8090/api", "PM01", MD5Helper.Md5("WHxckj@2019"));
var url = $"/TrialConfig/abandonTrial/dc080000-3e2c-0016-fd6b-08db8cb80e5d/true";
var jsonBody = new JObject
{ };
var result = await RestHelper.Put_JsonBodyRequestAsync<ResponseOutput<string>>(url, jsonBody);
Assert.True(result.Code != ApiResponseCodeEnum.ApiInputError && result.Code != ApiResponseCodeEnum.ProgramException);
}
#endregion
#region 患者
/// <summary>
/// 查询患者列表
/// </summary>
[Fact]
public async void Test_GetSubjctList()
{
var url = $"/subject/getSubjectList";
var jsonBody = new JObject
{
{ "Code", "" },
{ "Status", "" },
{ "SiteId", "" },
{ "ShortName", "" },
{ "Sex", "" },
{ "PageIndex", 1 },
{ "PageSize", 20 },
{ "TrialId", "dc080000-3e2c-0016-64c6-08db8cb8ed81" }
};
//测试删除Api
var result = await RestHelper.Post_JsonBodyRequestAsync<ResponseOutput<PageOutput<PageOutput<SubjectQueryView>>>>(url, jsonBody);
Assert.True(result.Data.CurrentPageData.Count >= 0);
}
/// <summary>
/// 添加患者
/// </summary>
[Fact]
public async void Test_AddSubjet()
{
var url = $"/subject/addOrUpdateSubject";
var jsonBody = new JObject
{
{ "Id", "" },
{ "Code", "01001" },
{ "ShortName", "" },
{ "Height", "" },
{ "Weight", "" },
{ "Age", "23" },
{ "Sex", "男" },
{ "BirthDate", "" },
{ "SiteId", "db83e2f5-1f2e-408f-a45b-08d8e1dcace0" },
{ "MedicalNo", "" },
{ "Status", 1 },
{ "FirstGiveMedicineTime", "" },
{ "OutEnrollmentTime", "" },
{ "VisitOverTime", "" },
{ "Reason", "" },
{ "StudyCount", "" },
{ "SignDate", "" },
{ "IsUrgent", false },
{ "TrialId", "dc080000-3e2c-0016-64c6-08db8cb8ed81" }
};
var result = await RestHelper.Post_JsonBodyRequestAsync<ResponseOutput<string>>(url, jsonBody);
Assert.True(result.Code != ApiResponseCodeEnum.ApiInputError && result.Code != ApiResponseCodeEnum.ProgramException);
}
/// <summary>
/// 更新患者
/// </summary>
[Fact]
public async void Test_UpdateSubject()
{
var url = $"/subject/addOrUpdateSubject";
var jsonBody = new JObject
{
{ "Id", "20430000-3e2c-0016-a444-08db791c6dad" },
{ "Code", "患者12" },
{ "ShortName", "" },
{ "Height", "" },
{ "Weight", "" },
{ "Age", 33 },
{ "Sex", "" },
{ "BirthDate", null },
{ "SiteId", "db83e2f5-1f2e-408f-a45b-08d8e1dcace0" },
{ "MedicalNo", "" },
{ "Status", 1 },
{ "FirstGiveMedicineTime", null },
{ "OutEnrollmentTime", null },
{ "VisitOverTime", null },
{ "Reason", "" },
{ "StudyCount", "" },
{ "SignDate", null },
{ "IsUrgent", false },
{ "TrialId", "20430000-3e2c-0016-aa08-08db791c6ae5" }
};
var result = await RestHelper.Post_JsonBodyRequestAsync<ResponseOutput<string>>(url, jsonBody);
Assert.True(result.Code != ApiResponseCodeEnum.ApiInputError && result.Code != ApiResponseCodeEnum.ProgramException);
}
/// <summary>
/// 删除患者
/// </summary>
[Fact]
public async void Test_DeleteSubjet()
{
var url = $"/subject/deleteSubject/20430000-3e2c-0016-aa08-08db791c6ae5/20430000-3e2c-0016-d10d-08db791c6ef0";
//测试删除Api
var result = await RestHelper.DeleteRequestAsync<ResponseOutput<string>>(url);
Assert.True(result.Code != ApiResponseCodeEnum.ApiInputError && result.Code != ApiResponseCodeEnum.ProgramException);
}
#endregion
#region 参与人员
/// <summary>
/// 查询参与人员列表
/// </summary>
[Fact]
public async void Test_GetTrialUserList()
{
var url = $"/trialMaintenance/getMaintenanceUserList";
var jsonBody = new JObject
{
{ "UserRealName", "" },
{ "UserName", "" },
{ "UserTypeId", "" },
{ "OrganizationName", "" },
{ "IsDeleted", null },
{ "PageIndex", 1 },
{ "PageSize", 20 },
{ "TrialId", "20430000-3e2c-0016-aa08-08db791c6ae5" }
};
//测试删除Api
var result = await RestHelper.Post_JsonBodyRequestAsync<ResponseOutput<PageOutput<TrialMaintenanceDTO>>>(url, jsonBody);
Assert.True(result.Data.CurrentPageData.Count >= 0);
}
/// <summary>
/// 查询参与人员列表
/// </summary>
[Fact]
public async void Test_GetTrialUserScreeningList()
{
var url = $"/trialMaintenance/getTrialUserScreeningList";
var jsonBody = new JObject
{
{ "UserRealName", "" },
{ "UserName", "" },
{ "UserTypeId", "" },
{ "OrganizationName", "" },
{ "IsDeleted", null },
{ "PageIndex", 1 },
{ "PageSize", 20 },
{ "TrialId", "20430000-3e2c-0016-aa08-08db791c6ae5" }
};
//测试删除Api
var result = await RestHelper.Post_JsonBodyRequestAsync<ResponseOutput<PageOutput<TrialUserScreeningDTO>>>(url, jsonBody);
Assert.True(result.Data.CurrentPageData.Count >= 0);
}
/// <summary>
/// 添加参与人员
/// </summary>
[Fact]
public async void Test_AddTrialUser()
{
var url = $"/trialMaintenance/addTrialUsers";
var jsonBody = new JArray
{
new JObject
{
{ "Sex", 1 },
{ "Phone", "" },
{ "EMail", "446322065@qq.com" },
{ "DepartmentName", "" },
{ "PositionName", "" },
{ "UserName", "IR02" },
{ "IsSelect", false },
{ "UserTypeId", "40240000-3e2c-0016-ad69-08db18965090" },
{ "UserType", "IR" },
{ "UserTypeEnum", 13 },
{ "OrganizationName", "" },
{ "UserRealName", "IR02 / IR02" },
{ "UserId", "9c3b0000-3e2c-0016-3606-08db706de699" },
{ "TrialId", "e4070000-3e2c-0016-2eb5-08db373d9ae2" }
}
};
var result = await RestHelper.Post_JsonBodyRequestAsync<ResponseOutput<string>>(url, jsonBody);
Assert.True(result.Code != ApiResponseCodeEnum.ApiInputError && result.Code != ApiResponseCodeEnum.ProgramException);
}
/// <summary>
/// 更新项目参与用户
/// </summary>
[Fact]
public async void Test_UpdateTrialUser()
{
var pmclient = RestHelper.InitRestHelper("http://123.56.94.154:8090/api", "PM01", MD5Helper.Md5("WHxckj@2019"));
var url = $"/trialMaintenance/updateTrialUser";
var jsonBody = new JObject
{
{ "id", "dc080000-3e2c-0016-beab-08db8cce772d" },
{ "trialId", "e4070000-3e2c-0016-2eb5-08db373d9ae2" },
{ "isDeleted", true },
{ "removeTime", "2023-07-03" },
{ "joinTime", "" }
};
var result = await RestHelper.Put_JsonBodyRequestAsync<ResponseOutput<string>>(url, jsonBody,restClient: pmclient);
Assert.True(result.Code != ApiResponseCodeEnum.ApiInputError && result.Code != ApiResponseCodeEnum.ProgramException);
}
#endregion
#region 任务 和阅片
/// <summary>
/// 阅片任务分配列表
/// </summary>
[Fact]
public async void Test_GetTrialSubjectAssignAndTask()
{
var url = $"/VisitTask/getSubjectAssignAndTaskStatList";
var jsonBody = new JObject
{
{ "PageIndex", 1 },
{ "PageSize", 20 },
{ "Asc", true },
{ "SortField", "" },
{ "TrialId", "e4070000-3e2c-0016-2eb5-08db373d9ae2" },
{ "SiteId", null },
{ "SubjectId", null },
{ "SubjectCode", null },
{ "DoctorUserId", null },
{ "IsHaveAssigned", null },
{ "IsAssignConfirmed", null },
{ "TrialReadingCriterionId", "e4070000-3e2c-0016-9b99-08db373d9aed" }
};
var result = await RestHelper.Post_JsonBodyRequestAsync<ResponseOutput<PageOutput<SubjectAssignStat>>>(url, jsonBody);
Assert.True(result.Data.CurrentPageData.Count >= 0);
}
/// <summary>
/// 阅片任务分配给阅片人
/// </summary>
[Fact]
public async void Test_batchAssignDoctorToSubject()
{
var url = $"/VisitTask/batchAssignDoctorToSubject";
var jsonBody = new JObject
{
{ "TrialId", "e4070000-3e2c-0016-2eb5-08db373d9ae2" },
{ "TrialReadingCriterionId", "e4070000-3e2c-0016-9b99-08db373d9aed" },
{ "SubjectIdList", new JArray("7c3f0000-3e2c-0016-1129-08db51c37208") },
{
"DoctorArmList", new JArray(
new JObject
{
{ "ArmEnum", 0 },
{ "DoctorUserId", "e4070000-3e2c-0016-4e7a-08db37438068" }
}
)
}
};
var result = await RestHelper.Post_JsonBodyRequestAsync<ResponseOutput<PageOutput<TrialMaintenanceDTO>>>(url, jsonBody);
Assert.True(result.Code != ApiResponseCodeEnum.ApiInputError && result.Code != ApiResponseCodeEnum.ProgramException);
}
/// <summary>
/// 获取可分配阅片人列表
/// </summary>
[Fact]
public async void Test_getDoctorSelectList()
{
var url = $"/TaskAllocationRule/getDoctorSelectList";
var jsonBody = new JObject
{
{ "TrialId", "e4070000-3e2c-0016-2eb5-08db373d9ae2" },
{ "ReadingCategory", 2 },
{ "TrialReadingCriterionId", "e4070000-3e2c-0016-9b99-08db373d9aed" }
};
var result = await RestHelper.Post_JsonBodyRequestAsync<ResponseOutput<List<TrialDoctorUserSelectView>>>(url, jsonBody);
Assert.True(result.Data.Count >= 0);
}
/// <summary>
/// 取消分配的阅片人
/// </summary>
[Fact]
public async void Test_cancelSubjectAssignedDoctor()
{
var url = $"/VisitTask/cancelSubjectAssignedDoctor";
var jsonBody = new JObject
{
{
"CancelList", new JArray(
new JObject
{
{ "Id", "dc080000-3e2c-0016-616d-08db8cd1f7ba" },
{ "SubjectId", "7c3f0000-3e2c-0016-1129-08db51c37208" },
{ "DoctorUserId", "e4070000-3e2c-0016-4e7a-08db37438068" },
{ "ArmEnum", 0 },
{ "IsCancelAssign", true }
}
)
},
{ "Note", "\n取消阅片人(IR01(张 / 航));" },
{ "TrialReadingCriterionId", "e4070000-3e2c-0016-9b99-08db373d9aed" },
{ "TrialId", "e4070000-3e2c-0016-2eb5-08db373d9ae2" }
};
var result = await RestHelper.Post_JsonBodyRequestAsync<ResponseOutput<List<TrialDoctorUserSelectView>>>(url, jsonBody);
Assert.True(result.Code != ApiResponseCodeEnum.ApiInputError && result.Code != ApiResponseCodeEnum.ProgramException);
}
/// <summary>
/// 患者检查列表
/// </summary>
[Fact]
public async void Test_getCRCVisitList()
{
var url = $"/QCList/getCRCVisitList";
var jsonBody = new JObject
{
{ "SubjectInfo", "" },
{ "SiteId", "" },
{ "PageIndex", 1 },
{ "PageSize", 20 },
{ "VisitPlanArray", new JArray() },
{ "AuditStateArray", new JArray() },
{ "SubmitState", null },
{ "ChallengeState", null },
{ "BeginSubmitTime", null },
{ "EndSubmitTime", null },
{ "TrialId", "e4070000-3e2c-0016-2eb5-08db373d9ae2" }
};
var result = await RestHelper.Post_JsonBodyRequestAsync<ResponseOutput<PageOutput<QCCRCVisitViewModel>>>(url, jsonBody);
Assert.True(result.Code != ApiResponseCodeEnum.ApiInputError && result.Code != ApiResponseCodeEnum.ProgramException);
}
/// <summary>
///阅片跟踪列表
/// </summary>
[Fact]
public async void Test_getReadingTaskList()
{
var url = $"/VisitTask/getReadingTaskList";
var jsonBody = new JObject
{
{ "SubjectInfo", "" },
{ "SiteId", "" },
{ "PageIndex", 1 },
{ "PageSize", 20 },
{ "VisitPlanArray", new JArray() },
{ "AuditStateArray", new JArray() },
{ "SubmitState", null },
{ "ChallengeState", null },
{ "BeginSubmitTime", null },
{ "EndSubmitTime", null },
{ "TrialId", "e4070000-3e2c-0016-2eb5-08db373d9ae2" }
};
var result = await RestHelper.Post_JsonBodyRequestAsync<ResponseOutput<PageOutput<ReadingTaskView>>>(url, jsonBody);
Assert.True(result.Code != ApiResponseCodeEnum.ApiInputError && result.Code != ApiResponseCodeEnum.ProgramException);
}
/// <summary>
/// IR 待阅任务列表
/// </summary>
[Fact]
public async void Test_getIRUnReadSubjectTaskList()
{
var url = $"/VisitTask/getIRUnReadSubjectTaskList";
var jsonBody = new JObject
{
{ "SubjectCode", "" },
{ "PageIndex", 1 },
{ "PageSize", 20 },
{ "TrialId", "c02a0000-3e2c-0016-cb0f-08db715ea9be" },
{ "TrialReadingCriterionId", "c02a0000-3e2c-0016-e8ae-08db715ea9e4" }
};
var result = await RestHelper.Post_JsonBodyRequestAsync<ResponseOutput<PageOutput<IRUnReadSubjectView>>>(url, jsonBody);
Assert.True(result.Code != ApiResponseCodeEnum.ApiInputError && result.Code != ApiResponseCodeEnum.ProgramException);
}
[Fact]
public async void Test_getIRHaveReadTaskList()
{
var url = $"/VisitTask/getIRHaveReadTaskList";
var jsonBody = new JObject
{
{ "SubjectCode", "" },
{ "SortField", "" },
{ "PageIndex", 1 },
{ "PageSize", 20 },
{ "TaskState", null },
{ "ReadingCategory", null },
{ "TrialId", "c02a0000-3e2c-0016-cb0f-08db715ea9be" },
{ "TrialReadingCriterionId", "c02a0000-3e2c-0016-e8ae-08db715ea9e4" }
};
var result = await RestHelper.Post_JsonBodyRequestAsync<ResponseOutput<PageOutput<IRHaveReadView>>>(url, jsonBody);
Assert.True(result.Code != ApiResponseCodeEnum.ApiInputError && result.Code != ApiResponseCodeEnum.ProgramException);
}
#endregion
public void Dispose()
{
// 在测试结束后释放资源(例如关闭网络连接等)
_client?.Dispose();
}
}

View File

@ -1,286 +0,0 @@
using System.Net;
using System.Text;
using System.Text.Json.Nodes;
using Azure.Core;
using BeetleX.Redis.Commands;
using EI_TestProject;
using IRaCIS.Application.Contracts;
using IRaCIS.Core.Application.Contracts;
using IRaCIS.Core.Application.ViewModel;
using IRaCIS.Core.Infrastructure;
using IRaCIS.Core.Infrastructure.Extention;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Org.BouncyCastle.Asn1.Crmf;
using Org.BouncyCastle.Asn1.Ocsp;
using RestSharp;
using Xunit;
using Xunit.Abstractions;
public class UserApiTests : IDisposable
{
private RestClient _client;
public UserApiTests()
{
// 创建一个 RestClient 对象,并设置基本 URL
//client = new RestClient("http://localhost:6100");
_client = RestHelper.InitRestHelper("http://123.56.94.154:8090/api", "Admin", MD5Helper.Md5("WHxckj@2019"));
}
/// <summary>
/// 添加系统用户
/// </summary>
[Fact]
public async void Test_AddUser()
{
var url = $"/user/addUser";
var jsonBody = new JObject
{
{ "UserName", "test_hang" },
{ "LastName", "zhou" },
{ "FirstName", "hang" },
{ "Sex", 1 },
{ "EMail", "872297557@qq.com" },
{ "Phone", "" },
{ "UserTypeId", "40240000-3e2c-0016-b35f-08db1895d627" },
{ "IsZhiZhun", "" },
{ "OrganizationName", "" },
{ "DepartmentName", "" },
{ "PositionName", "" },
{ "IsTestUser", true },
{ "UserTypeEnum", 1 },
{ "BaseUrl", "http://123.56.94.154:8090/login" },
{ "RouteUrl", "http://123.56.94.154:8090/email-recompose" },
{ "RealName", string.Empty }
};
var result = await RestHelper.Post_JsonBodyRequestAsync<ResponseOutput<UserAddedReturnDTO>>(url,jsonBody);
Assert.True(result.Code != ApiResponseCodeEnum.ApiInputError && result.Code != ApiResponseCodeEnum.ProgramException);
}
/// <summary>
/// 更新用户
/// </summary>
public async void Test_UpdateUser()
{
var url = $"/user/updateUser";
var jsonBody = new JObject
{
{ "CanEditUserType", false },
{ "Id", "d83f0000-3e2c-0016-2ed8-08db3f051caf" },
{ "UserName", "zhouhang" },
{ "Password", "e10adc3949ba59abbe56e057f20f883e" },
{ "RealName", "zhou / hang" },
{ "FirstName", "hang" },
{ "LastName", "zhou" },
{ "Sex", 1 },
{ "Status", 1 },
{ "Phone", "17673237815" },
{ "EMail", "872297557@qq.com" },
{ "UserTypeId", "40240000-3e2c-0016-b35f-08db1895d627" },
{ "UserCode", "U0178" },
{ "UserType", "PM (Project Manager)" },
{ "UserTypeShortName", "PM" },
{ "UserTypeEnum", 1 },
{ "IsZhiZhun", true },
{ "OrganizationName", "ExtImaging" },
{ "DepartmentName", "xx" },
{ "PositionName", "xx" },
{ "IsTestUser", false },
{ "BaseUrl", "http://123.56.94.154:8090/login" },
{ "RouteUrl", "http://123.56.94.154:8090/email-recompose" }
};
var result = await RestHelper.Post_JsonBodyRequestAsync<ResponseOutput<string>>(url, jsonBody);
Assert.True(result.Code != ApiResponseCodeEnum.ApiInputError && result.Code != ApiResponseCodeEnum.ProgramException);
}
/// <summary>
/// 查询系统用户
/// </summary>
[Fact]
public async void Test_GetUserList()
{
var url = $"/user/getUserList";
var jsonBody = new JObject
{
{ "RealName", string.Empty }
};
//测试删除Api
var result = await RestHelper.Post_JsonBodyRequestAsync<ResponseOutput<PageOutput<UserListDTO>>>(url, jsonBody);
Assert.True(result.Data.CurrentPageData.Count >= 0);
}
/// <summary>
/// 删除系统用户
/// </summary>
[Fact]
public async void Test_DeleteUser()
{
var userId = Guid.Parse("98430000-3e2c-0016-225f-08db7612c7ae");
var url = $"/user/deleteUser/{userId}";
//测试删除Api
var result = await RestHelper.DeleteRequestAsync<ResponseOutput<string>>(url);
Assert.True(result.Code != ApiResponseCodeEnum.ApiInputError && result.Code != ApiResponseCodeEnum.ProgramException);
}
/// <summary>
/// 角色
/// </summary>
[Fact]
public async void Test_GetUserTypeRoleList()
{
var url = $"/UserTypeRole/getUserTypeRoleList";
var jsonBody = new JObject
{
};
var result = await RestHelper.Post_JsonBodyRequestAsync<ResponseOutput<List<UserTypeRoleView>>>(url, jsonBody);
Assert.True(result.Data.Count >= 0);
}
/// <summary>
/// 匿名化配置
/// </summary>
[Fact]
public async void Test_getSystemAnonymizationList()
{
var url = $"/SystemAnonymization/getSystemAnonymizationList";
var jsonBody = new JObject
{
{ "Group", "" },
{ "Element", "" },
{ "TagDescription", "" },
{ "IsAdd", false },
{ "TagDescriptionCN", "" },
{ "PageIndex", 1 },
{ "PageSize", 500 }
};
var result = await RestHelper.Post_JsonBodyRequestAsync<ResponseOutput<PageOutput<SystemAnonymizationView>>>(url, jsonBody);
Assert.True(result.Data.CurrentPageData.Count >= 0);
}
/// <summary>
/// 删除匿名化配置
/// </summary>
[Fact]
public async void Test_DeleteSystemAnonymization()
{
var id = Guid.Parse("98430000-3e2c-0016-225f-08db7612c7ae");
var url = $"/SystemAnonymization/deleteSystemAnonymization/{id}";
//测试删除Api
var result = await RestHelper.DeleteRequestAsync<ResponseOutput<string>>(url);
Assert.True(result.Code != ApiResponseCodeEnum.ApiInputError && result.Code != ApiResponseCodeEnum.ProgramException);
}
/// <summary>
/// 更新 匿名化配置
/// </summary>
[Fact]
public async void Test_UpdateSystemAnonymization()
{
var url = $"/SystemAnonymization/addOrUpdateSystemAnonymization";
var jsonBody = new JObject
{
{ "CreateUserId", "e2e165a0-44b0-4b16-9a4d-0b9b7a1ce362" },
{ "UpdateTime", "2023-06-19 14:36:56" },
{ "UpdateUserId", "e2e165a0-44b0-4b16-9a4d-0b9b7a1ce362" },
{ "CreateTime", "2023-06-15 10:21:19" },
{ "Id", "640a0000-3e2c-0016-ae9b-08db6d4734c9" },
{ "Group", "1" },
{ "Element", "2" },
{ "TagDescription", "3" },
{ "TagDescriptionCN", "4" },
{ "ReplaceValue", "123" },
{ "ValueRepresentation", "5" },
{ "IsAdd", false },
{ "IsEnable", true },
{ "IsFixed", true }
};
var result = await RestHelper.Post_JsonBodyRequestAsync<ResponseOutput<string>>(url, jsonBody);
Assert.True(result.Code != ApiResponseCodeEnum.ApiInputError && result.Code != ApiResponseCodeEnum.ProgramException);
}
/// <summary>
/// 更新 匿名化配置
/// </summary>
[Fact]
public async void Test_AddSystemAnonymization()
{
var url = $"/SystemAnonymization/addOrUpdateSystemAnonymization";
var jsonBody = new JObject
{
{ "Group", "0010" },
{ "Element", "0021" },
{ "TagDescription", "test" },
{ "TagDescriptionCN", "test" },
{ "ValueRepresentation", "test" },
{ "ReplaceValue", "test" },
{ "IsEnable", false },
{ "IsAdd", false },
{ "IsFixed", false }
};
var result = await RestHelper.Post_JsonBodyRequestAsync<ResponseOutput<string>>(url, jsonBody);
Assert.True(result.Code != ApiResponseCodeEnum.ApiInputError && result.Code != ApiResponseCodeEnum.ProgramException);
}
public void Dispose()
{
// 在测试结束后释放资源(例如关闭网络连接等)
_client?.Dispose();
}
}

View File

@ -6,6 +6,7 @@ using Newtonsoft.Json;
using RestSharp;
using System.Net;
using IRaCIS.Application.Contracts;
using System.Security.Policy;
namespace EI_TestProject
{
@ -59,8 +60,10 @@ namespace EI_TestProject
/// <param name="isAddToken"></param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
public static async Task<T> Post_JsonBodyRequestAsync<T>(string url, JObject jsonBody, bool isAddToken = true)
public static async Task<T> Post_JsonBodyRequestAsync<T>(string url, object jsonBody, bool isAddToken = true, RestClient? restClient=null)
{
var client = restClient ?? _client;
var request = new RestRequest(url, Method.Post);
if (isAddToken)
@ -71,7 +74,7 @@ namespace EI_TestProject
request.AddParameter("application/json", jsonBody.ToString(), ParameterType.RequestBody);
var response = await _client.ExecuteAsync(request);
var response = await client.ExecuteAsync(request);
if (response.StatusCode == HttpStatusCode.OK)
{
return JsonConvert.DeserializeObject<T>(response.Content);
@ -82,6 +85,33 @@ namespace EI_TestProject
}
}
public static async Task<T> Put_JsonBodyRequestAsync<T>(string url, JObject jsonBody, bool isAddToken = true, RestClient? restClient = null)
{
var client = restClient ?? _client;
var request = new RestRequest(url, Method.Put);
if (isAddToken)
{
var accessToken = _token;
request.AddHeader("Authorization", "Bearer " + accessToken);
}
request.AddParameter("application/json", jsonBody.ToString(), ParameterType.RequestBody);
var response = await client.ExecuteAsync(request);
if (response.StatusCode == HttpStatusCode.OK)
{
return JsonConvert.DeserializeObject<T>(response.Content);
}
else
{
throw new Exception($"Error {response.StatusCode}: {response.StatusDescription}. {response.Content}");
}
}
/// <summary>
/// URL Delete ÇëÇó·â×°
/// </summary>
@ -107,5 +137,23 @@ namespace EI_TestProject
}
public static async Task<T> GetRequestAsync<T>(string url)
{
var request = new RestRequest(url, Method.Get);
var accessToken = _token;
request.AddHeader("Authorization", "Bearer " + accessToken);
var response = await _client.ExecuteAsync(request);
if (response.StatusCode == HttpStatusCode.OK)
{
return JsonConvert.DeserializeObject<T>(response.Content);
}
else
{
throw new Exception($"Error {response.StatusCode}: {response.StatusDescription}. {response.Content}");
}
}
}
}