diff --git a/Directory.Packages.props b/Directory.Packages.props index a4ecd366..03ec5cb5 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -4,7 +4,7 @@ false - + @@ -17,7 +17,7 @@ - + diff --git a/NGitLab.Mock.Tests/FileTests.cs b/NGitLab.Mock.Tests/FileTests.cs index 62566fed..5997ac41 100644 --- a/NGitLab.Mock.Tests/FileTests.cs +++ b/NGitLab.Mock.Tests/FileTests.cs @@ -38,7 +38,7 @@ await filesClient.GetRawAsync(fileToLookUp, async stream => } else { - Assert.ThrowsAsync((Func)(async () => await filesClient.GetRawAsync(fileToLookUp, _ => Task.CompletedTask).ConfigureAwait(false))); + await Assert.ThrowsAsync((Func)(async () => await filesClient.GetRawAsync(fileToLookUp, _ => Task.CompletedTask).ConfigureAwait(false))); } } } diff --git a/NGitLab.Mock.Tests/GroupsMockTests.cs b/NGitLab.Mock.Tests/GroupsMockTests.cs index 773b5f63..9a09719b 100644 --- a/NGitLab.Mock.Tests/GroupsMockTests.cs +++ b/NGitLab.Mock.Tests/GroupsMockTests.cs @@ -120,11 +120,11 @@ public async Task Test_page_groups_with_page_0_returns_page_1() } [Test] - public void Test_page_groups_with_invalid_perpage_throws() + public async Task Test_page_groups_with_invalid_perpage_throws() { using var server = CreateGroupHierarchy(); var client = server.CreateClient("user1"); - Assert.ThrowsAsync((Func)(() => client.Groups.PageAsync(new(perPage: 0)))); + await Assert.ThrowsAsync((Func)(() => client.Groups.PageAsync(new(perPage: 0)))); } [Test] @@ -272,11 +272,11 @@ public async Task Test_page_subgroups_with_page_0_returns_page_1() } [Test] - public void Test_page_subgroups_with_invalid_perpage_throws() + public async Task Test_page_subgroups_with_invalid_perpage_throws() { using var server = CreateGroupHierarchy(); var client = server.CreateClient("user1"); - Assert.ThrowsAsync((Func)(() => client.Groups.PageSubgroupsAsync(1, new(page: 1, perPage: 0)))); + await Assert.ThrowsAsync((Func)(() => client.Groups.PageSubgroupsAsync(1, new(page: 1, perPage: 0)))); } [Test] diff --git a/NGitLab.Mock.Tests/MembersMockTests.cs b/NGitLab.Mock.Tests/MembersMockTests.cs index fdd4e1ef..16e4c192 100644 --- a/NGitLab.Mock.Tests/MembersMockTests.cs +++ b/NGitLab.Mock.Tests/MembersMockTests.cs @@ -116,8 +116,8 @@ public async Task Test_members_async_methods_simulate_gitlab_behavior() const string groupId = "G1/G2"; // Does NOT search inherited permission by default... - AssertThrowsGitLabException(() => client.Members.GetMemberOfProjectAsync(projectId, user1.Id), System.Net.HttpStatusCode.NotFound); - AssertThrowsGitLabException(() => client.Members.GetMemberOfGroupAsync(groupId, user1.Id), System.Net.HttpStatusCode.NotFound); + await AssertThrowsGitLabException(() => client.Members.GetMemberOfProjectAsync(projectId, user1.Id), System.Net.HttpStatusCode.NotFound); + await AssertThrowsGitLabException(() => client.Members.GetMemberOfGroupAsync(groupId, user1.Id), System.Net.HttpStatusCode.NotFound); Assert.That(client.Members.OfProjectAsync(projectId).AsEnumerable().Select(m => m.UserName), Is.Empty); Assert.That(client.Members.OfGroupAsync(groupId).AsEnumerable().Select(m => m.UserName), Is.EquivalentTo([ownerName])); @@ -128,20 +128,20 @@ public async Task Test_members_async_methods_simulate_gitlab_behavior() Assert.That(client.Members.OfGroupAsync(groupId, includeInheritedMembers: true).AsEnumerable().Select(m => m.UserName), Is.EquivalentTo([ownerName, user1Name])); // Cannot update non-existent membership... - AssertThrowsGitLabException(() => client.Members.UpdateMemberOfProjectAsync(projectId, new() { UserId = user1Id, AccessLevel = Models.AccessLevel.Owner }), System.Net.HttpStatusCode.NotFound); - AssertThrowsGitLabException(() => client.Members.UpdateMemberOfGroupAsync(groupId, new() { UserId = user1Id, AccessLevel = Models.AccessLevel.Owner }), System.Net.HttpStatusCode.NotFound); + await AssertThrowsGitLabException(() => client.Members.UpdateMemberOfProjectAsync(projectId, new() { UserId = user1Id, AccessLevel = Models.AccessLevel.Owner }), System.Net.HttpStatusCode.NotFound); + await AssertThrowsGitLabException(() => client.Members.UpdateMemberOfGroupAsync(groupId, new() { UserId = user1Id, AccessLevel = Models.AccessLevel.Owner }), System.Net.HttpStatusCode.NotFound); // Cannot add membership with an access-level lower than inherited... - AssertThrowsGitLabException(() => client.Members.AddMemberToProjectAsync(projectId, new() { UserId = user1Id, AccessLevel = Models.AccessLevel.Reporter }), System.Net.HttpStatusCode.BadRequest); - AssertThrowsGitLabException(() => client.Members.AddMemberToGroupAsync(groupId, new() { UserId = user1Id, AccessLevel = Models.AccessLevel.Reporter }), System.Net.HttpStatusCode.BadRequest); + await AssertThrowsGitLabException(() => client.Members.AddMemberToProjectAsync(projectId, new() { UserId = user1Id, AccessLevel = Models.AccessLevel.Reporter }), System.Net.HttpStatusCode.BadRequest); + await AssertThrowsGitLabException(() => client.Members.AddMemberToGroupAsync(groupId, new() { UserId = user1Id, AccessLevel = Models.AccessLevel.Reporter }), System.Net.HttpStatusCode.BadRequest); // Can add membership with greater than or equal access-level... await AssertReturnsMembership(() => client.Members.AddMemberToProjectAsync(projectId, new() { UserId = user1Id, AccessLevel = Models.AccessLevel.Maintainer }), Models.AccessLevel.Maintainer); await AssertReturnsMembership(() => client.Members.AddMemberToGroupAsync(groupId, new() { UserId = user1Id, AccessLevel = Models.AccessLevel.Maintainer }), Models.AccessLevel.Maintainer); // Cannot add duplicate membership... - AssertThrowsGitLabException(() => client.Members.AddMemberToProjectAsync(projectId, new() { UserId = user1Id, AccessLevel = Models.AccessLevel.Owner }), System.Net.HttpStatusCode.Conflict); - AssertThrowsGitLabException(() => client.Members.AddMemberToGroupAsync(groupId, new() { UserId = user1Id, AccessLevel = Models.AccessLevel.Owner }), System.Net.HttpStatusCode.Conflict); + await AssertThrowsGitLabException(() => client.Members.AddMemberToProjectAsync(projectId, new() { UserId = user1Id, AccessLevel = Models.AccessLevel.Owner }), System.Net.HttpStatusCode.Conflict); + await AssertThrowsGitLabException(() => client.Members.AddMemberToGroupAsync(groupId, new() { UserId = user1Id, AccessLevel = Models.AccessLevel.Owner }), System.Net.HttpStatusCode.Conflict); // Can raise access-level above inherited... await AssertReturnsMembership(() => client.Members.UpdateMemberOfProjectAsync(projectId, new() { UserId = user1Id, AccessLevel = Models.AccessLevel.Owner }), Models.AccessLevel.Owner); @@ -152,16 +152,16 @@ public async Task Test_members_async_methods_simulate_gitlab_behavior() await AssertReturnsMembership(() => client.Members.UpdateMemberOfGroupAsync(groupId, new() { UserId = user1Id, AccessLevel = Models.AccessLevel.Maintainer }), Models.AccessLevel.Maintainer); // Cannot decrease access-level lower than inherited... - AssertThrowsGitLabException(() => client.Members.UpdateMemberOfProjectAsync(projectId, new() { UserId = user1Id, AccessLevel = Models.AccessLevel.Reporter }), System.Net.HttpStatusCode.BadRequest); - AssertThrowsGitLabException(() => client.Members.UpdateMemberOfGroupAsync(groupId, new() { UserId = user1Id, AccessLevel = Models.AccessLevel.Reporter }), System.Net.HttpStatusCode.BadRequest); + await AssertThrowsGitLabException(() => client.Members.UpdateMemberOfProjectAsync(projectId, new() { UserId = user1Id, AccessLevel = Models.AccessLevel.Reporter }), System.Net.HttpStatusCode.BadRequest); + await AssertThrowsGitLabException(() => client.Members.UpdateMemberOfGroupAsync(groupId, new() { UserId = user1Id, AccessLevel = Models.AccessLevel.Reporter }), System.Net.HttpStatusCode.BadRequest); // Can delete... await client.Members.RemoveMemberFromProjectAsync(projectId, user1.Id); await client.Members.RemoveMemberFromGroupAsync(groupId, user1.Id); // Delete fails when not exist... - AssertThrowsGitLabException(() => client.Members.RemoveMemberFromProjectAsync(projectId, user1.Id), System.Net.HttpStatusCode.NotFound); - AssertThrowsGitLabException(() => client.Members.RemoveMemberFromGroupAsync(groupId, user1.Id), System.Net.HttpStatusCode.NotFound); + await AssertThrowsGitLabException(() => client.Members.RemoveMemberFromProjectAsync(projectId, user1.Id), System.Net.HttpStatusCode.NotFound); + await AssertThrowsGitLabException(() => client.Members.RemoveMemberFromGroupAsync(groupId, user1.Id), System.Net.HttpStatusCode.NotFound); } private static async Task AssertReturnsMembership(Func> code, Models.AccessLevel expectedAccessLevel) @@ -171,9 +171,9 @@ private static async Task AssertReturnsMembership(Func> Assert.That(membership.AccessLevel, Is.EqualTo((int)expectedAccessLevel)); } - private static void AssertThrowsGitLabException(AsyncTestDelegate code, System.Net.HttpStatusCode expectedStatusCode) + private static async Task AssertThrowsGitLabException(Func code, System.Net.HttpStatusCode expectedStatusCode) { - var ex = Assert.CatchAsync(typeof(GitLabException), code) as GitLabException; + var ex = await Assert.CatchAsync(typeof(GitLabException), code).ConfigureAwait(false) as GitLabException; Assert.That(ex, Is.Not.Null); Assert.That(ex.StatusCode, Is.EqualTo(expectedStatusCode)); } diff --git a/NGitLab.Mock.Tests/ProjectsMockTests.cs b/NGitLab.Mock.Tests/ProjectsMockTests.cs index e2d1d08e..df4dcfbc 100644 --- a/NGitLab.Mock.Tests/ProjectsMockTests.cs +++ b/NGitLab.Mock.Tests/ProjectsMockTests.cs @@ -49,7 +49,7 @@ public void Test_projects_created_can_be_found() } [Test] - public void GetProjectAsync_WhenProjectDoesNotExist_ShouldThrowNotFound() + public async Task GetProjectAsync_WhenProjectDoesNotExist_ShouldThrowNotFound() { // Arrange using var server = new GitLabConfig() @@ -59,13 +59,13 @@ public void GetProjectAsync_WhenProjectDoesNotExist_ShouldThrowNotFound() var projectClient = gitLabClient.Projects; // Act/Assert - var ex = Assert.ThrowsAsync((Func)(() => projectClient.GetAsync("baz1234"))); + var ex = await Assert.ThrowsAsync((Func)(() => projectClient.GetAsync("baz1234"))); Assert.That(ex.StatusCode, Is.EqualTo(HttpStatusCode.NotFound)); } [Test] - public void GetProjectAsync_WhenProjectInaccessible_ShouldThrowNotFound() + public async Task GetProjectAsync_WhenProjectInaccessible_ShouldThrowNotFound() { // Arrange using var server = new GitLabConfig() @@ -82,7 +82,7 @@ public void GetProjectAsync_WhenProjectInaccessible_ShouldThrowNotFound() }); // Act/Assert - var ex = Assert.ThrowsAsync((Func)(() => testUser1ProjectClient.GetAsync(testUser2Project.Id))); + var ex = await Assert.ThrowsAsync((Func)(() => testUser1ProjectClient.GetAsync(testUser2Project.Id))); Assert.That(ex.StatusCode, Is.EqualTo(HttpStatusCode.NotFound)); } @@ -302,7 +302,7 @@ public async Task CreateAsync_WhenInitializeWithReadmeIsFalse_ItIgnoresDefaultBr } [Test] - public void CreateAsync_WhenProjectPathAlreadyExists_ItThrows() + public async Task CreateAsync_WhenProjectPathAlreadyExists_ItThrows() { // Arrange using var server = new GitLabConfig() @@ -313,7 +313,7 @@ public void CreateAsync_WhenProjectPathAlreadyExists_ItThrows() var projectClient = server.CreateClient().Projects; // Act - var ex = Assert.CatchAsync((Func)(() => + var ex = await Assert.CatchAsync((Func)(() => projectClient.CreateAsync(new() { Path = "DUPLICATE", // GitLab path is case-INsensitive @@ -326,7 +326,7 @@ public void CreateAsync_WhenProjectPathAlreadyExists_ItThrows() } [Test] - public void CreateAsync_WhenProjectNameAlreadyExists_ItThrows() + public async Task CreateAsync_WhenProjectNameAlreadyExists_ItThrows() { // Arrange using var server = new GitLabConfig() @@ -337,7 +337,7 @@ public void CreateAsync_WhenProjectNameAlreadyExists_ItThrows() var projectClient = server.CreateClient().Projects; // Act - var ex = Assert.ThrowsAsync((Func)(() => + var ex = await Assert.ThrowsAsync((Func)(() => projectClient.CreateAsync(new() { Path = "project2", @@ -476,7 +476,7 @@ await projectClient.UpdateAsync( } [Test] - public void UpdateAsync_WhenProjectNotFound_ItThrows() + public async Task UpdateAsync_WhenProjectNotFound_ItThrows() { // Arrange using var server = new GitLabConfig() @@ -486,7 +486,7 @@ public void UpdateAsync_WhenProjectNotFound_ItThrows() var projectClient = server.CreateClient().Projects; // Act - var ex = Assert.CatchAsync((Func)(() => + var ex = await Assert.CatchAsync((Func)(() => projectClient.UpdateAsync(int.MaxValue, new() { Visibility = VisibilityLevel.Private, @@ -516,7 +516,7 @@ public async Task DeleteAsync_WhenProjectExists_MarksProjectForDeletion() } [Test] - public void DeleteAsync_WhenProjectNotFound_ItThrows() + public async Task DeleteAsync_WhenProjectNotFound_ItThrows() { using var server = new GitLabConfig() .WithUser("Test", isDefault: true) @@ -525,7 +525,7 @@ public void DeleteAsync_WhenProjectNotFound_ItThrows() var projectClient = server.CreateClient().Projects; // Act - var ex = Assert.CatchAsync((Func)(() => projectClient.DeleteAsync(int.MaxValue))); + var ex = await Assert.CatchAsync((Func)(() => projectClient.DeleteAsync(int.MaxValue))); // Assert Assert.That(ex.StatusCode, Is.EqualTo(HttpStatusCode.NotFound)); @@ -576,7 +576,7 @@ public async Task DeleteAsync_WithPermanentlyRemove_AndMatchingFullPath_HardDele }); // Assert: project is now gone - Assert.CatchAsync((Func)(() => projectClient.GetAsync(project.Id))); + await Assert.CatchAsync((Func)(() => projectClient.GetAsync(project.Id))); } [Test] @@ -595,7 +595,7 @@ public async Task DeleteAsync_WithPermanentlyRemove_AndMismatchedFullPath_Throws await projectClient.DeleteAsync(project.Id); // Act: wrong full_path - var ex = Assert.CatchAsync((Func)(() => + var ex = await Assert.CatchAsync((Func)(() => projectClient.DeleteAsync(project.Id, new ProjectDelete { PermanentlyRemove = true, @@ -622,7 +622,7 @@ public async Task PermanentlyDeleteAsync_HardDeletesProjectInOneCall() await projectClient.PermanentlyDeleteAsync(project.Id); // Assert: project is gone - Assert.CatchAsync((Func)(() => projectClient.GetAsync(project.Id))); + await Assert.CatchAsync((Func)(() => projectClient.GetAsync(project.Id))); } [Test] diff --git a/NGitLab.Mock.Tests/TagTests.cs b/NGitLab.Mock.Tests/TagTests.cs index 03284897..96ff7576 100644 --- a/NGitLab.Mock.Tests/TagTests.cs +++ b/NGitLab.Mock.Tests/TagTests.cs @@ -28,7 +28,7 @@ public async Task GetTagAsync() var tag = await tagClient.GetByNameAsync("1.0.0"); Assert.That(tag.Name, Is.EqualTo("1.0.0")); - var ex = Assert.ThrowsAsync((Func)(() => tagClient.GetByNameAsync("1.0.1"))); + var ex = await Assert.ThrowsAsync((Func)(() => tagClient.GetByNameAsync("1.0.1"))); Assert.That(ex.StatusCode, Is.EqualTo(HttpStatusCode.NotFound)); } diff --git a/NGitLab.Tests/FilesTests.cs b/NGitLab.Tests/FilesTests.cs index 84eda842..f8636efb 100644 --- a/NGitLab.Tests/FilesTests.cs +++ b/NGitLab.Tests/FilesTests.cs @@ -104,7 +104,7 @@ public async Task Test_add_update_delete_get_and_exists_file_async() exists = await filesClient.FileExistsAsync(fileName, project.DefaultBranch); Assert.That(exists, Is.False); - Assert.ThrowsAsync(Is.InstanceOf(), (Func)(() => filesClient.GetAsync("testDelete.md", project.DefaultBranch))); + await Assert.ThrowsAsync(Is.InstanceOf(), (Func)(() => filesClient.GetAsync("testDelete.md", project.DefaultBranch))); } [Test] @@ -136,7 +136,7 @@ await filesClient.GetRawAsync(fileName, async stream => Assert.That(downloadedContent, Is.Not.Null); Assert.That(downloadedContent, Is.EqualTo("test")); - Assert.ThrowsAsync(Is.InstanceOf(), (Func)(() => filesClient.GetRawAsync("does-not-exist.md", _ => Task.CompletedTask))); + await Assert.ThrowsAsync(Is.InstanceOf(), (Func)(() => filesClient.GetRawAsync("does-not-exist.md", _ => Task.CompletedTask))); } [Test] diff --git a/NGitLab.Tests/GraphQLTests.cs b/NGitLab.Tests/GraphQLTests.cs index c04d4c05..99f664f8 100644 --- a/NGitLab.Tests/GraphQLTests.cs +++ b/NGitLab.Tests/GraphQLTests.cs @@ -17,7 +17,7 @@ public async Task Test_invalid_request() using var context = await GitLabTestContext.CreateAsync(); var project = context.CreateProject(); - var exception = Assert.ThrowsAsync((Func)(() => context.Client.GraphQL.ExecuteAsync(new GraphQLQuery + var exception = await Assert.ThrowsAsync((Func)(() => context.Client.GraphQL.ExecuteAsync(new GraphQLQuery { Query = """ { diff --git a/NGitLab.Tests/MembersClientTests.cs b/NGitLab.Tests/MembersClientTests.cs index b725170d..1c16337e 100644 --- a/NGitLab.Tests/MembersClientTests.cs +++ b/NGitLab.Tests/MembersClientTests.cs @@ -182,8 +182,8 @@ public async Task AsyncMethodsBehaveAsExpected() var groupId = group2.FullPath!; // Does NOT search inherited permission by default... - AssertThrowsGitLabException(() => client.Members.GetMemberOfProjectAsync(projectId, user1.Id), System.Net.HttpStatusCode.NotFound); - AssertThrowsGitLabException(() => client.Members.GetMemberOfGroupAsync(groupId, user1.Id), System.Net.HttpStatusCode.NotFound); + await AssertThrowsGitLabException(() => client.Members.GetMemberOfProjectAsync(projectId, user1.Id), System.Net.HttpStatusCode.NotFound); + await AssertThrowsGitLabException(() => client.Members.GetMemberOfGroupAsync(groupId, user1.Id), System.Net.HttpStatusCode.NotFound); Assert.That(client.Members.OfProjectAsync(projectId).AsEnumerable().Select(m => m.UserName), Is.Empty); Assert.That(client.Members.OfGroupAsync(groupId).AsEnumerable().Select(m => m.UserName), Is.EquivalentTo(new[] { ownerName })); @@ -194,20 +194,20 @@ public async Task AsyncMethodsBehaveAsExpected() Assert.That(client.Members.OfGroupAsync(groupId, includeInheritedMembers: true).AsEnumerable().Select(m => m.UserName), Is.EquivalentTo(new[] { ownerName, user1Name })); // Cannot update non-existent membership... - AssertThrowsGitLabException(() => client.Members.UpdateMemberOfProjectAsync(projectId, new() { UserId = user1Id, AccessLevel = AccessLevel.Owner }), System.Net.HttpStatusCode.NotFound); - AssertThrowsGitLabException(() => client.Members.UpdateMemberOfGroupAsync(groupId, new() { UserId = user1Id, AccessLevel = AccessLevel.Owner }), System.Net.HttpStatusCode.NotFound); + await AssertThrowsGitLabException(() => client.Members.UpdateMemberOfProjectAsync(projectId, new() { UserId = user1Id, AccessLevel = AccessLevel.Owner }), System.Net.HttpStatusCode.NotFound); + await AssertThrowsGitLabException(() => client.Members.UpdateMemberOfGroupAsync(groupId, new() { UserId = user1Id, AccessLevel = AccessLevel.Owner }), System.Net.HttpStatusCode.NotFound); // Cannot add membership with an access-level lower than inherited... - AssertThrowsGitLabException(() => client.Members.AddMemberToProjectAsync(projectId, new() { UserId = user1Id, AccessLevel = AccessLevel.Reporter }), System.Net.HttpStatusCode.BadRequest); - AssertThrowsGitLabException(() => client.Members.AddMemberToGroupAsync(groupId, new() { UserId = user1Id, AccessLevel = AccessLevel.Reporter }), System.Net.HttpStatusCode.BadRequest); + await AssertThrowsGitLabException(() => client.Members.AddMemberToProjectAsync(projectId, new() { UserId = user1Id, AccessLevel = AccessLevel.Reporter }), System.Net.HttpStatusCode.BadRequest); + await AssertThrowsGitLabException(() => client.Members.AddMemberToGroupAsync(groupId, new() { UserId = user1Id, AccessLevel = AccessLevel.Reporter }), System.Net.HttpStatusCode.BadRequest); // Can add membership with greater than or equal access-level... await AssertReturnsMembership(() => client.Members.AddMemberToProjectAsync(projectId, new() { UserId = user1Id, AccessLevel = AccessLevel.Maintainer }), AccessLevel.Maintainer); await AssertReturnsMembership(() => client.Members.AddMemberToGroupAsync(groupId, new() { UserId = user1Id, AccessLevel = AccessLevel.Maintainer }), AccessLevel.Maintainer); // Cannot add duplicate membership... - AssertThrowsGitLabException(() => client.Members.AddMemberToProjectAsync(projectId, new() { UserId = user1Id, AccessLevel = AccessLevel.Owner }), System.Net.HttpStatusCode.Conflict); - AssertThrowsGitLabException(() => client.Members.AddMemberToGroupAsync(groupId, new() { UserId = user1Id, AccessLevel = AccessLevel.Owner }), System.Net.HttpStatusCode.Conflict); + await AssertThrowsGitLabException(() => client.Members.AddMemberToProjectAsync(projectId, new() { UserId = user1Id, AccessLevel = AccessLevel.Owner }), System.Net.HttpStatusCode.Conflict); + await AssertThrowsGitLabException(() => client.Members.AddMemberToGroupAsync(groupId, new() { UserId = user1Id, AccessLevel = AccessLevel.Owner }), System.Net.HttpStatusCode.Conflict); // Can raise access-level above inherited... await AssertReturnsMembership(() => client.Members.UpdateMemberOfProjectAsync(projectId, new() { UserId = user1Id, AccessLevel = AccessLevel.Owner }), AccessLevel.Owner); @@ -218,16 +218,16 @@ public async Task AsyncMethodsBehaveAsExpected() await AssertReturnsMembership(() => client.Members.UpdateMemberOfGroupAsync(groupId, new() { UserId = user1Id, AccessLevel = AccessLevel.Maintainer }), AccessLevel.Maintainer); // Cannot decrease access-level lower than inherited... - AssertThrowsGitLabException(() => client.Members.UpdateMemberOfProjectAsync(projectId, new() { UserId = user1Id, AccessLevel = AccessLevel.Reporter }), System.Net.HttpStatusCode.BadRequest); - AssertThrowsGitLabException(() => client.Members.UpdateMemberOfGroupAsync(groupId, new() { UserId = user1Id, AccessLevel = AccessLevel.Reporter }), System.Net.HttpStatusCode.BadRequest); + await AssertThrowsGitLabException(() => client.Members.UpdateMemberOfProjectAsync(projectId, new() { UserId = user1Id, AccessLevel = AccessLevel.Reporter }), System.Net.HttpStatusCode.BadRequest); + await AssertThrowsGitLabException(() => client.Members.UpdateMemberOfGroupAsync(groupId, new() { UserId = user1Id, AccessLevel = AccessLevel.Reporter }), System.Net.HttpStatusCode.BadRequest); // Can delete... await client.Members.RemoveMemberFromProjectAsync(projectId, user1.Id); await client.Members.RemoveMemberFromGroupAsync(groupId, user1.Id); // Delete fails when not exist... - AssertThrowsGitLabException(() => client.Members.RemoveMemberFromProjectAsync(projectId, user1.Id), System.Net.HttpStatusCode.NotFound); - AssertThrowsGitLabException(() => client.Members.RemoveMemberFromGroupAsync(groupId, user1.Id), System.Net.HttpStatusCode.NotFound); + await AssertThrowsGitLabException(() => client.Members.RemoveMemberFromProjectAsync(projectId, user1.Id), System.Net.HttpStatusCode.NotFound); + await AssertThrowsGitLabException(() => client.Members.RemoveMemberFromGroupAsync(groupId, user1.Id), System.Net.HttpStatusCode.NotFound); } private static async Task AssertReturnsMembership(Func> code, AccessLevel expectedAccessLevel) @@ -237,9 +237,9 @@ private static async Task AssertReturnsMembership(Func> code, A Assert.That(membership.AccessLevel, Is.EqualTo((int)expectedAccessLevel)); } - private static void AssertThrowsGitLabException(AsyncTestDelegate code, System.Net.HttpStatusCode expectedStatusCode) + private static async Task AssertThrowsGitLabException(Func code, System.Net.HttpStatusCode expectedStatusCode) { - var ex = Assert.CatchAsync(typeof(GitLabException), code) as GitLabException; + var ex = await Assert.CatchAsync(typeof(GitLabException), code).ConfigureAwait(false) as GitLabException; Assert.That(ex, Is.Not.Null); Assert.That(ex.StatusCode, Is.EqualTo(expectedStatusCode)); } diff --git a/NGitLab.Tests/ProjectsTests.cs b/NGitLab.Tests/ProjectsTests.cs index 454858cc..a4d498bd 100644 --- a/NGitLab.Tests/ProjectsTests.cs +++ b/NGitLab.Tests/ProjectsTests.cs @@ -82,7 +82,7 @@ public async Task GetProjectAsync_WhenProjectDoesNotExist_ShouldThrowNotFound() // Act // Assert - var ex = Assert.ThrowsAsync((Func)(() => projectClient.GetAsync("baz1234"))); + var ex = await Assert.ThrowsAsync((Func)(() => projectClient.GetAsync("baz1234"))); // Assert Assert.That(ex.StatusCode, Is.EqualTo(HttpStatusCode.NotFound)); @@ -104,7 +104,7 @@ public async Task GetProjectAsync_WhenProjectInaccessible_ShouldThrowNotFound() }); // Act/Assert - var ex = Assert.ThrowsAsync((Func)(() => userProjectClient.GetAsync(adminProject.Id))); + var ex = await Assert.ThrowsAsync((Func)(() => userProjectClient.GetAsync(adminProject.Id))); Assert.That(ex.StatusCode, Is.EqualTo(HttpStatusCode.NotFound)); } @@ -435,7 +435,7 @@ public async Task CreateAsync_WhenProjectAlreadyExists_ItThrows() var projectClient = context.Client.Projects; // Act - var ex = Assert.ThrowsAsync((Func)(() => + var ex = await Assert.ThrowsAsync((Func)(() => projectClient.CreateAsync(new() { Path = existingProject.Path, @@ -525,7 +525,7 @@ public async Task UpdateAsync_WhenProjectNotFound_ItThrows() var projectClient = context.Client.Projects; // Act - var ex = Assert.ThrowsAsync((Func)(() => + var ex = await Assert.ThrowsAsync((Func)(() => projectClient.UpdateAsync(int.MaxValue, new() { Visibility = VisibilityLevel.Private, @@ -555,7 +555,7 @@ public async Task DeleteAsync_WhenProjectExists_ItIsDeleted() await projectClient.DeleteAsync(project.Id); // Assert - Assert.ThrowsAsync((Func)(() => projectClient.GetAsync(project.Id))); + await Assert.ThrowsAsync((Func)(() => projectClient.GetAsync(project.Id))); } [Test] @@ -588,7 +588,7 @@ public async Task DeleteAsync_WhenProjectNotFound_ItThrows() var projectClient = context.Client.Projects; // Act - var ex = Assert.ThrowsAsync((Func)(() => projectClient.DeleteAsync(int.MaxValue))); + var ex = await Assert.ThrowsAsync((Func)(() => projectClient.DeleteAsync(int.MaxValue))); // Assert Assert.That(ex.StatusCode, Is.EqualTo(HttpStatusCode.NotFound)); @@ -619,7 +619,7 @@ public async Task DeleteAsync_WhenPermanentlyRemoveOnMarkedProject_ItIsDeleted() }); // Assert: project no longer accessible - Assert.ThrowsAsync((Func)(() => projectClient.GetAsync(project.Id))); + await Assert.ThrowsAsync((Func)(() => projectClient.GetAsync(project.Id))); } // No owner level (50) for project! See https://docs.gitlab.com/ee/api/members.html diff --git a/NGitLab.Tests/TagTests.cs b/NGitLab.Tests/TagTests.cs index c9db342a..ba432499 100644 --- a/NGitLab.Tests/TagTests.cs +++ b/NGitLab.Tests/TagTests.cs @@ -121,7 +121,7 @@ public async Task GetTag(string tagNameSought, bool expectExistence) } else { - var ex = Assert.ThrowsAsync((Func)(() => tagClient.GetByNameAsync(tagNameSought))); + var ex = await Assert.ThrowsAsync((Func)(() => tagClient.GetByNameAsync(tagNameSought))); Assert.That(ex.StatusCode, Is.EqualTo(HttpStatusCode.NotFound)); } } diff --git a/NGitLab.Tests/UsersTests.cs b/NGitLab.Tests/UsersTests.cs index 4200827b..5e1edb5d 100644 --- a/NGitLab.Tests/UsersTests.cs +++ b/NGitLab.Tests/UsersTests.cs @@ -194,7 +194,7 @@ public async Task CreateTokenAsyncAsAdmin_WhenUserNotFound_ItThrowsBadRequest() Scopes = new[] { "write_repository" }, }; - var ex = Assert.ThrowsAsync((Func)(() => users.CreateTokenAsync(tokenRequest))); + var ex = await Assert.ThrowsAsync((Func)(() => users.CreateTokenAsync(tokenRequest))); Assert.That(ex.StatusCode, Is.EqualTo(HttpStatusCode.NotFound)); Assert.That(ex.ErrorMessage, Is.EqualTo("404 User Not Found")); }