public async Task <IActionResult> GetExpiredContract([FromBody] ExpiredContracts request) { BaseResult <IEnumerable <dynamic> > expiryingContracts; #region Input Request Validation if (request == null || request.NotificationDate == DateTime.MinValue) //Need to check jakarta offset // || request.ExpiryWarningDays < 1 : Might Need old expired contract { expiryingContracts = new BaseResult <IEnumerable <dynamic> > { IsError = true, Message = Constants.BadRequestErrorMessage.InvalidRequest }; return(new BadRequestObjectResult(expiryingContracts)); } #endregion Input Request Validation expiryingContracts = await this.contracts.GetExpiredContract(request).ConfigureAwait(false); if (expiryingContracts.IsError && expiryingContracts.ExceptionMessage != null) { return(new StatusCodeResult(500)); } else if (expiryingContracts.Result == null || !expiryingContracts.Result.Any()) { return(NoContent()); //204 } return(Ok(expiryingContracts));; }
public async Task TestGetExpiredContract_NullRequest_BadRequestResponse() { ExpiredContracts request = null; var mockAction = new Moq.Mock <IContract>(); IActionResult actioResult = await contractsController.GetExpiredContract(request); // Assert.AreEqual(((Microsoft.AspNetCore.Mvc.ObjectResult)actioResult.Result).StatusCode, 200); Assert.IsTrue(actioResult is BadRequestObjectResult); }
public async Task TestGetExpiredContract_InvalidDateRequest_BadRequestResponse() { ExpiredContracts request = new ExpiredContracts { NotificationDate = DateTime.MinValue, ExpiryWarningDays = 10 }; IActionResult actioResult = await contractsController.GetExpiredContract(request); // Assert.AreEqual(((Microsoft.AspNetCore.Mvc.ObjectResult)actioResult.Result).StatusCode, 200); Assert.IsTrue(actioResult is BadRequestObjectResult); }
public async Task <BaseResult <IEnumerable <dynamic> > > GetExpiredContract(ExpiredContracts request) { BaseResult <IEnumerable <dynamic> > contractList = new BaseResult <IEnumerable <dynamic> >(); DynamicParameters paramCollection = new DynamicParameters(); paramCollection.Add("@AdvancementDays", request.ExpiryWarningDays); paramCollection.Add("@NotificationDate", request.NotificationDate); contractList = await iContract.ExecuteStoredProcedureDynamicModel(Constants.StoredProcedure.ExpriedContracts, paramCollection); return(contractList); }
public async Task TestGetExpiredContract_Exception_InternalServerErrorResponse() { ExpiredContracts request = new ExpiredContracts { NotificationDate = DateTime.Now, ExpiryWarningDays = 10 }; contractsRepositoryMock.Setup(a => a.GetExpiredContract(request)).Returns(Task.FromResult(new BaseResult <IEnumerable <dynamic> > { IsError = true, ExceptionMessage = Common.GetMockException() })); IActionResult actioResult = await contractsController.GetExpiredContract(request); Assert.AreEqual(((Microsoft.AspNetCore.Mvc.StatusCodeResult)actioResult).StatusCode, 500); }
public async Task TestGetExpiredContract_EmptyResult_NoContentResponse() { ExpiredContracts request = new ExpiredContracts { NotificationDate = DateTime.Now, ExpiryWarningDays = 10 }; contractsRepositoryMock.Setup(a => a.GetExpiredContract(request)).Returns(Task.FromResult(new BaseResult <IEnumerable <dynamic> > { Result = new List <Country>() })).Verifiable(); contractsRepositoryMock.Setup(a => a.GetExpiredContract(request)).Returns(Task.FromResult(new BaseResult <IEnumerable <dynamic> > { Result = null })).Verifiable(); IActionResult actioResult = await contractsController.GetExpiredContract(request); contractsRepositoryMock.VerifyAll(); Assert.AreEqual(((Microsoft.AspNetCore.Mvc.StatusCodeResult)actioResult).StatusCode, 204); }
public async Task TestGetExpiredContract_Success_OkResponse() { ExpiredContracts request = new ExpiredContracts { ExpiryWarningDays = 15, NotificationDate = DateTime.Now }; contractsRepositoryMock.Setup(a => a.GetExpiredContract(request)).Returns(Task.FromResult(new BaseResult <IEnumerable <dynamic> >() { Result = new[] { new { Title = "Home" }, new { Title = "Categories" } } })); IActionResult actioResult = await contractsController.GetExpiredContract(request); Assert.AreEqual(((Microsoft.AspNetCore.Mvc.ObjectResult)actioResult).StatusCode, 200); }