Files
octokit.net/Octokit.Tests.Integration/Clients/OrganizationClientTests.cs
Tom Longhurst cd1835326b Fix xUnit Warnings (#2906)
* Fix xUnit Warnings

* Fix

* Fix formatting in AsyncPaginationExtensionGenerator.cs

---------

Co-authored-by: Keegan Campbell <me@kfcampbell.com>
2024-04-15 13:19:26 -07:00

196 lines
8.7 KiB
C#

using System.Collections;
using System.Threading.Tasks;
using Xunit;
namespace Octokit.Tests.Integration.Clients
{
public class OrganizationClientTests
{
public class TheGetAllMethod
{
[GitHubEnterpriseTest]
public async Task CanListAllOrganizations()
{
var github = EnterpriseHelper.GetAuthenticatedClient();
var organizationsClient = github.Organization;
string orgLogin1 = Helper.MakeNameWithTimestamp("MyOrganization1");
string orgName1 = string.Concat(orgLogin1, " Display Name 1");
string orgLogin2 = Helper.MakeNameWithTimestamp("MyOrganization2");
string orgName2 = string.Concat(orgLogin2, " Display Name 2");
var newOrganization1 = new NewOrganization(orgLogin1, EnterpriseHelper.UserName, orgName1);
var newOrganization2 = new NewOrganization(orgLogin2, EnterpriseHelper.UserName, orgName2);
await github.Enterprise.Organization.Create(newOrganization1);
await github.Enterprise.Organization.Create(newOrganization2);
var organizations = await organizationsClient.GetAll();
Assert.Contains(organizations, (org => org.Login == orgLogin1));
Assert.Contains(organizations, (org => org.Login == orgLogin2));
}
[GitHubEnterpriseTest]
public async Task ReturnsCorrectOrganizationsWithSince()
{
var github = EnterpriseHelper.GetAuthenticatedClient();
var organizationsClient = github.Organization;
string orgLogin1 = Helper.MakeNameWithTimestamp("MyOrganization1");
string orgName1 = string.Concat(orgLogin1, " Display Name 1");
string orgLogin2 = Helper.MakeNameWithTimestamp("MyOrganization2");
string orgName2 = string.Concat(orgLogin2, " Display Name 2");
string orgLogin3 = Helper.MakeNameWithTimestamp("MyOrganization3");
string orgName3 = string.Concat(orgLogin3, " Display Name 3");
var newOrganization1 = new NewOrganization(orgLogin1, EnterpriseHelper.UserName, orgName1);
var newOrganization2 = new NewOrganization(orgLogin2, EnterpriseHelper.UserName, orgName2);
var newOrganization3 = new NewOrganization(orgLogin3, EnterpriseHelper.UserName, orgName3);
var createdOrganization1 = await github.Enterprise.Organization.Create(newOrganization1);
var createdOrganization2 = await github.Enterprise.Organization.Create(newOrganization2);
var createdOrganization3 = await github.Enterprise.Organization.Create(newOrganization3);
var requestParameter = new OrganizationRequest(createdOrganization1.Id);
var organizations = await organizationsClient.GetAll(requestParameter);
Assert.DoesNotContain(organizations, (org => org.Login == orgLogin1));
Assert.Contains(organizations, (org => org.Login == orgLogin2));
Assert.Contains(organizations, (org => org.Login == orgLogin3));
}
}
public class TheGetMethod
{
[IntegrationTest]
[PotentiallyFlakyTest]
public async Task GetFreeOrganization()
{
var github = Helper.GetAuthenticatedClient();
var organization = await
github.Organization.Get("snyrting6orggithub");
Assert.Equal(0, organization.Plan.Seats);
Assert.Equal(1, organization.Plan.FilledSeats);
}
}
public class TheGetAllForCurrentMethod
{
readonly IGitHubClient _github;
readonly IOrganizationsClient _organizationsClient;
public TheGetAllForCurrentMethod()
{
_github = EnterpriseHelper.GetAuthenticatedClient();
_organizationsClient = _github.Organization;
}
[GitHubEnterpriseTest]
public async Task CanListUserOrganizations()
{
string orgLogin = Helper.MakeNameWithTimestamp("MyOrganization");
string orgName = string.Concat(orgLogin, " Display Name");
var newOrganization = new NewOrganization(orgLogin, EnterpriseHelper.UserName, orgName);
var organization = await _github.Enterprise.Organization.Create(newOrganization);
Assert.NotNull(organization);
var organizations = await _organizationsClient.GetAllForCurrent();
Assert.NotEmpty(organizations);
}
[GitHubEnterpriseTest]
public async Task ReturnsCorrectCountOfUserOrganizationsWithoutStart()
{
string orgLogin1 = Helper.MakeNameWithTimestamp("MyOrganization1");
string orgName1 = string.Concat(orgLogin1, " Display Name 1");
string orgLogin2 = Helper.MakeNameWithTimestamp("MyOrganization2");
string orgName2 = string.Concat(orgLogin2, " Display Name 2");
var newOrganization1 = new NewOrganization(orgLogin1, EnterpriseHelper.UserName, orgName1);
var newOrganization2 = new NewOrganization(orgLogin2, EnterpriseHelper.UserName, orgName2);
await _github.Enterprise.Organization.Create(newOrganization1);
await _github.Enterprise.Organization.Create(newOrganization2);
var options = new ApiOptions
{
PageSize = 2,
PageCount = 1
};
var organizations = await _organizationsClient.GetAllForCurrent(options);
Assert.Equal(2, organizations.Count);
}
[GitHubEnterpriseTest]
public async Task ReturnsCorrectCountOfUserOrganizationsWithStart()
{
string orgLogin1 = Helper.MakeNameWithTimestamp("MyOrganization1");
string orgName1 = string.Concat(orgLogin1, " Display Name 1");
string orgLogin2 = Helper.MakeNameWithTimestamp("MyOrganization2");
string orgName2 = string.Concat(orgLogin2, " Display Name 2");
var newOrganization1 = new NewOrganization(orgLogin1, EnterpriseHelper.UserName, orgName1);
var newOrganization2 = new NewOrganization(orgLogin2, EnterpriseHelper.UserName, orgName2);
await _github.Enterprise.Organization.Create(newOrganization1);
await _github.Enterprise.Organization.Create(newOrganization2);
var options = new ApiOptions
{
PageSize = 1,
PageCount = 1,
StartPage = 2,
};
var organizations = await _organizationsClient.GetAllForCurrent(options);
Assert.Single(organizations);
}
[GitHubEnterpriseTest]
public async Task ReturnsDistinctResultsBasedOnStartPage()
{
string orgLogin1 = Helper.MakeNameWithTimestamp("MyOrganization1");
string orgName1 = string.Concat(orgLogin1, " Display Name 1");
string orgLogin2 = Helper.MakeNameWithTimestamp("MyOrganization2");
string orgName2 = string.Concat(orgLogin2, " Display Name 2");
string orgLogin3 = Helper.MakeNameWithTimestamp("MyOrganization3");
string orgName3 = string.Concat(orgLogin3, " Display Name 3");
var newOrganization1 = new NewOrganization(orgLogin1, EnterpriseHelper.UserName, orgName1);
var newOrganization2 = new NewOrganization(orgLogin2, EnterpriseHelper.UserName, orgName2);
var newOrganization3 = new NewOrganization(orgLogin3, EnterpriseHelper.UserName, orgName3);
await _github.Enterprise.Organization.Create(newOrganization1);
await _github.Enterprise.Organization.Create(newOrganization2);
await _github.Enterprise.Organization.Create(newOrganization3);
var startOptions = new ApiOptions
{
PageSize = 1,
PageCount = 1
};
var firstPage = await _organizationsClient.GetAllForCurrent(startOptions);
var skipStartOptions = new ApiOptions
{
PageSize = 1,
PageCount = 1,
StartPage = 2
};
var secondPage = await _organizationsClient.GetAllForCurrent(skipStartOptions);
Assert.NotEqual(firstPage[0].Login, secondPage[0].Login);
}
}
}
}