{"action":"created","comment":{"url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/pulls/comments/31107365","id":31107365,"diff_hunk":"@@ -198,6 +200,366 @@ public AndConstraint<TypeAssertions> BeDecoratedWith<TAttribute>(string because\n         }\n \n         /// <summary>\n+        /// Asserts that the current <see cref=\"Type\"/> implements Interface <paramref name=\"interfaceType\"/>.\n+        /// </summary>\n+        /// <param name=\"interfaceType\">The interface that should be implemented.</param>\n+        /// <param name=\"because\">A formatted phrase as is supported by <see cref=\"M:System.String.Format(System.String,System.Object[])\"/> explaining why the assertion\n+        ///             is needed. If the phrase does not start with the word <i>because</i>, it is prepended automatically.</param>\n+        /// <param name=\"reasonArgs\">Zero or more objects to format using the placeholders in <see cref=\"!:because\"/>.</param>\n+        public AndConstraint<TypeAssertions> Implement(Type interfaceType, string because = \"\", params object[] reasonArgs)\n+        {\n+            if (!interfaceType.IsInterface)","path":"FluentAssertions.Core/Types/TypeAssertions.cs","position":32,"original_position":32,"commit_id":"1e264197f4e250cca1ea671a9242791267b00be1","original_commit_id":"3f7477df2587898cef7b5d3ccc65aa7fdcc7124d","user":{"login":"piotrpMSFT","id":2379589,"avatar_url":"https://avatars.githubusercontent.com/u/2379589?v=3","gravatar_id":"","url":"https://api.github.com/users/piotrpMSFT","html_url":"https://github.com/piotrpMSFT","followers_url":"https://api.github.com/users/piotrpMSFT/followers","following_url":"https://api.github.com/users/piotrpMSFT/following{/other_user}","gists_url":"https://api.github.com/users/piotrpMSFT/gists{/gist_id}","starred_url":"https://api.github.com/users/piotrpMSFT/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/piotrpMSFT/subscriptions","organizations_url":"https://api.github.com/users/piotrpMSFT/orgs","repos_url":"https://api.github.com/users/piotrpMSFT/repos","events_url":"https://api.github.com/users/piotrpMSFT/events{/privacy}","received_events_url":"https://api.github.com/users/piotrpMSFT/received_events","type":"User","site_admin":false},"body":"The abstract class scenario is handled by BeDerivedFrom. According to MSDN, types derive from types and implement interfaces. There is the special case of a purely abstract base class, but I still like the Derive verb since it implies that we're bound by single inheritance, which is true even in the special case.","created_at":"2015-05-27T06:51:46Z","updated_at":"2015-05-27T06:51:46Z","html_url":"https://github.com/piotrpMSFT/fluentassertions/pull/1#discussion_r31107365","pull_request_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/pulls/1","_links":{"self":{"href":"https://api.github.com/repos/piotrpMSFT/fluentassertions/pulls/comments/31107365"},"html":{"href":"https://github.com/piotrpMSFT/fluentassertions/pull/1#discussion_r31107365"},"pull_request":{"href":"https://api.github.com/repos/piotrpMSFT/fluentassertions/pulls/1"}}},"pull_request":{"url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/pulls/1","id":36152409,"html_url":"https://github.com/piotrpMSFT/fluentassertions/pull/1","diff_url":"https://github.com/piotrpMSFT/fluentassertions/pull/1.diff","patch_url":"https://github.com/piotrpMSFT/fluentassertions/pull/1.patch","issue_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/issues/1","number":1,"state":"open","locked":false,"title":"Extended type assertions","user":{"login":"piotrpMSFT","id":2379589,"avatar_url":"https://avatars.githubusercontent.com/u/2379589?v=3","gravatar_id":"","url":"https://api.github.com/users/piotrpMSFT","html_url":"https://github.com/piotrpMSFT","followers_url":"https://api.github.com/users/piotrpMSFT/followers","following_url":"https://api.github.com/users/piotrpMSFT/following{/other_user}","gists_url":"https://api.github.com/users/piotrpMSFT/gists{/gist_id}","starred_url":"https://api.github.com/users/piotrpMSFT/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/piotrpMSFT/subscriptions","organizations_url":"https://api.github.com/users/piotrpMSFT/orgs","repos_url":"https://api.github.com/users/piotrpMSFT/repos","events_url":"https://api.github.com/users/piotrpMSFT/events{/privacy}","received_events_url":"https://api.github.com/users/piotrpMSFT/received_events","type":"User","site_admin":false},"body":"","created_at":"2015-05-25T18:17:48Z","updated_at":"2015-05-27T06:51:46Z","closed_at":null,"merged_at":null,"merge_commit_sha":"aff49e3da2d2ad856bd48bf7efcd0a9238f1e40d","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/pulls/1/commits","review_comments_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/pulls/1/comments","review_comment_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/pulls/comments{/number}","comments_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/issues/1/comments","statuses_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/statuses/1e264197f4e250cca1ea671a9242791267b00be1","head":{"label":"piotrpMSFT:ExtendedTypeAssertions","ref":"ExtendedTypeAssertions","sha":"1e264197f4e250cca1ea671a9242791267b00be1","user":{"login":"piotrpMSFT","id":2379589,"avatar_url":"https://avatars.githubusercontent.com/u/2379589?v=3","gravatar_id":"","url":"https://api.github.com/users/piotrpMSFT","html_url":"https://github.com/piotrpMSFT","followers_url":"https://api.github.com/users/piotrpMSFT/followers","following_url":"https://api.github.com/users/piotrpMSFT/following{/other_user}","gists_url":"https://api.github.com/users/piotrpMSFT/gists{/gist_id}","starred_url":"https://api.github.com/users/piotrpMSFT/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/piotrpMSFT/subscriptions","organizations_url":"https://api.github.com/users/piotrpMSFT/orgs","repos_url":"https://api.github.com/users/piotrpMSFT/repos","events_url":"https://api.github.com/users/piotrpMSFT/events{/privacy}","received_events_url":"https://api.github.com/users/piotrpMSFT/received_events","type":"User","site_admin":false},"repo":{"id":31327877,"name":"fluentassertions","full_name":"piotrpMSFT/fluentassertions","owner":{"login":"piotrpMSFT","id":2379589,"avatar_url":"https://avatars.githubusercontent.com/u/2379589?v=3","gravatar_id":"","url":"https://api.github.com/users/piotrpMSFT","html_url":"https://github.com/piotrpMSFT","followers_url":"https://api.github.com/users/piotrpMSFT/followers","following_url":"https://api.github.com/users/piotrpMSFT/following{/other_user}","gists_url":"https://api.github.com/users/piotrpMSFT/gists{/gist_id}","starred_url":"https://api.github.com/users/piotrpMSFT/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/piotrpMSFT/subscriptions","organizations_url":"https://api.github.com/users/piotrpMSFT/orgs","repos_url":"https://api.github.com/users/piotrpMSFT/repos","events_url":"https://api.github.com/users/piotrpMSFT/events{/privacy}","received_events_url":"https://api.github.com/users/piotrpMSFT/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/piotrpMSFT/fluentassertions","description":"Fluent Assertions is a set of .NET extension methods that allow you to more naturally specify the expected outcome of a TDD or BDD-style test. We currently use it in all our internal and client projects, and it is used in many open-source projects. It runs on .NET 3.5, 4.0 and 4.5 (Desktop and Windows Store), Silverlight 4 and 5 and Windows Phone 7.5 and later. It supports the unit test frameworks NUnit, XUnit, MBUnit, Gallio, NSpec and MSpec.","fork":true,"url":"https://api.github.com/repos/piotrpMSFT/fluentassertions","forks_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/forks","keys_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/keys{/key_id}","collaborators_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/teams","hooks_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/hooks","issue_events_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/issues/events{/number}","events_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/events","assignees_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/assignees{/user}","branches_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/branches{/branch}","tags_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/tags","blobs_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/git/refs{/sha}","trees_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/git/trees{/sha}","statuses_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/statuses/{sha}","languages_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/languages","stargazers_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/stargazers","contributors_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/contributors","subscribers_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/subscribers","subscription_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/subscription","commits_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/commits{/sha}","git_commits_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/git/commits{/sha}","comments_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/comments{/number}","issue_comment_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/issues/comments{/number}","contents_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/contents/{+path}","compare_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/compare/{base}...{head}","merges_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/merges","archive_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/downloads","issues_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/issues{/number}","pulls_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/pulls{/number}","milestones_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/milestones{/number}","notifications_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/labels{/name}","releases_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/releases{/id}","created_at":"2015-02-25T18:02:50Z","updated_at":"2015-03-06T17:30:53Z","pushed_at":"2015-05-27T06:41:54Z","git_url":"git://github.com/piotrpMSFT/fluentassertions.git","ssh_url":"git@github.com:piotrpMSFT/fluentassertions.git","clone_url":"https://github.com/piotrpMSFT/fluentassertions.git","svn_url":"https://github.com/piotrpMSFT/fluentassertions","homepage":"https://www.nuget.org/packages/FluentAssertions","size":11054,"stargazers_count":0,"watchers_count":0,"language":"C#","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":0,"mirror_url":null,"open_issues_count":1,"forks":0,"open_issues":1,"watchers":0,"default_branch":"develop"}},"base":{"label":"piotrpMSFT:develop","ref":"develop","sha":"079b4809fae4c168d96bde1fce7c47b0d4e4e8f6","user":{"login":"piotrpMSFT","id":2379589,"avatar_url":"https://avatars.githubusercontent.com/u/2379589?v=3","gravatar_id":"","url":"https://api.github.com/users/piotrpMSFT","html_url":"https://github.com/piotrpMSFT","followers_url":"https://api.github.com/users/piotrpMSFT/followers","following_url":"https://api.github.com/users/piotrpMSFT/following{/other_user}","gists_url":"https://api.github.com/users/piotrpMSFT/gists{/gist_id}","starred_url":"https://api.github.com/users/piotrpMSFT/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/piotrpMSFT/subscriptions","organizations_url":"https://api.github.com/users/piotrpMSFT/orgs","repos_url":"https://api.github.com/users/piotrpMSFT/repos","events_url":"https://api.github.com/users/piotrpMSFT/events{/privacy}","received_events_url":"https://api.github.com/users/piotrpMSFT/received_events","type":"User","site_admin":false},"repo":{"id":31327877,"name":"fluentassertions","full_name":"piotrpMSFT/fluentassertions","owner":{"login":"piotrpMSFT","id":2379589,"avatar_url":"https://avatars.githubusercontent.com/u/2379589?v=3","gravatar_id":"","url":"https://api.github.com/users/piotrpMSFT","html_url":"https://github.com/piotrpMSFT","followers_url":"https://api.github.com/users/piotrpMSFT/followers","following_url":"https://api.github.com/users/piotrpMSFT/following{/other_user}","gists_url":"https://api.github.com/users/piotrpMSFT/gists{/gist_id}","starred_url":"https://api.github.com/users/piotrpMSFT/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/piotrpMSFT/subscriptions","organizations_url":"https://api.github.com/users/piotrpMSFT/orgs","repos_url":"https://api.github.com/users/piotrpMSFT/repos","events_url":"https://api.github.com/users/piotrpMSFT/events{/privacy}","received_events_url":"https://api.github.com/users/piotrpMSFT/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/piotrpMSFT/fluentassertions","description":"Fluent Assertions is a set of .NET extension methods that allow you to more naturally specify the expected outcome of a TDD or BDD-style test. We currently use it in all our internal and client projects, and it is used in many open-source projects. It runs on .NET 3.5, 4.0 and 4.5 (Desktop and Windows Store), Silverlight 4 and 5 and Windows Phone 7.5 and later. It supports the unit test frameworks NUnit, XUnit, MBUnit, Gallio, NSpec and MSpec.","fork":true,"url":"https://api.github.com/repos/piotrpMSFT/fluentassertions","forks_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/forks","keys_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/keys{/key_id}","collaborators_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/teams","hooks_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/hooks","issue_events_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/issues/events{/number}","events_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/events","assignees_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/assignees{/user}","branches_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/branches{/branch}","tags_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/tags","blobs_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/git/refs{/sha}","trees_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/git/trees{/sha}","statuses_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/statuses/{sha}","languages_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/languages","stargazers_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/stargazers","contributors_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/contributors","subscribers_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/subscribers","subscription_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/subscription","commits_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/commits{/sha}","git_commits_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/git/commits{/sha}","comments_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/comments{/number}","issue_comment_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/issues/comments{/number}","contents_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/contents/{+path}","compare_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/compare/{base}...{head}","merges_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/merges","archive_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/downloads","issues_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/issues{/number}","pulls_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/pulls{/number}","milestones_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/milestones{/number}","notifications_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/labels{/name}","releases_url":"https://api.github.com/repos/piotrpMSFT/fluentassertions/releases{/id}","created_at":"2015-02-25T18:02:50Z","updated_at":"2015-03-06T17:30:53Z","pushed_at":"2015-05-27T06:41:54Z","git_url":"git://github.com/piotrpMSFT/fluentassertions.git","ssh_url":"git@github.com:piotrpMSFT/fluentassertions.git","clone_url":"https://github.com/piotrpMSFT/fluentassertions.git","svn_url":"https://github.com/piotrpMSFT/fluentassertions","homepage":"https://www.nuget.org/packages/FluentAssertions","size":11054,"stargazers_count":0,"watchers_count":0,"language":"C#","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":0,"mirror_url":null,"open_issues_count":1,"forks":0,"open_issues":1,"watchers":0,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/piotrpMSFT/fluentassertions/pulls/1"},"html":{"href":"https://github.com/piotrpMSFT/fluentassertions/pull/1"},"issue":{"href":"https://api.github.com/repos/piotrpMSFT/fluentassertions/issues/1"},"comments":{"href":"https://api.github.com/repos/piotrpMSFT/fluentassertions/issues/1/comments"},"review_comments":{"href":"https://api.github.com/repos/piotrpMSFT/fluentassertions/pulls/1/comments"},"review_comment":{"href":"https://api.github.com/repos/piotrpMSFT/fluentassertions/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/piotrpMSFT/fluentassertions/pulls/1/commits"},"statuses":{"href":"https://api.github.com/repos/piotrpMSFT/fluentassertions/statuses/1e264197f4e250cca1ea671a9242791267b00be1"}}}}