diff --git a/EI_TestProject/APITest.cs b/EI_TestProject/APITest.cs new file mode 100644 index 00000000..bf079ad3 --- /dev/null +++ b/EI_TestProject/APITest.cs @@ -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 用户 用户类型 + /// + /// 添加系统用户 + /// + [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>(url, jsonBody); + + + Assert.True(result.Code != ApiResponseCodeEnum.ApiInputError && result.Code != ApiResponseCodeEnum.ProgramException); + } + + /// + /// 更新用户 + /// + [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>(url, jsonBody); + + + Assert.True(result.Code != ApiResponseCodeEnum.ApiInputError && result.Code != ApiResponseCodeEnum.ProgramException); + } + + + /// + /// 重置密码 + /// + [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>(url); + + Assert.True(result.Code != ApiResponseCodeEnum.ApiInputError && result.Code != ApiResponseCodeEnum.ProgramException); + + } + + /// + /// 查询系统用户 + /// + [Fact] + public async void Test_GetUserList() + { + var url = $"/user/getUserList"; + + var jsonBody = new JObject + { + { "RealName", string.Empty } + }; + + //测试删除Api + var result = await RestHelper.Post_JsonBodyRequestAsync>>(url, jsonBody); + + Assert.True(result.Data.CurrentPageData.Count >= 0); + } + + + + /// + /// 删除系统用户 + /// + [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>(url); + + Assert.True(result.Code != ApiResponseCodeEnum.ApiInputError && result.Code != ApiResponseCodeEnum.ProgramException); + } + + + /// + /// 角色 + /// + [Fact] + public async void Test_GetUserTypeRoleList() + { + var url = $"/UserTypeRole/getUserTypeRoleList"; + var jsonBody = new JObject + { + + }; + + var result = await RestHelper.Post_JsonBodyRequestAsync>>(url, jsonBody); + + Assert.True(result.Data.Count >= 0); + } + + #endregion + + + #region 匿名化 + /// + /// 匿名化配置 + /// + [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>>(url, jsonBody); + + Assert.True(result.Data.CurrentPageData.Count >= 0); + } + + + + /// + /// 删除匿名化配置 + /// + [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>(url); + + Assert.True(result.Code != ApiResponseCodeEnum.ApiInputError && result.Code != ApiResponseCodeEnum.ProgramException); + } + + + /// + /// 更新 匿名化配置 + /// + [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>(url, jsonBody); + + + Assert.True(result.Code != ApiResponseCodeEnum.ApiInputError && result.Code != ApiResponseCodeEnum.ProgramException); + } + + + /// + /// 添加 匿名化配置 + /// + [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>(url, jsonBody); + + + Assert.True(result.Code != ApiResponseCodeEnum.ApiInputError && result.Code != ApiResponseCodeEnum.ProgramException); + } + #endregion + + + #region 项目 + + /// 查询系项目列表 + /// + [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>>>(url, jsonBody); + + Assert.True(result.Data.CurrentPageData.Count >= 0); + } + + + + /// + /// 更新项目 + /// + [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>(url, jsonBody,restClient: pmclient); + + + Assert.True(result.Code != ApiResponseCodeEnum.ApiInputError && result.Code != ApiResponseCodeEnum.ProgramException); + } + + /// + /// 添加项目 + /// + /// + [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>(url, jsonBody, restClient: pmclient); + + + Assert.True(result.Code != ApiResponseCodeEnum.ApiInputError && result.Code != ApiResponseCodeEnum.ProgramException); + } + + /// + /// 删除项目 + /// + [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>(url, jsonBody); + + + Assert.True(result.Code != ApiResponseCodeEnum.ApiInputError && result.Code != ApiResponseCodeEnum.ProgramException); + } + + #endregion + + + #region 患者 + + /// + /// 查询患者列表 + /// + [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>>>(url, jsonBody); + + Assert.True(result.Data.CurrentPageData.Count >= 0); + } + + /// + /// 添加患者 + /// + [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>(url, jsonBody); + + + Assert.True(result.Code != ApiResponseCodeEnum.ApiInputError && result.Code != ApiResponseCodeEnum.ProgramException); + } + + /// + /// 更新患者 + /// + [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>(url, jsonBody); + + + Assert.True(result.Code != ApiResponseCodeEnum.ApiInputError && result.Code != ApiResponseCodeEnum.ProgramException); + } + + /// + /// 删除患者 + /// + + [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>(url); + + Assert.True(result.Code != ApiResponseCodeEnum.ApiInputError && result.Code != ApiResponseCodeEnum.ProgramException); + } + + + #endregion + + + #region 参与人员 + /// + /// 查询参与人员列表 + /// + [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>>(url, jsonBody); + + Assert.True(result.Data.CurrentPageData.Count >= 0); + } + + + /// + /// 查询参与人员列表 + /// + [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>>(url, jsonBody); + + Assert.True(result.Data.CurrentPageData.Count >= 0); + } + + + + /// + /// 添加参与人员 + /// + [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>(url, jsonBody); + + + Assert.True(result.Code != ApiResponseCodeEnum.ApiInputError && result.Code != ApiResponseCodeEnum.ProgramException); + } + + + /// + /// 更新项目参与用户 + /// + [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>(url, jsonBody,restClient: pmclient); + + + Assert.True(result.Code != ApiResponseCodeEnum.ApiInputError && result.Code != ApiResponseCodeEnum.ProgramException); + } + + + #endregion + + + #region 任务 和阅片 + + + /// + /// 阅片任务分配列表 + /// + [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>>(url, jsonBody); + + Assert.True(result.Data.CurrentPageData.Count >= 0); + } + + /// + /// 阅片任务分配给阅片人 + /// + [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>>(url, jsonBody); + + Assert.True(result.Code != ApiResponseCodeEnum.ApiInputError && result.Code != ApiResponseCodeEnum.ProgramException); + } + + + + /// + /// 获取可分配阅片人列表 + /// + + [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>>(url, jsonBody); + + Assert.True(result.Data.Count >= 0); + } + + + /// + /// 取消分配的阅片人 + /// + [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>>(url, jsonBody); + + Assert.True(result.Code != ApiResponseCodeEnum.ApiInputError && result.Code != ApiResponseCodeEnum.ProgramException); + } + + + /// + /// 患者检查列表 + /// + [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>>(url, jsonBody); + + Assert.True(result.Code != ApiResponseCodeEnum.ApiInputError && result.Code != ApiResponseCodeEnum.ProgramException); + } + + /// + ///阅片跟踪列表 + /// + [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>>(url, jsonBody); + + Assert.True(result.Code != ApiResponseCodeEnum.ApiInputError && result.Code != ApiResponseCodeEnum.ProgramException); + } + + /// + /// IR 待阅任务列表 + /// + [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>>(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>>(url, jsonBody); + + Assert.True(result.Code != ApiResponseCodeEnum.ApiInputError && result.Code != ApiResponseCodeEnum.ProgramException); + } + + + #endregion + + + public void Dispose() + { + // 在测试结束后释放资源(例如关闭网络连接等) + _client?.Dispose(); + } +} \ No newline at end of file diff --git a/EI_TestProject/APITest_User_UserType_Menu.cs b/EI_TestProject/APITest_User_UserType_Menu.cs deleted file mode 100644 index 127b89b4..00000000 --- a/EI_TestProject/APITest_User_UserType_Menu.cs +++ /dev/null @@ -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")); - - } - - - /// - /// 添加系统用户 - /// - [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>(url,jsonBody); - - - Assert.True(result.Code != ApiResponseCodeEnum.ApiInputError && result.Code != ApiResponseCodeEnum.ProgramException); - } - - /// - /// 更新用户 - /// - 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>(url, jsonBody); - - - Assert.True(result.Code != ApiResponseCodeEnum.ApiInputError && result.Code != ApiResponseCodeEnum.ProgramException); - } - - /// - /// 查询系统用户 - /// - [Fact] - public async void Test_GetUserList() - { - var url = $"/user/getUserList"; - - var jsonBody = new JObject - { - { "RealName", string.Empty } - }; - - //测试删除Api - var result = await RestHelper.Post_JsonBodyRequestAsync>>(url, jsonBody); - - Assert.True(result.Data.CurrentPageData.Count >= 0); - } - - - - /// - /// 删除系统用户 - /// - [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>(url); - - Assert.True(result.Code != ApiResponseCodeEnum.ApiInputError && result.Code != ApiResponseCodeEnum.ProgramException); - } - - - /// - /// 角色 - /// - [Fact] - public async void Test_GetUserTypeRoleList() - { - var url = $"/UserTypeRole/getUserTypeRoleList"; - var jsonBody = new JObject - { - - }; - - var result = await RestHelper.Post_JsonBodyRequestAsync>>(url, jsonBody); - - Assert.True(result.Data.Count >= 0); - } - - - /// - /// 匿名化配置 - /// - [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>>(url, jsonBody); - - Assert.True(result.Data.CurrentPageData.Count >= 0); - } - - - - /// - /// 删除匿名化配置 - /// - [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>(url); - - Assert.True(result.Code != ApiResponseCodeEnum.ApiInputError && result.Code != ApiResponseCodeEnum.ProgramException); - } - - - /// - /// 更新 匿名化配置 - /// - [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>(url, jsonBody); - - - Assert.True(result.Code != ApiResponseCodeEnum.ApiInputError && result.Code != ApiResponseCodeEnum.ProgramException); - } - - - /// - /// 更新 匿名化配置 - /// - [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>(url, jsonBody); - - - Assert.True(result.Code != ApiResponseCodeEnum.ApiInputError && result.Code != ApiResponseCodeEnum.ProgramException); - } - - - - - - - - public void Dispose() - { - // 在测试结束后释放资源(例如关闭网络连接等) - _client?.Dispose(); - } -} \ No newline at end of file diff --git a/EI_TestProject/RestHelper.cs b/EI_TestProject/RestHelper.cs index 99c3835d..6165641c 100644 --- a/EI_TestProject/RestHelper.cs +++ b/EI_TestProject/RestHelper.cs @@ -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 /// /// /// - public static async Task Post_JsonBodyRequestAsync(string url, JObject jsonBody, bool isAddToken = true) + public static async Task Post_JsonBodyRequestAsync(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(response.Content); @@ -82,6 +85,33 @@ namespace EI_TestProject } } + + public static async Task Put_JsonBodyRequestAsync(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(response.Content); + } + else + { + throw new Exception($"Error {response.StatusCode}: {response.StatusDescription}. {response.Content}"); + } + } + + /// /// URL Delete 请求封装 /// @@ -107,5 +137,23 @@ namespace EI_TestProject } + public static async Task GetRequestAsync(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(response.Content); + } + else + { + throw new Exception($"Error {response.StatusCode}: {response.StatusDescription}. {response.Content}"); + } + } + + } } \ No newline at end of file