public async Task GetCaseworkerByCaseworkerIdFails() { //Arrange var helperHttpClientMoq = new Mock <ICaseworkerHttpClientHelper>(); var configurationMoq = new Mock <IConfiguration>(); var id = It.IsAny <string>(); var context = GetContext(); var response = new CaseworkerDataResponseModel(id, It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>()); var error = new Error("123456", new string[] { "Caseworker data with the supplied caseworkerId is not found" }, "MCA"); helperHttpClientMoq.Setup(x => x.GetCaseworkerDataByCaseworkerIdFromMomentumCoreAsync($"employees/{id}")) .Returns(Task.FromResult(new ResultOrHttpError <string, Error>(error, HttpStatusCode.BadRequest))); var caseWorkerService = new CaseworkerService(helperHttpClientMoq.Object, configurationMoq.Object, context.Object); //Act var result = await caseWorkerService.GetCaseworkerByIdAsync(id).ConfigureAwait(false); //Asert result.IsError.Should().BeTrue(); result.Error.Errors[0].Should().Be("Caseworker data with the supplied caseworkerId is not found"); }
public async Task GetCaseworkerByCaseworkerIdSuccess() { //Arrange var helperHttpClientMoq = new Mock <ICaseworkerHttpClientHelper>(); var configurationMoq = new Mock <IConfiguration>(); var id = It.IsAny <string>(); var context = GetContext(); var response = new CaseworkerDataResponseModel(id, It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>()); var responseData = JsonConvert.SerializeObject(response); helperHttpClientMoq.Setup(x => x.GetCaseworkerDataByCaseworkerIdFromMomentumCoreAsync($"employees/{id}")) .Returns(Task.FromResult(new ResultOrHttpError <string, Error>(responseData))); var caseWorkerService = new CaseworkerService(helperHttpClientMoq.Object, configurationMoq.Object, context.Object); //Act var result = await caseWorkerService.GetCaseworkerByIdAsync(id).ConfigureAwait(false); //Asert result.Should().NotBeNull(); result.IsError.Should().BeFalse(); result.Result.Should().BeEquivalentTo(response); }
public async Task <ResultOrHttpError <CaseworkerDataResponseModel, Error> > GetCaseworkerByIdAsync(string id) { var response = await _caseworkerHttpClient.GetCaseworkerDataByCaseworkerIdFromMomentumCoreAsync($"employees/{id}").ConfigureAwait(false); if (response.IsError) { var error = response.Error.Errors.Aggregate((a, b) => a + "," + b); Log.ForContext("CorrelationId", _correlationId) .ForContext("Client", _clientId) .ForContext("CaseworkerId", id) .Error("An error occured while retrieving caseworker data by CaseworkerId" + error); return(new ResultOrHttpError <CaseworkerDataResponseModel, Error>(response.Error, response.StatusCode.Value)); } var content = response.Result; var caseworkerDataObj = JsonConvert.DeserializeObject <CaseworkerData>(content); var dataToReturn = new CaseworkerDataResponseModel(caseworkerDataObj.Id, caseworkerDataObj.DisplayName, caseworkerDataObj.GivenName, caseworkerDataObj.MiddleName, caseworkerDataObj.Initials, caseworkerDataObj.Email?.Address, caseworkerDataObj.Phone?.Number, caseworkerDataObj.CaseworkerIdentifier, caseworkerDataObj.Description, caseworkerDataObj.IsActive, caseworkerDataObj.IsBookable); Log.ForContext("CorrelationId", _correlationId) .ForContext("Client", _clientId) .ForContext("CaseworkerId", caseworkerDataObj.Id) .Information("The caseworker details by CaseworkerId has been returned successfully"); return(new ResultOrHttpError <CaseworkerDataResponseModel, Error>(dataToReturn)); }
public async Task <ResultOrHttpError <CaseworkerList, Error> > GetAllCaseworkerDataFromMomentumCoreAsync(string path, int pageNumber) { var pageSize = 100; pageNumber = pageNumber == 0 ? 1 : pageNumber; List <CaseworkerDataResponseModel> totalRecords = new List <CaseworkerDataResponseModel>(); var queryStringParams = $"pagingInfo.pageNumber={pageNumber}&pagingInfo.pageSize={pageSize}"; var response = await _meaClient.GetAsync(path + "?" + queryStringParams).ConfigureAwait(false); if (response.IsError) { return(new ResultOrHttpError <CaseworkerList, Error>(response.Error, response.StatusCode.Value)); } var content = response.Result; var caseworkerDataObj = JsonConvert.DeserializeObject <PUnitData>(content); var records = caseworkerDataObj.Data; foreach (var item in records) { var dataToReturn = new CaseworkerDataResponseModel(item.Id, item.DisplayName, item.GivenName, item.MiddleName, item.Initials, item.Email?.Address, item.Phone?.Number, item.CaseworkerIdentifier, item.Description, item.IsActive, item.IsBookable); totalRecords.Add(dataToReturn); } var responseData = new CaseworkerList() { PageNo = pageNumber, TotalNoOfPages = caseworkerDataObj.TotalPages, TotalSearchCount = caseworkerDataObj.TotalSearchCount, Result = totalRecords }; return(new ResultOrHttpError <CaseworkerList, Error>(responseData)); }