Esempio n. 1
0
        public async Task GetJiraWorkspaceEpicDetailsAsync_NoPaging_ReturnsCorrectNumberOfResultsFromApiCall()
        {
            // Arrange - set up the mock HttpClient to return the desired results model.
            var fakeHttpMessageHandler = new FakeHttpMessageHandler(new HttpResponseMessage
            {
                StatusCode = HttpStatusCode.OK,
                Content    = new StringContent(JsonConvert.SerializeObject(GetDummyJira_EpicDetails_ApiResponse()), Encoding.UTF8, "application/json")
            });

            var fakeHttpClient = new HttpClient(fakeHttpMessageHandler);

            _httpClientFactoryMock.Setup(x => x.CreateClient(It.IsAny <string>()))
            .Returns(fakeHttpClient);

            // Add the required 'Epic Name' custom field to the query model.
            var customFieldForEpicName = "customfield_10007";

            _queryModel.ApiCustomFields.Add(new ApiCustomFieldModel
            {
                GenesysReference        = JiraApiCustomFieldTypeEnum.IR_JIRACUSTOMFIELDREF2,
                ApiCustomFieldReference = customFieldForEpicName
            });

            // Act
            var jiraAccess = new JiraAccess(_configuration.Object, _httpClientFactoryMock.Object);
            var result     = await jiraAccess.GetJiraWorkspaceEpicDetailsAsync(_queryModel);

            // Assert
            result.Issues.Count.Equals(2);
        }
Esempio n. 2
0
        public async Task GetJiraWorkspaceDetailsAsync_ApiReturnsErrorMessage_MethodReturnsNotOkStatusCodeAndErrorMessageArray_DoesNotThrowError()
        {
            // Arrange - set up the mock HttpClient to return the desired results model.
            var errorResponseObject = new
            {
                errorMessages = new string[]
                {
                    "The value 'BGTxx' does not exist for the field 'project'."
                }
            };

            var fakeHttpMessageHandler = new FakeHttpMessageHandler(new HttpResponseMessage
            {
                StatusCode = HttpStatusCode.BadRequest,
                Content    = new StringContent(JsonConvert.SerializeObject(errorResponseObject), Encoding.UTF8, "application/json")
            });

            var fakeHttpClient = new HttpClient(fakeHttpMessageHandler);

            _httpClientFactoryMock.Setup(x => x.CreateClient(It.IsAny <string>()))
            .Returns(fakeHttpClient);

            // Add the required 'Epic Link' custom field to the query model.
            var customFieldForEpicLink = "customfield_10006";

            _queryModel.ApiCustomFields.Add(new ApiCustomFieldModel
            {
                GenesysReference        = JiraApiCustomFieldTypeEnum.IR_JIRACUSTOMFIELDREF1,
                ApiCustomFieldReference = customFieldForEpicLink
            });

            // Add the optional 'Sprint Details' custom field to the query model.
            var customFieldForSprintDetails = "customfield_10005";

            _queryModel.ApiCustomFields.Add(new ApiCustomFieldModel
            {
                GenesysReference        = JiraApiCustomFieldTypeEnum.IR_JIRACUSTOMFIELDREF3,
                ApiCustomFieldReference = customFieldForSprintDetails
            });

            // Add the optional 'Bug Severity' custom field to the query model.
            var customFieldForBugSeverity = "customfield_11403";

            _queryModel.ApiCustomFields.Add(new ApiCustomFieldModel
            {
                GenesysReference        = JiraApiCustomFieldTypeEnum.IR_JIRACUSTOMFIELDREF4,
                ApiCustomFieldReference = customFieldForBugSeverity
            });

            // Act
            var jiraAccess = new JiraAccess(_configuration.Object, _httpClientFactoryMock.Object);
            var result     = await jiraAccess.GetJiraWorkspaceDetailsAsync(_queryModel);

            // Assert
            result.ErrorMessages.Count.Equals(1);
            result.Issues.Count.Equals(0);
        }
Esempio n. 3
0
        public async Task GetJiraWorkspaceEpicDetailsAsync_RequiredInstanceAdminDetailsNotSupplied_ThrowsError()
        {
            // Remove some of the Auth params to cause failure
            _queryModel.InstanceAdministratorUserName = null;

            // Act
            var jiraAccess = new JiraAccess(_configuration.Object, _httpClientFactoryMock.Object);

            // Act + Assert
            var exception = await Assert.ThrowsAsync <MissingFieldException>(async() => await jiraAccess.GetJiraWorkspaceEpicDetailsAsync(_queryModel));

            Assert.Equal(JiraAccess.AuthenticationParamsMissingException, exception.Message);
        }
Esempio n. 4
0
        public async Task GetJiraWorkspaceEpicDetailsAsync_RequiredWorkspaceKeyNotSupplied_ThrowsError()
        {
            // Arrange - take the WorkspaceKey out to cause that failure
            _queryModel.WorkspaceKey = null;

            // Act
            var jiraAccess = new JiraAccess(_configuration.Object, _httpClientFactoryMock.Object);

            // Act + Assert
            var exception = await Assert.ThrowsAsync <MissingFieldException>(async() => await jiraAccess.GetJiraWorkspaceEpicDetailsAsync(_queryModel));

            Assert.Equal(JiraAccess.WorkspaceKeyMissingException, exception.Message);
        }