public async Task GetJiraWorkspaceEpicDetailsAsync_ResultsFound_ReturnsListOfSchemaDatabaseModels() { // Arrange var queryModel = new JiraWorkspaceQueryModel(); var resultModel = new JiraWorkspaceResultMasterModel { Issues = new List <JiraWorkspaceResultModel> { new JiraWorkspaceResultModel { ApiCustomFields = new Dictionary <JiraApiCustomFieldTypeEnum, string> { { JiraApiCustomFieldTypeEnum.IR_JIRACUSTOMFIELDREF1, "IR_JIRACUSTOMFIELDREF1" } } } } }; _jiraAccess.Setup(x => x.GetJiraWorkspaceEpicDetailsAsync(It.IsAny <JiraWorkspaceQueryModel>())) .ReturnsAsync(resultModel); // Act JiraController controller = new JiraController(_jiraAccess.Object); var result = await controller.GetJiraWorkspaceEpicDetailsAsync(queryModel); // Assert var resultValue = result.Value as ApiOkResponse; resultValue.Result.Should().BeOfType <JiraWorkspaceResultMasterModel>(); (resultValue.Result.As <JiraWorkspaceResultMasterModel>()).Issues.First().ApiCustomFields.Should().HaveCount(1); }
public async Task GetJiraWorkspaceDetailsAsync_AccessMethodThrowsError_LogErrorEventOccursAndErrorStatusCodeReturnedNoExceptionThrown() { // Arrange var queryModel = new JiraWorkspaceQueryModel(); var exceptionToThrow = new Exception("exception"); _jiraAccess.Setup(x => x.GetJiraWorkspaceDetailsAsync(It.IsAny <JiraWorkspaceQueryModel>())) .ThrowsAsync(exceptionToThrow); JiraController controller = new JiraController(_jiraAccess.Object); // Set up our Error Handling middleware as a wrapper (the same way it will wrap all incoming Requests) var middleware = new ErrorWrappingMiddleware(async(innerHttpContext) => { var result = await controller.GetJiraWorkspaceDetailsAsync(queryModel); }, _logger.Object); var context = new DefaultHttpContext(); context.Response.Body = new MemoryStream(); //Act await middleware.Invoke(context); context.Response.Body.Seek(0, SeekOrigin.Begin); var reader = new StreamReader(context.Response.Body); var streamText = reader.ReadToEnd(); var objResponse = JsonConvert.DeserializeObject <ApiResponse>(streamText); //Assert _logger.Verify(x => x.LogError(exceptionToThrow, It.IsAny <string>()), Times.Once); objResponse .Should() .BeEquivalentTo(new ApiResponse(HttpStatusCode.InternalServerError, "exception")); context.Response.StatusCode .Should() .Be((int)HttpStatusCode.InternalServerError); }
public JiraAccessTests() { _configuration = new Mock <IOptions <AppSettings> >(); _httpClientFactoryMock = new Mock <IHttpClientFactory>(); var appSettings = new AppSettings { JiraRestApiBaseUrlFormatted = "https://{0}/rest/api/2/search?jql={1}" }; _configuration.Setup(x => x.Value).Returns(appSettings); _queryModel = new JiraWorkspaceQueryModel { WorkspaceKey = "BGT", EpicName = "EPICNAME1", InstanceName = "jiradummyinstance1.allstate.com", InstanceAdministratorUserName = "******", InstanceAdministratorPassword = "******", InstanceAdministratorPasswordSalt = "bLDo574ekWA=" }; }