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);
        }
Пример #3
0
        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="
            };
        }