using Octokit.Internal; using Xunit; namespace Octokit.Tests.Models { public class CheckRunEventTests { [Fact] public void CanBeDeserialized() { const string json = @"{ ""action"": ""rerequested"", ""check_run"": { ""id"": 4, ""head_sha"": ""d6fde92930d4715a2b49857d24b940956b26d2d3"", ""external_id"": """", ""url"": ""https://api.github.com/repos/github/hello-world/check-runs/4"", ""html_url"": ""http://github.com/github/hello-world/runs/4"", ""status"": ""completed"", ""conclusion"": ""neutral"", ""started_at"": ""2018-05-04T01:14:52Z"", ""completed_at"": ""2018-05-04T01:14:52Z"", ""output"": { ""title"": ""Report"", ""summary"": ""It's all good."", ""text"": ""Minus odio facilis repudiandae. Soluta odit aut amet magni nobis. Et voluptatibus ex dolorem et eum."", ""annotations_count"": 2, ""annotations_url"": ""https://api.github.com/repos/github/hello-world/check-runs/4/annotations"" }, ""name"": ""randscape"", ""check_suite"": { ""id"": 5, ""head_branch"": ""main"", ""head_sha"": ""d6fde92930d4715a2b49857d24b940956b26d2d3"", ""status"": ""completed"", ""conclusion"": ""neutral"", ""url"": ""https://api.github.com/repos/github/hello-world/check-suites/5"", ""before"": ""146e867f55c26428e5f9fade55a9bbf5e95a7912"", ""after"": ""d6fde92930d4715a2b49857d24b940956b26d2d3"", ""pull_requests"": [ ], ""app"": { ""id"": 2, ""node_id"": ""MDExOkludGVncmF0aW9uMQ=="", ""owner"": { ""login"": ""github"", ""id"": 340, ""node_id"": ""MDEyOk9yZ2FuaXphdGlvbjE="", ""avatar_url"": ""http://alambic.github.com/avatars/u/340?"", ""gravatar_id"": """", ""url"": ""https://api.github.com/users/github"", ""html_url"": ""http://github.com/github"", ""followers_url"": ""https://api.github.com/users/github/followers"", ""following_url"": ""https://api.github.com/users/github/following{/other_user}"", ""gists_url"": ""https://api.github.com/users/github/gists{/gist_id}"", ""starred_url"": ""https://api.github.com/users/github/starred{/owner}{/repo}"", ""subscriptions_url"": ""https://api.github.com/users/github/subscriptions"", ""organizations_url"": ""https://api.github.com/users/github/orgs"", ""repos_url"": ""https://api.github.com/users/github/repos"", ""events_url"": ""https://api.github.com/users/github/events{/privacy}"", ""received_events_url"": ""https://api.github.com/users/github/received_events"", ""type"": ""Organization"", ""site_admin"": false }, ""name"": ""Super Duper"", ""description"": null, ""external_url"": ""http://super-duper.example.com"", ""html_url"": ""http://github.com/apps/super-duper"", ""created_at"": ""2018-04-25T20:42:10Z"", ""updated_at"": ""2018-04-25T20:42:10Z"" }, ""created_at"": ""2018-05-04T01:14:52Z"", ""updated_at"": ""2018-05-04T01:14:52Z"" }, ""app"": { ""id"": 2, ""node_id"": ""MDExOkludGVncmF0aW9uMQ=="", ""owner"": { ""login"": ""github"", ""id"": 340, ""node_id"": ""MDEyOk9yZ2FuaXphdGlvbjE="", ""avatar_url"": ""http://alambic.github.com/avatars/u/340?"", ""gravatar_id"": """", ""url"": ""https://api.github.com/users/github"", ""html_url"": ""http://github.com/github"", ""followers_url"": ""https://api.github.com/users/github/followers"", ""following_url"": ""https://api.github.com/users/github/following{/other_user}"", ""gists_url"": ""https://api.github.com/users/github/gists{/gist_id}"", ""starred_url"": ""https://api.github.com/users/github/starred{/owner}{/repo}"", ""subscriptions_url"": ""https://api.github.com/users/github/subscriptions"", ""organizations_url"": ""https://api.github.com/users/github/orgs"", ""repos_url"": ""https://api.github.com/users/github/repos"", ""events_url"": ""https://api.github.com/users/github/events{/privacy}"", ""received_events_url"": ""https://api.github.com/users/github/received_events"", ""type"": ""Organization"", ""site_admin"": false }, ""name"": ""Super Duper"", ""description"": null, ""external_url"": ""http://super-duper.example.com"", ""html_url"": ""http://github.com/apps/super-duper"", ""created_at"": ""2018-04-25T20:42:10Z"", ""updated_at"": ""2018-04-25T20:42:10Z"" }, ""pull_requests"": [ ] }, ""requested_action"": { ""identifier"": ""dosomeaction"" }, ""repository"": { ""id"": 526, ""node_id"": ""MDEwOlJlcG9zaXRvcnkxMzU0OTMyMzM="", ""name"": ""hello-world"", ""full_name"": ""github/hello-world"", ""owner"": { ""login"": ""github"", ""id"": 340, ""node_id"": ""MDQ6VXNlcjIxMDMxMDY3"", ""avatar_url"": ""http://alambic.github.com/avatars/u/340?"", ""gravatar_id"": """", ""url"": ""https://api.github.com/users/github"", ""html_url"": ""http://github.com/github"", ""followers_url"": ""https://api.github.com/users/github/followers"", ""following_url"": ""https://api.github.com/users/github/following{/other_user}"", ""gists_url"": ""https://api.github.com/users/github/gists{/gist_id}"", ""starred_url"": ""https://api.github.com/users/github/starred{/owner}{/repo}"", ""subscriptions_url"": ""https://api.github.com/users/github/subscriptions"", ""organizations_url"": ""https://api.github.com/users/github/orgs"", ""repos_url"": ""https://api.github.com/users/github/repos"", ""events_url"": ""https://api.github.com/users/github/events{/privacy}"", ""received_events_url"": ""https://api.github.com/users/github/received_events"", ""type"": ""Organization"", ""site_admin"": false }, ""private"": false, ""html_url"": ""http://github.com/github/hello-world"", ""description"": null, ""fork"": false, ""url"": ""https://api.github.com/repos/github/hello-world"", ""forks_url"": ""https://api.github.com/repos/github/hello-world/forks"", ""keys_url"": ""https://api.github.com/repos/github/hello-world/keys{/key_id}"", ""collaborators_url"": ""https://api.github.com/repos/github/hello-world/collaborators{/collaborator}"", ""teams_url"": ""https://api.github.com/repos/github/hello-world/teams"", ""hooks_url"": ""https://api.github.com/repos/github/hello-world/hooks"", ""issue_events_url"": ""https://api.github.com/repos/github/hello-world/issues/events{/number}"", ""events_url"": ""https://api.github.com/repos/github/hello-world/events"", ""assignees_url"": ""https://api.github.com/repos/github/hello-world/assignees{/user}"", ""branches_url"": ""https://api.github.com/repos/github/hello-world/branches{/branch}"", ""tags_url"": ""https://api.github.com/repos/github/hello-world/tags"", ""blobs_url"": ""https://api.github.com/repos/github/hello-world/git/blobs{/sha}"", ""git_tags_url"": ""https://api.github.com/repos/github/hello-world/git/tags{/sha}"", ""git_refs_url"": ""https://api.github.com/repos/github/hello-world/git/refs{/sha}"", ""trees_url"": ""https://api.github.com/repos/github/hello-world/git/trees{/sha}"", ""statuses_url"": ""https://api.github.com/repos/github/hello-world/statuses/{sha}"", ""languages_url"": ""https://api.github.com/repos/github/hello-world/languages"", ""stargazers_url"": ""https://api.github.com/repos/github/hello-world/stargazers"", ""contributors_url"": ""https://api.github.com/repos/github/hello-world/contributors"", ""subscribers_url"": ""https://api.github.com/repos/github/hello-world/subscribers"", ""subscription_url"": ""https://api.github.com/repos/github/hello-world/subscription"", ""commits_url"": ""https://api.github.com/repos/github/hello-world/commits{/sha}"", ""git_commits_url"": ""https://api.github.com/repos/github/hello-world/git/commits{/sha}"", ""comments_url"": ""https://api.github.com/repos/github/hello-world/comments{/number}"", ""issue_comment_url"": ""https://api.github.com/repos/github/hello-world/issues/comments{/number}"", ""contents_url"": ""https://api.github.com/repos/github/hello-world/contents/{+path}"", ""compare_url"": ""https://api.github.com/repos/github/hello-world/compare/{base}...{head}"", ""merges_url"": ""https://api.github.com/repos/github/hello-world/merges"", ""archive_url"": ""https://api.github.com/repos/github/hello-world/{archive_format}{/ref}"", ""downloads_url"": ""https://api.github.com/repos/github/hello-world/downloads"", ""issues_url"": ""https://api.github.com/repos/github/hello-world/issues{/number}"", ""pulls_url"": ""https://api.github.com/repos/github/hello-world/pulls{/number}"", ""milestones_url"": ""https://api.github.com/repos/github/hello-world/milestones{/number}"", ""notifications_url"": ""https://api.github.com/repos/github/hello-world/notifications{?since,all,participating}"", ""labels_url"": ""https://api.github.com/repos/github/hello-world/labels{/name}"", ""releases_url"": ""https://api.github.com/repos/github/hello-world/releases{/id}"", ""deployments_url"": ""https://api.github.com/repos/github/hello-world/deployments"", ""created_at"": ""2018-04-25T20:42:10Z"", ""updated_at"": ""2018-04-25T20:43:34Z"", ""pushed_at"": ""2018-05-04T01:14:47Z"", ""git_url"": ""git://github.com/github/hello-world.git"", ""ssh_url"": ""ssh://git@localhost:3035/github/hello-world.git"", ""clone_url"": ""http://github.com/github/hello-world.git"", ""svn_url"": ""http://github.com/github/hello-world"", ""homepage"": null, ""size"": 0, ""stargazers_count"": 0, ""watchers_count"": 0, ""language"": null, ""has_issues"": true, ""has_projects"": true, ""has_downloads"": true, ""has_wiki"": true, ""has_pages"": false, ""forks_count"": 0, ""mirror_url"": null, ""archived"": false, ""open_issues_count"": 3, ""license"": null, ""forks"": 0, ""open_issues"": 3, ""watchers"": 0, ""default_branch"": ""main"" }, ""organization"": { ""login"": ""github"", ""id"": 340, ""node_id"": ""MDEyOk9yZ2FuaXphdGlvbjM4MzAyODk5"", ""url"": ""https://api.github.com/orgs/github"", ""repos_url"": ""https://api.github.com/orgs/github/repos"", ""events_url"": ""https://api.github.com/orgs/github/events"", ""hooks_url"": ""https://api.github.com/orgs/github/hooks"", ""issues_url"": ""https://api.github.com/orgs/github/issues"", ""members_url"": ""https://api.github.com/orgs/github/members{/member}"", ""public_members_url"": ""https://api.github.com/orgs/github/public_members{/member}"", ""avatar_url"": ""http://alambic.github.com/avatars/u/340?"", ""description"": ""How people build software."" }, ""sender"": { ""login"": ""octocat"", ""id"": 5346, ""node_id"": ""MDQ6VXNlcjIxMDMxMDY3"", ""avatar_url"": ""http://alambic.github.com/avatars/u/5346?"", ""gravatar_id"": """", ""url"": ""https://api.github.com/users/octocat"", ""html_url"": ""http://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 }, ""installation"": { ""id"": 1 } }"; var serializer = new SimpleJsonSerializer(); var payload = serializer.Deserialize(json); Assert.Equal("rerequested", payload.Action); Assert.Equal("d6fde92930d4715a2b49857d24b940956b26d2d3", payload.CheckRun.HeadSha); Assert.Equal(4, payload.CheckRun.Id); Assert.Equal(CheckStatus.Completed, payload.CheckRun.Status); Assert.Equal(CheckConclusion.Neutral, payload.CheckRun.Conclusion); Assert.Equal("dosomeaction", payload.RequestedAction.Identifier); Assert.Equal(5, payload.CheckRun.CheckSuite.Id); Assert.Equal(CheckStatus.Completed, payload.CheckRun.CheckSuite.Status.Value); Assert.Equal(CheckConclusion.Neutral, payload.CheckRun.CheckSuite.Conclusion); } } }