public async Task TerminalDetailsControllerTest_TerminalSuccess() { // Arrange int lid = 589547; MockTerminalDetailsInfoRepository repository = new MockTerminalDetailsInfoRepository(); var expectedResult = repository.GetMockTerminalDetails(); ITerminalDetailsRepository mockRepo = FakeRepository(); IDistributedCache _cache = FakeCache(); IOperation fakeOperation = FakeOperation(_cache); ILoggingFacade fakeLogger = FakeLogger(); ITerminalDetailsApi dAPI = Substitute.For <ITerminalDetailsApi>(); dAPI.GetTerminalDetails(lid).ReturnsForAnyArgs(expectedResult); TerminalDetailsController controller = FakeController(dAPI, _cache, fakeOperation, fakeLogger); // Act var dinfo = await controller.GetTerminalDetails(lid); var actualRecord = ((Microsoft.AspNetCore.Mvc.ObjectResult)dinfo).Value; // Assert Assert.Equal(((Wp.CIS.LynkSystems.Model.EAndPData)actualRecord), expectedResult.Result); }
public async Task <IActionResult> GetTerminalDetails(int termNbr) { await _loggingFacade.LogAsync(new LogEntry(LogLevels.Info, "Starting GetTerminalDetails " + termNbr, "TerminalDetailsController.cs", "GetTerminalDetails"), CancellationToken.None); if (!ModelState.IsValid) { await _loggingFacade.LogAsync(new LogEntry(LogLevels.Error, ModelState.ToString(), "TerminalDetailsController.cs", "GetTerminalDetails"), CancellationToken.None); return(BadRequest(ModelState)); } try { string key = "terminalDetails_" + termNbr.ToString(); var data = _operation.RetrieveCache(key, new EAndPData()); if (data == null) { //since no data in cache, now get data from DB var result = _terminalDetailsApi.GetTerminalDetails(termNbr); data = result.Result; //Now add data to cache.. await _operation.AddCacheAsync(key, data); } if (data == null) { var msg = this._localizer["NoDataFound"]?.Value; await _loggingFacade.LogAsync(new LogEntry(LogLevels.Error, msg, "TerminalDetailsController.cs", "GetTerminalDetails"), CancellationToken.None); return(this.StatusCode((int)System.Net.HttpStatusCode.OK, msg)); } await _loggingFacade.LogAsync(new LogEntry(LogLevels.Info, "GetTerminalDetails Successful", "TerminalDetailsController.cs", "GetTerminalDetails"), CancellationToken.None); return(Ok(data)); } catch (Exception ex) { var msg = this._localizer?["GenericError"]?.Value; await _loggingFacade.LogExceptionAsync(ex, this.HttpContext?.Request?.Headers["UserName"], LogLevels.Error, "Error in GetTerminalDetails()", CancellationToken.None); return(this.StatusCode((int)System.Net.HttpStatusCode.InternalServerError, msg)); } }
public void TerminalDetailsControllerTest_ModelState_Invalid() { //Arrange int lid = 589547; MockTerminalDetailsInfoRepository repository = new MockTerminalDetailsInfoRepository(); var expectedResult = repository.GetMockTerminalDetails(); ITerminalDetailsRepository mockRepo = FakeRepository(); IDistributedCache _cache = FakeCache(); IOperation fakeOperation = FakeOperation(_cache); ILoggingFacade fakeLogger = FakeLogger(); ITerminalDetailsApi dAPI = Substitute.For <ITerminalDetailsApi>(); dAPI.GetTerminalDetails(lid).ReturnsForAnyArgs(expectedResult); TerminalDetailsController controller = FakeController(dAPI, _cache, fakeOperation, fakeLogger); //Act controller.ModelState.AddModelError("key", "error message"); var dinfo = controller.GetTerminalDetails(lid).Result; //Assert Assert.Equal(((Microsoft.AspNetCore.Mvc.ObjectResult)dinfo).StatusCode.ToString(), "400"); }