{"action":"created","comment":{"url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/pulls/comments/132214679","pull_request_review_id":55268883,"id":132214679,"diff_hunk":"@@ -37,108 +37,83 @@\n using Microsoft.IdentityModel.Tokens;\n using Microsoft.IdentityModel.Tokens.Saml;\n using Microsoft.IdentityModel.Xml;\n+using System.Collections.ObjectModel;\n+using System.Linq;\n \n namespace Microsoft.IdentityModel.Tests\n {\n-    public class CompareContext\n-    {       \n-        List<string> _diffs = new List<string>();\n+    public class IdentityComparer\n+    {\n+        private static readonly Dictionary<string, Func<Object, object, CompareContext, bool>> _equalityDict =\n+            new Dictionary<string, Func<Object, object, CompareContext, bool>>()\n+        {\n+            {typeof(IEnumerable<Claim>).ToString(), AreClaimsEnumsEqual },\n+            {typeof(IEnumerable<ClaimsIdentity>).ToString(), AreClaimsIdentitiesEnumsEqual },\n+            {typeof(IEnumerable<string>).ToString(), AreStringEnumsEqual },\n+            {typeof(IEnumerable<SecurityKey>).ToString(), AreSecurityKeyEnumsEqual },\n+            {typeof(Newtonsoft.Json.Linq.JArray).ToString(), AreJArraysEqual },\n+            {typeof(string).ToString(), AreStringsEqual },\n+            {typeof(IDictionary<string, string>).ToString(), AreStringDictionariesEqual},","path":"test/Microsoft.IdentityModel.Tests/IdentityComparer.cs","position":23,"original_position":23,"commit_id":"8b5c3d9ad4c8ebd9d2d5c6969dea6dce10930e95","original_commit_id":"8b5c3d9ad4c8ebd9d2d5c6969dea6dce10930e95","user":{"login":"brentschmaltz","id":3172421,"avatar_url":"https://avatars0.githubusercontent.com/u/3172421?v=4","gravatar_id":"","url":"https://api.github.com/users/brentschmaltz","html_url":"https://github.com/brentschmaltz","followers_url":"https://api.github.com/users/brentschmaltz/followers","following_url":"https://api.github.com/users/brentschmaltz/following{/other_user}","gists_url":"https://api.github.com/users/brentschmaltz/gists{/gist_id}","starred_url":"https://api.github.com/users/brentschmaltz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/brentschmaltz/subscriptions","organizations_url":"https://api.github.com/users/brentschmaltz/orgs","repos_url":"https://api.github.com/users/brentschmaltz/repos","events_url":"https://api.github.com/users/brentschmaltz/events{/privacy}","received_events_url":"https://api.github.com/users/brentschmaltz/received_events","type":"User","site_admin":false},"body":"slight inconsistent naming here.\r\nEither 'AreStringStringDictionariesEqual' OR 'AreObjectDictionariesEqual'.","created_at":"2017-08-09T15:14:24Z","updated_at":"2017-08-09T15:26:30Z","html_url":"https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/pull/669#discussion_r132214679","pull_request_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/pulls/669","_links":{"self":{"href":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/pulls/comments/132214679"},"html":{"href":"https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/pull/669#discussion_r132214679"},"pull_request":{"href":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/pulls/669"}}},"pull_request":{"url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/pulls/669","id":134733857,"html_url":"https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/pull/669","diff_url":"https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/pull/669.diff","patch_url":"https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/pull/669.patch","issue_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/issues/669","number":669,"state":"open","locked":false,"title":"#666 Improve IdentityComparer logic.","user":{"login":"mafurman","id":30272009,"avatar_url":"https://avatars0.githubusercontent.com/u/30272009?v=4","gravatar_id":"","url":"https://api.github.com/users/mafurman","html_url":"https://github.com/mafurman","followers_url":"https://api.github.com/users/mafurman/followers","following_url":"https://api.github.com/users/mafurman/following{/other_user}","gists_url":"https://api.github.com/users/mafurman/gists{/gist_id}","starred_url":"https://api.github.com/users/mafurman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mafurman/subscriptions","organizations_url":"https://api.github.com/users/mafurman/orgs","repos_url":"https://api.github.com/users/mafurman/repos","events_url":"https://api.github.com/users/mafurman/events{/privacy}","received_events_url":"https://api.github.com/users/mafurman/received_events","type":"User","site_admin":false},"body":"Implements #666.","created_at":"2017-08-08T18:58:32Z","updated_at":"2017-08-09T15:26:30Z","closed_at":null,"merged_at":null,"merge_commit_sha":"2763083364548b86d40513991e76a712d5098ca8","assignee":null,"assignees":[],"requested_reviewers":[],"milestone":null,"commits_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/pulls/669/commits","review_comments_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/pulls/669/comments","review_comment_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/pulls/comments{/number}","comments_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/issues/669/comments","statuses_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/statuses/8b5c3d9ad4c8ebd9d2d5c6969dea6dce10930e95","head":{"label":"AzureAD:identitycomparer","ref":"identitycomparer","sha":"8b5c3d9ad4c8ebd9d2d5c6969dea6dce10930e95","user":{"login":"AzureAD","id":2966316,"avatar_url":"https://avatars1.githubusercontent.com/u/2966316?v=4","gravatar_id":"","url":"https://api.github.com/users/AzureAD","html_url":"https://github.com/AzureAD","followers_url":"https://api.github.com/users/AzureAD/followers","following_url":"https://api.github.com/users/AzureAD/following{/other_user}","gists_url":"https://api.github.com/users/AzureAD/gists{/gist_id}","starred_url":"https://api.github.com/users/AzureAD/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AzureAD/subscriptions","organizations_url":"https://api.github.com/users/AzureAD/orgs","repos_url":"https://api.github.com/users/AzureAD/repos","events_url":"https://api.github.com/users/AzureAD/events{/privacy}","received_events_url":"https://api.github.com/users/AzureAD/received_events","type":"Organization","site_admin":false},"repo":{"id":17496194,"name":"azure-activedirectory-identitymodel-extensions-for-dotnet","full_name":"AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet","owner":{"login":"AzureAD","id":2966316,"avatar_url":"https://avatars1.githubusercontent.com/u/2966316?v=4","gravatar_id":"","url":"https://api.github.com/users/AzureAD","html_url":"https://github.com/AzureAD","followers_url":"https://api.github.com/users/AzureAD/followers","following_url":"https://api.github.com/users/AzureAD/following{/other_user}","gists_url":"https://api.github.com/users/AzureAD/gists{/gist_id}","starred_url":"https://api.github.com/users/AzureAD/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AzureAD/subscriptions","organizations_url":"https://api.github.com/users/AzureAD/orgs","repos_url":"https://api.github.com/users/AzureAD/repos","events_url":"https://api.github.com/users/AzureAD/events{/privacy}","received_events_url":"https://api.github.com/users/AzureAD/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet","description":"IdentityModel extensions for .Net","fork":false,"url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet","forks_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/forks","keys_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/keys{/key_id}","collaborators_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/teams","hooks_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/hooks","issue_events_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/issues/events{/number}","events_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/events","assignees_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/assignees{/user}","branches_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/branches{/branch}","tags_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/tags","blobs_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/git/refs{/sha}","trees_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/git/trees{/sha}","statuses_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/statuses/{sha}","languages_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/languages","stargazers_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/stargazers","contributors_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/contributors","subscribers_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/subscribers","subscription_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/subscription","commits_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/commits{/sha}","git_commits_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/git/commits{/sha}","comments_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/comments{/number}","issue_comment_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/issues/comments{/number}","contents_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/contents/{+path}","compare_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/compare/{base}...{head}","merges_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/merges","archive_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/downloads","issues_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/issues{/number}","pulls_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/pulls{/number}","milestones_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/milestones{/number}","notifications_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/labels{/name}","releases_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/releases{/id}","deployments_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/deployments","created_at":"2014-03-06T23:18:05Z","updated_at":"2017-08-08T02:44:44Z","pushed_at":"2017-08-09T00:10:38Z","git_url":"git://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet.git","ssh_url":"git@github.com:AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet.git","clone_url":"https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet.git","svn_url":"https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet","homepage":"","size":5026,"stargazers_count":252,"watchers_count":252,"language":"C#","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":113,"mirror_url":null,"open_issues_count":45,"forks":113,"open_issues":45,"watchers":252,"default_branch":"master"}},"base":{"label":"AzureAD:dev","ref":"dev","sha":"39c7500744b451a90b7d3c89af5c17ff99cc02c1","user":{"login":"AzureAD","id":2966316,"avatar_url":"https://avatars1.githubusercontent.com/u/2966316?v=4","gravatar_id":"","url":"https://api.github.com/users/AzureAD","html_url":"https://github.com/AzureAD","followers_url":"https://api.github.com/users/AzureAD/followers","following_url":"https://api.github.com/users/AzureAD/following{/other_user}","gists_url":"https://api.github.com/users/AzureAD/gists{/gist_id}","starred_url":"https://api.github.com/users/AzureAD/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AzureAD/subscriptions","organizations_url":"https://api.github.com/users/AzureAD/orgs","repos_url":"https://api.github.com/users/AzureAD/repos","events_url":"https://api.github.com/users/AzureAD/events{/privacy}","received_events_url":"https://api.github.com/users/AzureAD/received_events","type":"Organization","site_admin":false},"repo":{"id":17496194,"name":"azure-activedirectory-identitymodel-extensions-for-dotnet","full_name":"AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet","owner":{"login":"AzureAD","id":2966316,"avatar_url":"https://avatars1.githubusercontent.com/u/2966316?v=4","gravatar_id":"","url":"https://api.github.com/users/AzureAD","html_url":"https://github.com/AzureAD","followers_url":"https://api.github.com/users/AzureAD/followers","following_url":"https://api.github.com/users/AzureAD/following{/other_user}","gists_url":"https://api.github.com/users/AzureAD/gists{/gist_id}","starred_url":"https://api.github.com/users/AzureAD/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AzureAD/subscriptions","organizations_url":"https://api.github.com/users/AzureAD/orgs","repos_url":"https://api.github.com/users/AzureAD/repos","events_url":"https://api.github.com/users/AzureAD/events{/privacy}","received_events_url":"https://api.github.com/users/AzureAD/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet","description":"IdentityModel extensions for .Net","fork":false,"url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet","forks_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/forks","keys_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/keys{/key_id}","collaborators_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/teams","hooks_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/hooks","issue_events_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/issues/events{/number}","events_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/events","assignees_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/assignees{/user}","branches_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/branches{/branch}","tags_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/tags","blobs_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/git/refs{/sha}","trees_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/git/trees{/sha}","statuses_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/statuses/{sha}","languages_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/languages","stargazers_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/stargazers","contributors_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/contributors","subscribers_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/subscribers","subscription_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/subscription","commits_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/commits{/sha}","git_commits_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/git/commits{/sha}","comments_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/comments{/number}","issue_comment_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/issues/comments{/number}","contents_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/contents/{+path}","compare_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/compare/{base}...{head}","merges_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/merges","archive_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/downloads","issues_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/issues{/number}","pulls_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/pulls{/number}","milestones_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/milestones{/number}","notifications_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/labels{/name}","releases_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/releases{/id}","deployments_url":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/deployments","created_at":"2014-03-06T23:18:05Z","updated_at":"2017-08-08T02:44:44Z","pushed_at":"2017-08-09T00:10:38Z","git_url":"git://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet.git","ssh_url":"git@github.com:AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet.git","clone_url":"https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet.git","svn_url":"https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet","homepage":"","size":5026,"stargazers_count":252,"watchers_count":252,"language":"C#","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":113,"mirror_url":null,"open_issues_count":45,"forks":113,"open_issues":45,"watchers":252,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/pulls/669"},"html":{"href":"https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/pull/669"},"issue":{"href":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/issues/669"},"comments":{"href":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/issues/669/comments"},"review_comments":{"href":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/pulls/669/comments"},"review_comment":{"href":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/pulls/669/commits"},"statuses":{"href":"https://api.github.com/repos/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/statuses/8b5c3d9ad4c8ebd9d2d5c6969dea6dce10930e95"}}}}
{"actor":{"display_login":"brentschmaltz"}}