Files
octokit.net/Octokit.Tests/Models/DeploymentStatusTests.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

108 lines
5.8 KiB
C#

using System;
using Octokit.Internal;
using Xunit;
namespace Octokit.Tests.Models
{
public class DeploymentStatusTests
{
[Fact]
public void CanDeserialize()
{
const string json = @"{
""id"": 1,
""url"": ""https://api.github.com/repos/octocat/example/deployments/1/statuses/42"",
""state"": ""success"",
""creator"": {
""login"": ""octocat"",
""id"": 1,
""avatar_url"": ""https://github.com/images/error/octocat_happy.gif"",
""gravatar_id"": ""somehexcode"",
""url"": ""https://api.github.com/users/octocat"",
""html_url"": ""https://github.com/octocat"",
""followers_url"": ""https://api.github.com/users/octocat/followers"",
""following_url"": ""https://api.github.com/users/octocat/following{/other_user}"",
""gists_url"": ""https://api.github.com/users/octocat/gists{/gist_id}"",
""starred_url"": ""https://api.github.com/users/octocat/starred{/owner}{/repo}"",
""subscriptions_url"": ""https://api.github.com/users/octocat/subscriptions"",
""organizations_url"": ""https://api.github.com/users/octocat/orgs"",
""repos_url"": ""https://api.github.com/users/octocat/repos"",
""events_url"": ""https://api.github.com/users/octocat/events{/privacy}"",
""received_events_url"": ""https://api.github.com/users/octocat/received_events"",
""type"": ""User"",
""site_admin"": false
},
""payload"": { ""environment"":""production""},
""target_url"": ""https://gist.github.com/628b2736d379f"",
""created_at"": ""2012-07-20T01:19:13Z"",
""updated_at"": ""2012-07-20T01:19:13Z"",
""description"": ""Deploy request from hubot""
}";
var actual = new SimpleJsonSerializer().Deserialize<DeploymentStatus>(json);
Assert.Equal(1, actual.Id);
Assert.Equal("https://api.github.com/repos/octocat/example/deployments/1/statuses/42", actual.Url);
Assert.Equal(DeploymentState.Success, actual.State);
Assert.Single(actual.Payload);
Assert.Equal("production", actual.Payload["environment"]);
Assert.Equal("https://gist.github.com/628b2736d379f", actual.TargetUrl);
Assert.Equal(DateTimeOffset.Parse("2012-07-20T01:19:13Z"), actual.CreatedAt);
Assert.Equal(DateTimeOffset.Parse("2012-07-20T01:19:13Z"), actual.UpdatedAt);
Assert.Equal("Deploy request from hubot", actual.Description);
}
[Fact]
public void CanDeserialize64BitId()
{
const string json = @"{
""url"": ""https://api.github.com/repos/tgstation/TerraGov-Marine-Corps/deployments/965900823/statuses/2151661540"",
""id"": 2151661540,
""node_id"": ""DES_kwDOCXi6sc6AP7_k"",
""state"": ""in_progress"",
""creator"": {
""login"": ""comfyorange"",
""id"": 61334995,
""node_id"": ""MDQ6VXNlcjYxMzM0OTk1"",
""avatar_url"": ""https://avatars.githubusercontent.com/u/61334995?v=4"",
""gravatar_id"": """",
""url"": ""https://api.github.com/users/comfyorange"",
""html_url"": ""https://github.com/comfyorange"",
""followers_url"": ""https://api.github.com/users/comfyorange/followers"",
""following_url"": ""https://api.github.com/users/comfyorange/following{/other_user}"",
""gists_url"": ""https://api.github.com/users/comfyorange/gists{/gist_id}"",
""starred_url"": ""https://api.github.com/users/comfyorange/starred{/owner}{/repo}"",
""subscriptions_url"": ""https://api.github.com/users/comfyorange/subscriptions"",
""organizations_url"": ""https://api.github.com/users/comfyorange/orgs"",
""repos_url"": ""https://api.github.com/users/comfyorange/repos"",
""events_url"": ""https://api.github.com/users/comfyorange/events{/privacy}"",
""received_events_url"": ""https://api.github.com/users/comfyorange/received_events"",
""type"": ""User"",
""site_admin"": false
},
""description"": ""The project is being deployed"",
""environment"": ""TGS: TGMC"",
""target_url"": """",
""created_at"": ""2023-06-29T19:10:55Z"",
""updated_at"": ""2023-06-29T19:10:55Z"",
""deployment_url"": ""https://api.github.com/repos/tgstation/TerraGov-Marine-Corps/deployments/965900823"",
""repository_url"": ""https://api.github.com/repos/tgstation/TerraGov-Marine-Corps"",
""environment_url"": """",
""log_url"": """",
""performed_via_github_app"": null
}";
var actual = new SimpleJsonSerializer().Deserialize<DeploymentStatus>(json);
Assert.Equal(2151661540, actual.Id);
Assert.Equal("https://api.github.com/repos/tgstation/TerraGov-Marine-Corps/deployments/965900823/statuses/2151661540", actual.Url);
Assert.Equal(DeploymentState.InProgress, actual.State);
Assert.Null(actual.Payload);
Assert.Equal(String.Empty, actual.TargetUrl);
Assert.Equal(DateTimeOffset.Parse("2023-06-29T19:10:55Z"), actual.CreatedAt);
Assert.Equal(DateTimeOffset.Parse("2023-06-29T19:10:55Z"), actual.UpdatedAt);
Assert.Equal("The project is being deployed", actual.Description);
}
}
}