public async void Returns_QualifiedTeacherRecords_WhenTrnMatchFound() { _qualifiedTeachersRepositoryMock .Setup(q => q.FindAsync(x => x.Trn == TRN)) .ReturnsAsync(mockQualifiedTeachers); var results = await _qualifiedTeachersService.GetQualifiedTeacherRecords(TRN, NI); Assert.Equal(results, mockQualifiedTeachers); }
public async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Function, "get", Route = "qualified-teachers/qualified-teaching-status")] HttpRequest req) { string requestReference = req.Headers["x-correlation-id"]; if (string.IsNullOrWhiteSpace(requestReference)) { requestReference = Guid.NewGuid().ToString(); } _log.Info($"Received request. CorrelationId : {requestReference}"); if (!_authorize.AuthorizeRequest(req)) { _log.Warning($"Unauthorized request. CorrelationId : {requestReference}"); return(new UnauthorizedResult()); } try { var trn = req.Query["trn"]; var ni = req.Query["ni"]; if (string.IsNullOrWhiteSpace(trn)) { var msg = $"TeacherReferenceNumber is mandatory."; _log.Info($"{msg} CorrelationId : {requestReference}"); return(new BadRequestObjectResult(GetResultDto(null, msg))); } _log.Info($"Fetching records. CorrelationId : {requestReference}"); var results = await _qtsService.GetQualifiedTeacherRecords(trn, ni); if (!results.Any()) { var msg = $"No records found."; _log.Info($"{msg} CorrelationId : {requestReference}"); return(new NotFoundObjectResult(GetResultDto(null, msg))); } return(new OkObjectResult(GetResultDto(results.ToList()))); } catch (JsonException jsonException) { var errorMsg = $"Error retrieving qualified teacher status data."; _log.Error(new JsonException($"{errorMsg} CorrelationId : {requestReference}", jsonException)); return(new BadRequestObjectResult(GetResultDto(null, errorMsg))); } catch (Exception exception) { var errorMsg = $"Error retrieving qualified teacher status data. {exception.Message}"; _log.Error(new Exception($"{errorMsg} CorrelationId : {requestReference}", exception)); return(new ObjectResult(GetResultDto(null, errorMsg)) { StatusCode = 500 }); }