mirror of
https://github.com/zoriya/octokit.net.git
synced 2026-06-05 03:30:34 +00:00
add support for organization web hooks (#1884)
This commit is contained in:
committed by
GitHub
parent
62c0b1fe08
commit
8d3e7b3c2c
@@ -0,0 +1,157 @@
|
||||
using System.Collections.Generic;
|
||||
using Xunit;
|
||||
|
||||
namespace Octokit.Tests.Models
|
||||
{
|
||||
public class NewOrganizationWebHookTests
|
||||
{
|
||||
public class TheCtor
|
||||
{
|
||||
[Fact]
|
||||
public void UsesDefaultValuesForDefaultConfig()
|
||||
{
|
||||
var create = new NewOrganizationWebHook("windowsazure", new Dictionary<string, string>(), "http://test.com/example");
|
||||
Assert.Equal(create.Url, "http://test.com/example");
|
||||
Assert.Equal(create.ContentType, OrgWebHookContentType.Form);
|
||||
Assert.Empty(create.Secret);
|
||||
Assert.False(create.InsecureSsl);
|
||||
|
||||
var request = create.ToRequest();
|
||||
Assert.Equal(request.Config.Count, 4);
|
||||
|
||||
Assert.True(request.Config.ContainsKey("url"));
|
||||
Assert.True(request.Config.ContainsKey("content_type"));
|
||||
Assert.True(request.Config.ContainsKey("secret"));
|
||||
Assert.True(request.Config.ContainsKey("insecure_ssl"));
|
||||
|
||||
Assert.Equal(request.Config["url"], "http://test.com/example");
|
||||
Assert.Equal(request.Config["content_type"], OrgWebHookContentType.Form.ToParameter());
|
||||
Assert.Equal(request.Config["secret"], "");
|
||||
Assert.Equal(request.Config["insecure_ssl"], "False");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void CombinesUserSpecifiedContentTypeWithConfig()
|
||||
{
|
||||
var config = new Dictionary<string, string>
|
||||
{
|
||||
{"hostname", "http://hostname.url"},
|
||||
{"username", "username"},
|
||||
{"password", "password"}
|
||||
};
|
||||
|
||||
var create = new NewOrganizationWebHook("windowsazure", config, "http://test.com/example")
|
||||
{
|
||||
ContentType = OrgWebHookContentType.Json,
|
||||
Secret = string.Empty,
|
||||
InsecureSsl = true
|
||||
};
|
||||
|
||||
Assert.Equal(create.Url, "http://test.com/example");
|
||||
Assert.Equal(create.ContentType, OrgWebHookContentType.Json);
|
||||
Assert.Empty(create.Secret);
|
||||
Assert.True(create.InsecureSsl);
|
||||
|
||||
var request = create.ToRequest();
|
||||
|
||||
Assert.Equal(request.Config.Count, 7);
|
||||
|
||||
Assert.True(request.Config.ContainsKey("url"));
|
||||
Assert.True(request.Config.ContainsKey("content_type"));
|
||||
Assert.True(request.Config.ContainsKey("secret"));
|
||||
Assert.True(request.Config.ContainsKey("insecure_ssl"));
|
||||
|
||||
Assert.Equal(request.Config["url"], "http://test.com/example");
|
||||
Assert.Equal(request.Config["content_type"], OrgWebHookContentType.Json.ToParameter());
|
||||
Assert.Equal(request.Config["secret"], "");
|
||||
Assert.Equal(request.Config["insecure_ssl"], true.ToString());
|
||||
|
||||
Assert.True(request.Config.ContainsKey("hostname"));
|
||||
Assert.Equal(request.Config["hostname"], config["hostname"]);
|
||||
Assert.True(request.Config.ContainsKey("username"));
|
||||
Assert.Equal(request.Config["username"], config["username"]);
|
||||
Assert.True(request.Config.ContainsKey("password"));
|
||||
Assert.Equal(request.Config["password"], config["password"]);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void CanSetHookEvents()
|
||||
{
|
||||
var create = new NewOrganizationWebHook("web", new Dictionary<string, string>(), "http://test.com/example")
|
||||
{
|
||||
Events = new List<string> { "*" }
|
||||
};
|
||||
|
||||
var request = create.ToRequest();
|
||||
|
||||
Assert.Contains("*", request.Events);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void EnsureCanCallToRequestMultipleTimes()
|
||||
{
|
||||
var create = new NewOrganizationWebHook("web", new Dictionary<string, string>(), "http://test.com/example")
|
||||
{
|
||||
Events = new List<string> { "*" }
|
||||
};
|
||||
|
||||
var request = create.ToRequest();
|
||||
var requestRepeated = create.ToRequest();
|
||||
|
||||
Assert.Contains("*", request.Events);
|
||||
Assert.Contains("*", requestRepeated.Events);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ShouldNotContainDuplicateConfigEntriesOnSubsequentRequests()
|
||||
{
|
||||
var create = new NewOrganizationWebHook("web", new Dictionary<string, string>(), "http://test.com/example");
|
||||
|
||||
var request = create.ToRequest();
|
||||
var requestRepeated = create.ToRequest();
|
||||
|
||||
Assert.Equal(request.Config.Count, 4);
|
||||
Assert.Equal(requestRepeated.Config.Count, 4);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ShouldNotContainDuplicateConfigEntriesOnSubsequentRequestsWithCustomisedConfig()
|
||||
{
|
||||
var config = new Dictionary<string, string>
|
||||
{
|
||||
{"url", "http://example.com/test"},
|
||||
{"hostname", "http://hostname.url"},
|
||||
{"username", "username"},
|
||||
{"password", "password"}
|
||||
};
|
||||
|
||||
var create = new NewOrganizationWebHook("web", config, "http://test.com/example");
|
||||
|
||||
var request = create.ToRequest();
|
||||
var requestRepeated = create.ToRequest();
|
||||
|
||||
//This is not 8, because `url` used in config, is already part of the base config
|
||||
Assert.Equal(request.Config.Count, 7);
|
||||
Assert.Equal(requestRepeated.Config.Count, 7);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void PropertiesShouldTakePrecedenceOverConfigPassedIn()
|
||||
{
|
||||
var config = new Dictionary<string, string>
|
||||
{
|
||||
{"url", "http://originalurl.com/test"},
|
||||
};
|
||||
|
||||
var create = new NewOrganizationWebHook("web", config, "http://test.com/example");
|
||||
|
||||
var request = create.ToRequest();
|
||||
|
||||
Assert.Equal(request.Config["url"], "http://test.com/example");
|
||||
|
||||
var subsequentRequest = create.ToRequest();
|
||||
Assert.Equal(subsequentRequest.Config["url"], "http://test.com/example");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user