//Would be revisiting to modify the actual way of call method. public void CaseHistoryControllerTest_Success() { // Arrange LidTypeEnum LIDType = LidTypeEnum.CustomerNbr; string LID = ""; PaginationCaseHistory page = new PaginationCaseHistory(); string ExtraId = null; int lid = 648988; int CaseID = 8715123; MockCaseHistoryRepository mockCaseHistoryRepository = new MockCaseHistoryRepository(); ApiResult <GenericPaginationResponse <Wp.CIS.LynkSystems.Model.CaseHistory> > expectedResult = mockCaseHistoryRepository.GetMockData(lid); IOptions <DataContext> optionsAccessor = Substitute.For <IOptions <DataContext> >(); IDatabaseConnectionFactory connectionFactory = Substitute.For <IDatabaseConnectionFactory>(); ICaseHistoryRepository mockRepo = Substitute.For <ICaseHistoryRepository>(); mockRepo.GetCaseHistoryInfo(LIDType, LID, ExtraId, page).ReturnsForAnyArgs(expectedResult.Result); // Act var caseHistory = mockRepo.GetCaseHistoryInfo(LIDType, "648988", ExtraId, page).Result; var actualRecord = (IList <Wp.CIS.LynkSystems.Model.CaseHistory>)caseHistory.ReturnedRecords; string caseInfo = actualRecord.Where(x => x.caseId == CaseID).FirstOrDefault().caseLevel; //// Assert Assert.Equal(((IList <Wp.CIS.LynkSystems.Model.CaseHistory>)actualRecord).Count, 6); Assert.Equal(caseInfo, "Customer"); }
public async Task CaseHistoryApiTest_Exception() { // Arrange LidTypeEnum LIDType = LidTypeEnum.CustomerNbr; string LID = ""; PaginationCaseHistory page = new PaginationCaseHistory(); int lid = 648988; string ExtraId = null; MockCaseHistoryRepository mockCaseHistoryRepository = new MockCaseHistoryRepository(); ApiResult <GenericPaginationResponse <Wp.CIS.LynkSystems.Model.CaseHistory> > expectedResult = mockCaseHistoryRepository.GetMockData(lid); IOptions <Settings> optionsAccessor = Substitute.For <IOptions <Settings> >(); ICaseHistoryRepository mockRepo = Substitute.For <ICaseHistoryRepository>(); ICaseHistoryApi casehistoryApi = Substitute.For <ICaseHistoryApi>(); IDistributedCache mockCache = Substitute.For <IDistributedCache>(); mockRepo.GetCaseHistoryInfo(LIDType, LID, ExtraId, page).Throws(new Exception()); casehistoryApi = new CaseHistoryApi(optionsAccessor, mockRepo); //Assert await Assert.ThrowsAsync <Exception>(() => casehistoryApi.GetCaseHistory(LIDType, LID, ExtraId, page)); }
private CaseHistoryInput GetCaseHistoryObject() { CaseHistoryInput pageInput = new CaseHistoryInput(); pageInput.lidTypeEnum = Wp.CIS.LynkSystems.Model.Enums.LidTypeEnum.Terminal; pageInput.LIDValue = "123456"; PaginationCaseHistory page = new PaginationCaseHistory(); page.FilterCaseLevel = "Term"; page.PageSize = 100; page.SortField = "CASEID"; page.SortFieldByAsc = true; pageInput.Page = page; return(pageInput); }
public async Task <IActionResult> Get([FromBody] CaseHistoryInput pageinput) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } try { LidTypeEnum LIDType = pageinput.lidTypeEnum; string LID = pageinput.LIDValue; string ExtraId = pageinput.ExtraID; PaginationCaseHistory page = pageinput.Page; var key = _localizer["UniqueKey"] + "_" + LID; if (page.SkipRecordNumber > 0) { key = key + "_" + page.SkipRecordNumber; } var result = (await _caseHistory.GetCaseHistory(LIDType, LID, ExtraId, page)); if (result.Result != null && result.Result.TotalNumberOfRecords > 0) { await _operation.AddCacheAsync(key, result.Result); return(Ok(result.Result)); } else { var msg = this._localizer["NoDataFound"]?.Value; result.Result.ModelMessage = msg; return(Ok(result.Result)); } } catch (Exception ex) { var msg = this._localizer?["InternalServerError"]?.Value; await _loggingFacade.LogExceptionAsync(ex, this.HttpContext?.Request?.Headers["UserName"], LogLevels.Error, "Error in CaseHistoryGet()", CancellationToken.None); return(this.StatusCode((int)System.Net.HttpStatusCode.InternalServerError, msg)); } }
public async Task <GenericPaginationResponse <Wp.CIS.LynkSystems.Model.CaseHistory> > GetCaseHistoryInfo(LidTypeEnum lidtype, string lid, string extraId, PaginationCaseHistory page) { try { var response = new GenericPaginationResponse <Wp.CIS.LynkSystems.Model.CaseHistory>(); return(await this._connectionFactory.GetConnection(async c => { var p = new DynamicParameters(); p.Add("LIDType", lidtype, DbType.Int32); p.Add("LID", lid, DbType.String); p.Add("MaximumRecsLimit", maxrecordslimit, DbType.String); if (extraId != null) { p.Add("ExtraID", extraId, DbType.String); } p.Add("PageSize", page.PageSize, DbType.Int32); p.Add("SkipRecords", page.SkipRecordNumber, DbType.Int32); if (page.SortField != null) { p.Add("SortField", page.SortField, DbType.String); } p.Add("SortOrder", page.SortFieldByAsc, DbType.Boolean); if (page.FilterCaseId != null) { p.Add("FilterCaseId", page.FilterCaseId, DbType.String); } if (page.FilterCaseDesc != null) { p.Add("FilterCaseDesc", page.FilterCaseDesc, DbType.String); } if (page.FilterOrgDeptName != null) { p.Add("FilterOrgDeptName", page.FilterOrgDeptName, DbType.String); } if (page.FilterCaseLevel != null) { p.Add("FilterCaseLevel", page.FilterCaseLevel, DbType.String); } if (true == page.FilterCreateDate.HasValue) { var beginCreateDate = new DateTime(page.FilterCreateDate.Value.Year, page.FilterCreateDate.Value.Month, page.FilterCreateDate.Value.Day); var endCreateDate = new DateTime(page.FilterCreateDate.Value.Year, page.FilterCreateDate.Value.Month, page.FilterCreateDate.Value.Day, 23, 59, 59); p.Add("FilterBeginCreateDate", beginCreateDate, DbType.Date); p.Add("FilterEndCreateDate", endCreateDate, DbType.Date); } p.Add("TotalRecords", DbType.Int32, direction: ParameterDirection.Output); response.ReturnedRecords = await c.QueryAsync <Wp.CIS.LynkSystems.Model.CaseHistory>(sql: "CISPlus.uspCISPlusGetCaseHistoryRecords", param: p, commandType: CommandType.StoredProcedure); response.TotalNumberOfRecords = p.Get <int>("TotalRecords"); return response; })); } catch (System.Exception) { throw; } }
public async Task <ApiResult <GenericPaginationResponse <CaseHistory> > > GetCaseHistory(LidTypeEnum lidtype, string lid, string extraId, PaginationCaseHistory page) { ApiResult <GenericPaginationResponse <CaseHistory> > response = new ApiResult <GenericPaginationResponse <CaseHistory> >(); try { response.Result = await _casehistoryrepository.GetCaseHistoryInfo(lidtype, lid, extraId, page); } catch (Exception) { throw; } return(response); }