public void IssueEventDeserialization_SameAsExpected()
        {
            var expected = new IssuesHookData
            {
                Action = "labeled",
                Issue  = new IssuesHookIssue
                {
                    Assignee = new IssuesHookUser
                    {
                        Login = "******",
                    },
                    Labels = ImmutableArray.Create(new[]
                    {
                        new IssuesHookLabel {
                            Name = "area-GC-coreclr"
                        },
                        new IssuesHookLabel {
                            Name = "area-Serialization"
                        },
                        new IssuesHookLabel {
                            Name = "area-cat"
                        },
                    }),
                    Number  = 217,
                    State   = ItemState.Open,
                    Title   = "Intermittent serialization error in GC during build",
                    Url     = "https://api.github.com/repos/thatguy-int-tests/issue-notify-tests/issues/217",
                    HtmlUrl = "https://github.com/thatguy-int-tests/issue-notify-tests/issues/217",
                    Body    = "This one is a mystery"
                },
                Label = new IssuesHookLabel
                {
                    Name = "area-cat"
                },
                Repository = new IssuesHookRepository
                {
                    Name  = "issue-notify-tests",
                    Owner = new IssuesHookUser {
                        Login = "******"
                    },
                    Id = 987654321,
                },
                Sender = new IssuesHookUser
                {
                    Login = "******",
                }
            };

            var issueEvent = JsonSerializer.Deserialize <IssuesHookData>(GetTestPayload(), GitHubHookController.SerializerOptions());

            issueEvent.Should().BeEquivalentTo(expected);
        }
        public void IssueEventDeserialization_SameAsNewtonsoft()
        {
            string payload = GetTestPayload();

            // lets try to deser it by our code and Newtonsoft which by default has compatible setting
            // if this test is passing, we know that we can consider usage of Newtonsoft.Json for deserialization
            var issueEvent           = JsonSerializer.Deserialize <IssuesHookData>(payload, GitHubHookController.SerializerOptions());
            var issueEventNewtonsoft = Newtonsoft.Json.JsonConvert.DeserializeObject <IssuesHookData>(payload);

            issueEvent.Should().BeEquivalentTo(issueEventNewtonsoft);
        }