mirror of
https://github.com/zoriya/octokit.net.git
synced 2025-12-06 07:16:09 +00:00
* Initial implementation of ManagementConsole - maintenance mode * Add environment var support for management console password for integration tests * Add reactive client and unit tests * Update some xmlDoc * I think this is a better way to setup the underlying baseUri on IConneciton, to achieve managemet console access rather than requiring a specific GitHubClient that cant call normal API's Instead, the management client methods can check the base Url and if it contains /api/v3/ they can set their relative endpoint Uri to include a leading "/" which will cause the /api/v3/ to be removed. * Update EnterpriseClient.cs Fix xml comments * Update IEnterpriseClient.cs Fix xml comments * Still trying to get the xmDoc perfect, thanks app veyor :) * XmlDoc'ing my way to success * Add specific test attribute for management console tests * check chronic string empty/null * Use helper's password field in test * Tidy up maintenance mode tests by using a context/destructor to manage the initial/end state of maintenance mode * make internal and tidy up URL concatenation * move GHE endpoint fixup inside ApiUrls methods * Rework request object to be the correct structure so SimpleJsonSerializer can be used to serialize it. Remove MaintenanceDate class and just pass in the Date/string for when Still need to use UrlFormEncoding rather than json in the POST body though... * Create abstract base class for FormUrlEncoded parameters (similar to existing RequetParameters) and inherit from it in UpdateMaintenanceRequest * Fix maintenance context logic - destructor should always turn maintenance OFF regardless of initial requested state * Fix xml comment * Fix Xml comment * Those pesky xml comments! * Fine, I give up! * Fix string.Format * fix bad rebase * fix failing convention tests * restore missing whitespace * writing some docs * some edits * edit
93 lines
3.2 KiB
C#
93 lines
3.2 KiB
C#
using System;
|
|
using NSubstitute;
|
|
using Octokit.Reactive;
|
|
using Xunit;
|
|
|
|
namespace Octokit.Tests
|
|
{
|
|
public class ObservableEnterpriseManagementConsoleClientTests
|
|
{
|
|
public class TheGetMaintenanceModeMethod
|
|
{
|
|
[Fact]
|
|
public void CallsIntoClient()
|
|
{
|
|
var github = Substitute.For<IGitHubClient>();
|
|
var client = new ObservableEnterpriseManagementConsoleClient(github);
|
|
|
|
client.GetMaintenanceMode("Password01");
|
|
|
|
github.Enterprise.ManagementConsole.Received(1).
|
|
GetMaintenanceMode(Arg.Is("Password01"));
|
|
}
|
|
|
|
[Fact]
|
|
public void EnsuresNonNullArguments()
|
|
{
|
|
var github = Substitute.For<IGitHubClient>();
|
|
var client = new ObservableEnterpriseManagementConsoleClient(github);
|
|
|
|
Assert.Throws<ArgumentNullException>(() => client.GetMaintenanceMode(null));
|
|
}
|
|
|
|
[Fact]
|
|
public void EnsuresNonEmptyArguments()
|
|
{
|
|
var github = Substitute.For<IGitHubClient>();
|
|
var client = new ObservableEnterpriseManagementConsoleClient(github);
|
|
|
|
Assert.Throws<ArgumentException>(() => client.GetMaintenanceMode(""));
|
|
}
|
|
}
|
|
|
|
public class TheEditMaintenanceModeMethod
|
|
{
|
|
[Fact]
|
|
public void CallsIntoClient()
|
|
{
|
|
var github = Substitute.For<IGitHubClient>();
|
|
var client = new ObservableEnterpriseManagementConsoleClient(github);
|
|
|
|
client.EditMaintenanceMode(
|
|
new UpdateMaintenanceRequest(new UpdateMaintenanceRequestDetails(true)),
|
|
"Password01");
|
|
|
|
github.Enterprise.ManagementConsole.Received(1).
|
|
EditMaintenanceMode(
|
|
Arg.Is<UpdateMaintenanceRequest>(a =>
|
|
a.Maintenance.Enabled == true &&
|
|
a.Maintenance.When == "now"),
|
|
Arg.Is("Password01"));
|
|
}
|
|
|
|
[Fact]
|
|
public void EnsuresNonNullArguments()
|
|
{
|
|
var github = Substitute.For<IGitHubClient>();
|
|
var client = new ObservableEnterpriseManagementConsoleClient(github);
|
|
|
|
Assert.Throws<ArgumentNullException>(() => client.EditMaintenanceMode(null, "Password01"));
|
|
Assert.Throws<ArgumentNullException>(() => client.EditMaintenanceMode(new UpdateMaintenanceRequest(), null));
|
|
}
|
|
|
|
[Fact]
|
|
public void EnsuresNonEmptyArguments()
|
|
{
|
|
var github = Substitute.For<IGitHubClient>();
|
|
var client = new ObservableEnterpriseManagementConsoleClient(github);
|
|
|
|
Assert.Throws<ArgumentException>(() => client.EditMaintenanceMode(new UpdateMaintenanceRequest(), ""));
|
|
}
|
|
}
|
|
|
|
public class TheCtor
|
|
{
|
|
[Fact]
|
|
public void EnsuresNonNullArguments()
|
|
{
|
|
Assert.Throws<ArgumentNullException>(() => new ObservableEnterpriseManagementConsoleClient(null));
|
|
}
|
|
}
|
|
}
|
|
}
|