public void ReturnInValidWhenInvalidInputPassed(GetTodaysInstrumentInfoQuery input) { //Arrange var validator = new GetTodaysInstrumentInfoQueryValidator(); //Act var validationResult = validator.Validate(input); //Assert validationResult.IsValid.Should().BeFalse("Validation failed"); }
public async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Function, "get", Route = "todaysfuturesymbolinfo")] HttpRequest req, ILogger log) { try { GetTodaysInstrumentInfoQuery request = new GetTodaysInstrumentInfoQuery { SymbolName = req.Query["SymbolName"], ContractExpiryDate = ConvertToDate(req.Query["ContractExpiryDate"]) }; log.LogInformation($"Received request to get current day " + $"future instrument information. {JsonConvert.SerializeObject(request)}"); try { var response = await _mediator.Send(request); if (response == null) { throw new NoRecordsFoundException("No information found for the given request."); } return(new OkObjectResult(response)); } catch (NoRecordsFoundException) { return(new BadRequestObjectResult(new { Error = $"No records found for the given input request. " + $"{JsonConvert.SerializeObject(request)}" })); } catch (ValidationException ve) { return(new BadRequestObjectResult(ve.Failures.Select(e => new { Field = e.Key, Message = e.Value }))); } } catch (Exception e) { log.LogError(e, $"Some internal/unknown error occurred! {e.Message}"); return(new InternalServerErrorResult()); } }