public static void SendAndVerifyMergeRequest(HrbcRecordCreator record, MergeManager mergeHandler, ResourceId resourceId, int baseIndex, int mergeIndex, bool IsValidRequest = true) { var requestContent = new Dictionary <string, object>() { ["baseId"] = record.Data[$"{resourceId}{baseIndex}"].Id, ["mergedId"] = new List <ulong>() { record.Data[$"{resourceId}{mergeIndex}"].Id }, ["mapping"] = GetMapping(resourceId, record.Data[$"{resourceId}{baseIndex}"].Id, record.Data[$"{ResourceId.Client}{baseIndex}"].Id), }; var response = mergeHandler.MergeRecords <MergeResponse>(resourceId, requestContent, System.Net.Http.HttpMethod.Post); if (IsValidRequest) { PrAssert.That(response, PrIs.SuccessfulResponse()); PrAssert.That(response.Result.Id, PrIs.Not.Null); LoopAndVerifyCompleteMerge(response.Result.Id); } else { PrAssert.That(response, PrIs.ErrorResponse().With.HttpCode((int)HttpStatusCode.BadRequest)); PrAssert.That(response.Errors.Code, PrIs.EqualTo((int)ResultCode.InvalidParameter)); PrAssert.That(response.Errors.Error, PrIs.EqualTo("Invalid Parameter.")); } }
public void MergeInvalid(ResourceId resourceId, InvalidTestCases inputType, Parameters parameter) { var mergeRequest = GetParameters(resourceId, inputType, parameter); var mergeHandler = new MergeManager(); var response = mergeHandler.MergeRecords <MergeResponse>(resourceId, mergeRequest, System.Net.Http.HttpMethod.Post); PrAssert.That(response, PrIs.ErrorResponse().And.HttpCode(System.Net.HttpStatusCode.BadRequest)); }
public void MergeInjection(ResourceId resourceId, InjectionInput injection, Parameters parameter) { var mergeRequest = GetDefaultParameters(resourceId); mergeRequest[Char.ToLowerInvariant(parameter.ToString()[0]) + parameter.ToString().Substring(1)] = InjectionInputData.InjectionInputMapper[injection]; var mergeHandler = new MergeManager(); var response = mergeHandler.MergeRecords <MergeResponse>(resourceId, mergeRequest, System.Net.Http.HttpMethod.Post); PrAssert.That(response, PrIs.ErrorResponse().And.HttpCode(System.Net.HttpStatusCode.BadRequest)); }
public void MergeValid(ResourceId resourceId, ValidTestCases inputType) { var mergeRequest = GetParameters(resourceId, inputType); var mergeHandler = new MergeManager(); var response = mergeHandler.MergeRecords <MergeResponse>(resourceId, mergeRequest, HttpMethod.Post); PrAssert.That(response, PrIs.SuccessfulResponse().And.HttpCode(System.Net.HttpStatusCode.OK)); //Waiting for merge task successed before verifing data Assert.That(GetQueueMergeStatus(response.Result.Id.ToString()), "The merging is not finished yet!"); //Verify data VerifyData(resourceId, inputType); }
public void MergeByOtherHttpMethod(HttpMethod inputType) { var mergeRequest = GetDefaultParameters(ResourceId.Client); var httpMethod = new Dictionary <HttpMethod, System.Net.Http.HttpMethod>() { [HttpMethod.GET] = System.Net.Http.HttpMethod.Get, [HttpMethod.DELETE] = System.Net.Http.HttpMethod.Delete, [HttpMethod.PUT] = System.Net.Http.HttpMethod.Put, }; var mergeHandler = new MergeManager(); var response = mergeHandler.MergeRecords <MergeResponse>(ResourceId.Client, mergeRequest, httpMethod[inputType]); PrAssert.That(response, PrIs.ErrorResponse().And.HttpCode(System.Net.HttpStatusCode.BadRequest)); }
public void MergeInvalidCommon(ResourceId resourceId, InvalidCommonTestCases inputType) { var parameters = GetDefaultParameters(resourceId); switch (inputType) { case InvalidCommonTestCases.AdditonalDuplicateId: parameters["baseId"] = GetRecordId(resourceId, 3); parameters["mergedId"] = GetRecordId(resourceId, 4); parameters["duplicateId"] = GetRecordId(resourceId, 5); break; case InvalidCommonTestCases.NoneExistedField: parameters["baseId"] = GetRecordId(resourceId, 6); parameters["mergedId"] = GetRecordId(resourceId, 7); parameters["mapping"] = GetMapping(resourceId, $"{resourceId.ToString()}.P_NonExistField", "TEST"); break; case InvalidCommonTestCases.NoneExistedResource: parameters["baseId"] = GetRecordId(resourceId, 8); parameters["mergedId"] = GetRecordId(resourceId, 9); parameters["mapping"] = GetMapping(resourceId, $"Resource.P_Zipcode", "000-0000"); break; case InvalidCommonTestCases.WrongResource: parameters["baseId"] = GetRecordId(resourceId, 10); parameters["mergedId"] = GetRecordId(resourceId, 11); parameters["mapping"] = GetMapping(resourceId, $"Job.P_Zipcode", "000-0000"); break; case InvalidCommonTestCases.ReverseField: parameters["baseId"] = GetRecordId(resourceId, 12); parameters["mergedId"] = GetRecordId(resourceId, 13); parameters["mapping"] = GetMapping(resourceId, $"{resourceId.ToString()}.P_Zipcode", "{\"" + resourceId.ToString() + ".P_Zipcode\": \"000 - 0000\"}"); break; } var mergeHandler = new MergeManager(); var response = mergeHandler.MergeRecords <MergeResponse>(resourceId, parameters, System.Net.Http.HttpMethod.Post); PrAssert.That(response, PrIs.ErrorResponse().And.HttpCode(System.Net.HttpStatusCode.BadRequest)); }
public void DeletedIds(TestCoreFramework.Enums.ResourceType resourceId) { var baseId = DeletedRecord.Data[resourceId.ToPrivateApiResource()].Ids[0][0]; var mergeId = DeletedRecord.Data[resourceId.ToPrivateApiResource()].Ids[1][0]; var clientId = DeletedRecord.Data[ResourceId.Client].Ids[0][0]; var requestContent = new Dictionary <string, object>() { ["baseId"] = baseId, ["mergedId"] = new List <int>() { mergeId }, ["mapping"] = Common.GetMapping(resourceId.ToPrivateApiResource(), (ulong)baseId, (ulong)clientId), }; MergeManager mergeHandler = new MergeManager(); var response = mergeHandler.MergeRecords <MergeResponse>(resourceId.ToPrivateApiResource(), requestContent, System.Net.Http.HttpMethod.Post); PrAssert.That(response, PrIs.ErrorResponse().With.HttpCode((int)HttpStatusCode.BadRequest)); PrAssert.That(response.Errors.Code, PrIs.EqualTo((int)ResultCode.InvalidParameter)); PrAssert.That(response.Errors.Error, PrIs.EqualTo("Invalid Parameter.")); }
public void MergeDeletedId(ResourceId resourceId, Parameters parameter) { var parameters = GetDefaultParameters(resourceId); switch (parameter) { case Parameters.MergedId: parameters["mergedId"] = PrepareDeletedIdsData.Data[resourceId].Ids[0][0].ToString(); break; case Parameters.BaseId: parameters["baseId"] = PrepareDeletedIdsData.Data[resourceId].Ids[0][0].ToString(); parameters["mergedId"] = PrepareDeletedIdsData.Data[resourceId].Ids[1][0].ToString(); parameters["mapping"] = GetMapping(resourceId, $"{resourceId.ToString()}.P_Id", PrepareDeletedIdsData.Data[resourceId].Ids[0][0].ToString()); break; } var mergeHandler = new MergeManager(); var response = mergeHandler.MergeRecords <MergeResponse>(resourceId, parameters, System.Net.Http.HttpMethod.Post); PrAssert.That(response, PrIs.ErrorResponse().And.HttpCode(System.Net.HttpStatusCode.BadRequest)); }