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); }
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); }
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); }
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); }