{"action":"created","comment":{"url":"https://api.github.com/repos/dotnet/corefx/pulls/comments/26887562","id":26887562,"diff_hunk":"@@ -0,0 +1,288 @@\n+// Copyright (c) Microsoft. All rights reserved.\n+// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n+\n+using System;\n+using System.Collections;\n+using System.Linq;\n+using Xunit;\n+using Xunit.Sdk;\n+// ReSharper disable InconsistentNaming\n+\n+namespace Tests.Collections\n+{\n+    public abstract class ICollectionTest<T> : IEnumerableTest<T>\n+    {\n+        internal class MyInvalidReferenceType\n+        {\n+        }\n+\n+        internal struct MyInvalidValueType\n+        {\n+        }\n+\n+        protected ICollection GetCollection(object[] items)\n+        {\n+            IEnumerable obj = GetEnumerable(items);\n+            Assert.IsAssignableFrom<ICollection>(obj);\n+            return (ICollection)obj;\n+        }\n+        protected Type[] ValidArrayTypes { get; set; }\n+\n+        protected Type[] InvalidArrayTypes { get; set; }\n+\n+        protected abstract bool ItemsMustBeUnique { get; }\n+        protected abstract bool ItemsMustBeNonNull { get; }\n+        protected bool ExpectedIsSynchronized { get; private set; }\n+        protected virtual bool CopyToOnlySupportsZeroLowerBounds\n+        {\n+            get\n+            {\n+                return true;\n+            }\n+        }\n+\n+        protected ICollectionTest(bool isSynchronized)\n+        {\n+            ExpectedIsSynchronized = isSynchronized;\n+            ValidArrayTypes = new[] { typeof(object) };\n+            InvalidArrayTypes = new[]\n+            {\n+                typeof (MyInvalidReferenceType),\n+                typeof (MyInvalidValueType)\n+            };\n+        }\n+\n+        [Fact]\n+        public void Count()\n+        {\n+            var items = GenerateItems(16);\n+            var collection = GetCollection(items);\n+            Assert.Equal(items.Length, collection.Count);\n+        }\n+\n+        [Fact]\n+        public void IsSynchronized()\n+        {\n+            var collection = GetCollection(GenerateItems(16));\n+            Assert.Equal(ExpectedIsSynchronized, collection.IsSynchronized);\n+        }\n+\n+        [Fact]\n+        public void SyncRootNonNull()\n+        {\n+            var collection = GetCollection(GenerateItems(16));\n+            Assert.NotNull(collection.SyncRoot);\n+        }\n+\n+        [Fact]\n+        public void SyncRootConsistent()\n+        {\n+            var collection = GetCollection(GenerateItems(16));\n+            var syncRoot1 = collection.SyncRoot;\n+            var syncRoot2 = collection.SyncRoot;\n+            Assert.Equal(syncRoot1, syncRoot2);\n+        }\n+\n+        [Fact]\n+        public void SyncRootCanBeLocked()\n+        {\n+            var collection = GetCollection(GenerateItems(16));\n+            lock (collection.SyncRoot)\n+            {\n+            }\n+        }\n+\n+        [Fact]\n+        public void SyncRootUnique()\n+        {\n+            var collection1 = GetCollection(GenerateItems(16));\n+            var collection2 = GetCollection(GenerateItems(16));\n+            Assert.NotEqual(collection1.SyncRoot, collection2.SyncRoot);\n+        }\n+\n+        [Fact]\n+        public void CopyToNull()\n+        {\n+            var collection = GetCollection(GenerateItems(16));\n+            Assert.Throws<ArgumentNullException>(\n+                () => collection.CopyTo(null, 0));\n+        }\n+\n+        [Theory]\n+        [InlineData(int.MinValue)]\n+        [InlineData(-1)]\n+        [InlineData(int.MaxValue)]\n+        public void CopyToBadIndex(int index)\n+        {\n+            var items = GenerateItems(16);\n+            var collection = GetCollection(items);\n+            var items2 = (object[]) items.Clone();\n+\n+            Assert.ThrowsAny<ArgumentException>(\n+                () => collection.CopyTo(items2, index));\n+\n+            CollectionAssert.Equal(items, items2);\n+        }\n+\n+        [Fact]\n+        public void CopyToArrayWithNonZeroBounds()\n+        {\n+            var items = GenerateItems(16);\n+            var collection = GetCollection(items);\n+            if (CopyToOnlySupportsZeroLowerBounds)\n+            {\n+                var itemArray = Array.CreateInstance(\n+                    typeof (object),\n+                    new[] {collection.Count + 8},\n+                    new[] {-4});\n+                var tempItemArray = (Array) itemArray.Clone();\n+                Assert.Throws<ArgumentException>(\n+                    () => collection.CopyTo(itemArray, 0));\n+                CollectionAssert.Equal(tempItemArray, itemArray);\n+            }\n+            else\n+            {\n+                var itemArray = Array.CreateInstance(\n+                    typeof (object),\n+                    new[] {collection.Count + 4},\n+                    new[] {-4});\n+                var tempItemArray = (Array) itemArray.Clone();\n+                Assert.Throws<ArgumentException>(\n+                    // ReSharper disable once AccessToModifiedClosure\n+                    () => collection.CopyTo(itemArray, 1));\n+                CollectionAssert.Equal(tempItemArray, itemArray);\n+\n+                itemArray = Array.CreateInstance(\n+                    typeof (object),\n+                    new[] {collection.Count + 4},\n+                    new[] {-6});\n+                tempItemArray = (Array) itemArray.Clone();\n+                Assert.Throws<ArgumentException>(\n+                    () => collection.CopyTo(itemArray, -1));\n+                CollectionAssert.Equal(tempItemArray, itemArray);\n+            }\n+        }\n+\n+        [Fact]\n+        public void CopyToIndexArrayLength()\n+        {\n+            var items = GenerateItems(16);\n+            var collection = GetCollection(items);\n+            var tempArray = (object[]) items.Clone();\n+            Assert.Throws<ArgumentException>(\n+                () => collection.CopyTo(items, collection.Count));\n+            CollectionAssert.Equal(tempArray, items);\n+        }\n+\n+        [Fact]\n+        public void CopyToCollectionLargerThanArray()\n+        {\n+            var items = GenerateItems(16);\n+            var collection = GetCollection(items);\n+            var itemArray = GenerateItems(collection.Count + 1);\n+            var tempItemArray = (object[]) itemArray.Clone();\n+            Assert.Throws<ArgumentException>(\n+                () => collection.CopyTo(itemArray, 2));\n+            CollectionAssert.Equal(tempItemArray, itemArray);\n+        }\n+\n+        [Fact]\n+        public void CopyToMDArray()\n+        {\n+            var items = GenerateItems(16);\n+            var collection = GetCollection(items);\n+            Assert.Throws<ArgumentException>(\n+                () =>\n+                collection.CopyTo(new object[1, collection.Count], 0));\n+        }\n+\n+        protected void AssertThrows(\n+            Type[] exceptionTypes,\n+            Action testCode)\n+        {\n+            var exception = Record.Exception(testCode);\n+            if (exception == null)\n+                throw new AssertActualExpectedException(exceptionTypes, null, \"Expected an exception but got null.\");\n+            var exceptionType = exception.GetType();\n+            if (!exceptionTypes.Contains(exceptionType))\n+                throw new AssertActualExpectedException(exceptionTypes, exceptionType, \"Caught wrong exception.\");\n+        }\n+\n+        [Fact]\n+        public void CopyToInvalidTypes()\n+        {\n+            var items = GenerateItems(16);\n+            var collection = GetCollection(items);\n+            Type[] expectedExceptionTypes = IsGenericCompatibility\n+                                                ? new[]\n+                                                {\n+                                                    typeof (\n+                                                      ArgumentException),\n+                                                    typeof (\n+                                                      InvalidCastException\n+                                                      )\n+                                                }\n+                                                : new[]\n+                                                {\n+                                                    typeof (\n+                                                      ArgumentException)\n+                                                };","path":"src/Common/tests/Collections/ICollectionTest.cs","position":229,"original_position":229,"commit_id":"d66bd670d4c0c04779880aea38a86dc3ffc8f19e","original_commit_id":"d66bd670d4c0c04779880aea38a86dc3ffc8f19e","user":{"login":"bartonjs","id":10642668,"avatar_url":"https://avatars.githubusercontent.com/u/10642668?v=3","gravatar_id":"","url":"https://api.github.com/users/bartonjs","html_url":"https://github.com/bartonjs","followers_url":"https://api.github.com/users/bartonjs/followers","following_url":"https://api.github.com/users/bartonjs/following{/other_user}","gists_url":"https://api.github.com/users/bartonjs/gists{/gist_id}","starred_url":"https://api.github.com/users/bartonjs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bartonjs/subscriptions","organizations_url":"https://api.github.com/users/bartonjs/orgs","repos_url":"https://api.github.com/users/bartonjs/repos","events_url":"https://api.github.com/users/bartonjs/events{/privacy}","received_events_url":"https://api.github.com/users/bartonjs/received_events","type":"User","site_admin":false},"body":"That's an... interesting style :)\r\n\r\nIt could probably use some autoformatter love.","created_at":"2015-03-21T01:53:38Z","updated_at":"2015-03-21T01:53:38Z","html_url":"https://github.com/dotnet/corefx/pull/1171#discussion_r26887562","pull_request_url":"https://api.github.com/repos/dotnet/corefx/pulls/1171","_links":{"self":{"href":"https://api.github.com/repos/dotnet/corefx/pulls/comments/26887562"},"html":{"href":"https://github.com/dotnet/corefx/pull/1171#discussion_r26887562"},"pull_request":{"href":"https://api.github.com/repos/dotnet/corefx/pulls/1171"}}},"pull_request":{"url":"https://api.github.com/repos/dotnet/corefx/pulls/1171","id":31474832,"html_url":"https://github.com/dotnet/corefx/pull/1171","diff_url":"https://github.com/dotnet/corefx/pull/1171.diff","patch_url":"https://github.com/dotnet/corefx/pull/1171.patch","issue_url":"https://api.github.com/repos/dotnet/corefx/issues/1171","number":1171,"state":"open","locked":false,"title":"Add tests for KeyedCollection. Issue #867","user":{"login":"alexperovich","id":10565410,"avatar_url":"https://avatars.githubusercontent.com/u/10565410?v=3","gravatar_id":"","url":"https://api.github.com/users/alexperovich","html_url":"https://github.com/alexperovich","followers_url":"https://api.github.com/users/alexperovich/followers","following_url":"https://api.github.com/users/alexperovich/following{/other_user}","gists_url":"https://api.github.com/users/alexperovich/gists{/gist_id}","starred_url":"https://api.github.com/users/alexperovich/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alexperovich/subscriptions","organizations_url":"https://api.github.com/users/alexperovich/orgs","repos_url":"https://api.github.com/users/alexperovich/repos","events_url":"https://api.github.com/users/alexperovich/events{/privacy}","received_events_url":"https://api.github.com/users/alexperovich/received_events","type":"User","site_admin":false},"body":"This change adds tests for `KeyedCollection<TKey, TValue>` ported from internal test assets, bringing test coverage from 0 to 96%\r\nThis also includes tests for `IList`, `ICollection`, and `IEnumerable` that can be used across all tests involving collections.\r\nI will be bringing over tests for `IList<T>`, `ICollection<T>`, and `IEnumerable<T>` in a future PR.","created_at":"2015-03-18T21:35:51Z","updated_at":"2015-03-21T01:53:38Z","closed_at":null,"merged_at":null,"merge_commit_sha":"bed82e2a9590ed67e410684b499255575804663c","assignee":{"login":"alexperovich","id":10565410,"avatar_url":"https://avatars.githubusercontent.com/u/10565410?v=3","gravatar_id":"","url":"https://api.github.com/users/alexperovich","html_url":"https://github.com/alexperovich","followers_url":"https://api.github.com/users/alexperovich/followers","following_url":"https://api.github.com/users/alexperovich/following{/other_user}","gists_url":"https://api.github.com/users/alexperovich/gists{/gist_id}","starred_url":"https://api.github.com/users/alexperovich/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alexperovich/subscriptions","organizations_url":"https://api.github.com/users/alexperovich/orgs","repos_url":"https://api.github.com/users/alexperovich/repos","events_url":"https://api.github.com/users/alexperovich/events{/privacy}","received_events_url":"https://api.github.com/users/alexperovich/received_events","type":"User","site_admin":false},"milestone":null,"commits_url":"https://api.github.com/repos/dotnet/corefx/pulls/1171/commits","review_comments_url":"https://api.github.com/repos/dotnet/corefx/pulls/1171/comments","review_comment_url":"https://api.github.com/repos/dotnet/corefx/pulls/comments{/number}","comments_url":"https://api.github.com/repos/dotnet/corefx/issues/1171/comments","statuses_url":"https://api.github.com/repos/dotnet/corefx/statuses/d66bd670d4c0c04779880aea38a86dc3ffc8f19e","head":{"label":"alexperovich:improveObjectModelCodeCoverage","ref":"improveObjectModelCodeCoverage","sha":"d66bd670d4c0c04779880aea38a86dc3ffc8f19e","user":{"login":"alexperovich","id":10565410,"avatar_url":"https://avatars.githubusercontent.com/u/10565410?v=3","gravatar_id":"","url":"https://api.github.com/users/alexperovich","html_url":"https://github.com/alexperovich","followers_url":"https://api.github.com/users/alexperovich/followers","following_url":"https://api.github.com/users/alexperovich/following{/other_user}","gists_url":"https://api.github.com/users/alexperovich/gists{/gist_id}","starred_url":"https://api.github.com/users/alexperovich/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alexperovich/subscriptions","organizations_url":"https://api.github.com/users/alexperovich/orgs","repos_url":"https://api.github.com/users/alexperovich/repos","events_url":"https://api.github.com/users/alexperovich/events{/privacy}","received_events_url":"https://api.github.com/users/alexperovich/received_events","type":"User","site_admin":false},"repo":{"id":29363919,"name":"corefx","full_name":"alexperovich/corefx","owner":{"login":"alexperovich","id":10565410,"avatar_url":"https://avatars.githubusercontent.com/u/10565410?v=3","gravatar_id":"","url":"https://api.github.com/users/alexperovich","html_url":"https://github.com/alexperovich","followers_url":"https://api.github.com/users/alexperovich/followers","following_url":"https://api.github.com/users/alexperovich/following{/other_user}","gists_url":"https://api.github.com/users/alexperovich/gists{/gist_id}","starred_url":"https://api.github.com/users/alexperovich/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alexperovich/subscriptions","organizations_url":"https://api.github.com/users/alexperovich/orgs","repos_url":"https://api.github.com/users/alexperovich/repos","events_url":"https://api.github.com/users/alexperovich/events{/privacy}","received_events_url":"https://api.github.com/users/alexperovich/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/alexperovich/corefx","description":"This repository contains the foundational libraries that make up the .NET Core development stack.","fork":true,"url":"https://api.github.com/repos/alexperovich/corefx","forks_url":"https://api.github.com/repos/alexperovich/corefx/forks","keys_url":"https://api.github.com/repos/alexperovich/corefx/keys{/key_id}","collaborators_url":"https://api.github.com/repos/alexperovich/corefx/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/alexperovich/corefx/teams","hooks_url":"https://api.github.com/repos/alexperovich/corefx/hooks","issue_events_url":"https://api.github.com/repos/alexperovich/corefx/issues/events{/number}","events_url":"https://api.github.com/repos/alexperovich/corefx/events","assignees_url":"https://api.github.com/repos/alexperovich/corefx/assignees{/user}","branches_url":"https://api.github.com/repos/alexperovich/corefx/branches{/branch}","tags_url":"https://api.github.com/repos/alexperovich/corefx/tags","blobs_url":"https://api.github.com/repos/alexperovich/corefx/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/alexperovich/corefx/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/alexperovich/corefx/git/refs{/sha}","trees_url":"https://api.github.com/repos/alexperovich/corefx/git/trees{/sha}","statuses_url":"https://api.github.com/repos/alexperovich/corefx/statuses/{sha}","languages_url":"https://api.github.com/repos/alexperovich/corefx/languages","stargazers_url":"https://api.github.com/repos/alexperovich/corefx/stargazers","contributors_url":"https://api.github.com/repos/alexperovich/corefx/contributors","subscribers_url":"https://api.github.com/repos/alexperovich/corefx/subscribers","subscription_url":"https://api.github.com/repos/alexperovich/corefx/subscription","commits_url":"https://api.github.com/repos/alexperovich/corefx/commits{/sha}","git_commits_url":"https://api.github.com/repos/alexperovich/corefx/git/commits{/sha}","comments_url":"https://api.github.com/repos/alexperovich/corefx/comments{/number}","issue_comment_url":"https://api.github.com/repos/alexperovich/corefx/issues/comments{/number}","contents_url":"https://api.github.com/repos/alexperovich/corefx/contents/{+path}","compare_url":"https://api.github.com/repos/alexperovich/corefx/compare/{base}...{head}","merges_url":"https://api.github.com/repos/alexperovich/corefx/merges","archive_url":"https://api.github.com/repos/alexperovich/corefx/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/alexperovich/corefx/downloads","issues_url":"https://api.github.com/repos/alexperovich/corefx/issues{/number}","pulls_url":"https://api.github.com/repos/alexperovich/corefx/pulls{/number}","milestones_url":"https://api.github.com/repos/alexperovich/corefx/milestones{/number}","notifications_url":"https://api.github.com/repos/alexperovich/corefx/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/alexperovich/corefx/labels{/name}","releases_url":"https://api.github.com/repos/alexperovich/corefx/releases{/id}","created_at":"2015-01-16T19:21:49Z","updated_at":"2015-03-18T20:08:49Z","pushed_at":"2015-03-18T23:05:45Z","git_url":"git://github.com/alexperovich/corefx.git","ssh_url":"git@github.com:alexperovich/corefx.git","clone_url":"https://github.com/alexperovich/corefx.git","svn_url":"https://github.com/alexperovich/corefx","homepage":"","size":12365,"stargazers_count":0,"watchers_count":0,"language":"C#","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"dotnet:master","ref":"master","sha":"c6615d0a604970aceea1f7d548387ab6a6e33c39","user":{"login":"dotnet","id":9141961,"avatar_url":"https://avatars.githubusercontent.com/u/9141961?v=3","gravatar_id":"","url":"https://api.github.com/users/dotnet","html_url":"https://github.com/dotnet","followers_url":"https://api.github.com/users/dotnet/followers","following_url":"https://api.github.com/users/dotnet/following{/other_user}","gists_url":"https://api.github.com/users/dotnet/gists{/gist_id}","starred_url":"https://api.github.com/users/dotnet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dotnet/subscriptions","organizations_url":"https://api.github.com/users/dotnet/orgs","repos_url":"https://api.github.com/users/dotnet/repos","events_url":"https://api.github.com/users/dotnet/events{/privacy}","received_events_url":"https://api.github.com/users/dotnet/received_events","type":"Organization","site_admin":false},"repo":{"id":26295345,"name":"corefx","full_name":"dotnet/corefx","owner":{"login":"dotnet","id":9141961,"avatar_url":"https://avatars.githubusercontent.com/u/9141961?v=3","gravatar_id":"","url":"https://api.github.com/users/dotnet","html_url":"https://github.com/dotnet","followers_url":"https://api.github.com/users/dotnet/followers","following_url":"https://api.github.com/users/dotnet/following{/other_user}","gists_url":"https://api.github.com/users/dotnet/gists{/gist_id}","starred_url":"https://api.github.com/users/dotnet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dotnet/subscriptions","organizations_url":"https://api.github.com/users/dotnet/orgs","repos_url":"https://api.github.com/users/dotnet/repos","events_url":"https://api.github.com/users/dotnet/events{/privacy}","received_events_url":"https://api.github.com/users/dotnet/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/dotnet/corefx","description":"This repo contains the .NET Core foundational libraries, called CoreFX. It includes classes for collections, file systems, console, XML, async and many others.","fork":false,"url":"https://api.github.com/repos/dotnet/corefx","forks_url":"https://api.github.com/repos/dotnet/corefx/forks","keys_url":"https://api.github.com/repos/dotnet/corefx/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dotnet/corefx/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dotnet/corefx/teams","hooks_url":"https://api.github.com/repos/dotnet/corefx/hooks","issue_events_url":"https://api.github.com/repos/dotnet/corefx/issues/events{/number}","events_url":"https://api.github.com/repos/dotnet/corefx/events","assignees_url":"https://api.github.com/repos/dotnet/corefx/assignees{/user}","branches_url":"https://api.github.com/repos/dotnet/corefx/branches{/branch}","tags_url":"https://api.github.com/repos/dotnet/corefx/tags","blobs_url":"https://api.github.com/repos/dotnet/corefx/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dotnet/corefx/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dotnet/corefx/git/refs{/sha}","trees_url":"https://api.github.com/repos/dotnet/corefx/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dotnet/corefx/statuses/{sha}","languages_url":"https://api.github.com/repos/dotnet/corefx/languages","stargazers_url":"https://api.github.com/repos/dotnet/corefx/stargazers","contributors_url":"https://api.github.com/repos/dotnet/corefx/contributors","subscribers_url":"https://api.github.com/repos/dotnet/corefx/subscribers","subscription_url":"https://api.github.com/repos/dotnet/corefx/subscription","commits_url":"https://api.github.com/repos/dotnet/corefx/commits{/sha}","git_commits_url":"https://api.github.com/repos/dotnet/corefx/git/commits{/sha}","comments_url":"https://api.github.com/repos/dotnet/corefx/comments{/number}","issue_comment_url":"https://api.github.com/repos/dotnet/corefx/issues/comments{/number}","contents_url":"https://api.github.com/repos/dotnet/corefx/contents/{+path}","compare_url":"https://api.github.com/repos/dotnet/corefx/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dotnet/corefx/merges","archive_url":"https://api.github.com/repos/dotnet/corefx/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dotnet/corefx/downloads","issues_url":"https://api.github.com/repos/dotnet/corefx/issues{/number}","pulls_url":"https://api.github.com/repos/dotnet/corefx/pulls{/number}","milestones_url":"https://api.github.com/repos/dotnet/corefx/milestones{/number}","notifications_url":"https://api.github.com/repos/dotnet/corefx/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dotnet/corefx/labels{/name}","releases_url":"https://api.github.com/repos/dotnet/corefx/releases{/id}","created_at":"2014-11-06T23:42:48Z","updated_at":"2015-03-21T01:32:47Z","pushed_at":"2015-03-21T01:32:47Z","git_url":"git://github.com/dotnet/corefx.git","ssh_url":"git@github.com:dotnet/corefx.git","clone_url":"https://github.com/dotnet/corefx.git","svn_url":"https://github.com/dotnet/corefx","homepage":"","size":28838,"stargazers_count":7265,"watchers_count":7265,"language":"C#","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1389,"mirror_url":null,"open_issues_count":313,"forks":1389,"open_issues":313,"watchers":7265,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/dotnet/corefx/pulls/1171"},"html":{"href":"https://github.com/dotnet/corefx/pull/1171"},"issue":{"href":"https://api.github.com/repos/dotnet/corefx/issues/1171"},"comments":{"href":"https://api.github.com/repos/dotnet/corefx/issues/1171/comments"},"review_comments":{"href":"https://api.github.com/repos/dotnet/corefx/pulls/1171/comments"},"review_comment":{"href":"https://api.github.com/repos/dotnet/corefx/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/dotnet/corefx/pulls/1171/commits"},"statuses":{"href":"https://api.github.com/repos/dotnet/corefx/statuses/d66bd670d4c0c04779880aea38a86dc3ffc8f19e"}}}}