{"action":"created","issue":{"url":"https://api.github.com/repos/joel-costigliola/assertj-core/issues/462","labels_url":"https://api.github.com/repos/joel-costigliola/assertj-core/issues/462/labels{/name}","comments_url":"https://api.github.com/repos/joel-costigliola/assertj-core/issues/462/comments","events_url":"https://api.github.com/repos/joel-costigliola/assertj-core/issues/462/events","html_url":"https://github.com/joel-costigliola/assertj-core/pull/462","id":95137791,"number":462,"title":"CompletableFuture Assertions","user":{"login":"Turbo87","id":141300,"avatar_url":"https://avatars.githubusercontent.com/u/141300?v=3","gravatar_id":"","url":"https://api.github.com/users/Turbo87","html_url":"https://github.com/Turbo87","followers_url":"https://api.github.com/users/Turbo87/followers","following_url":"https://api.github.com/users/Turbo87/following{/other_user}","gists_url":"https://api.github.com/users/Turbo87/gists{/gist_id}","starred_url":"https://api.github.com/users/Turbo87/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Turbo87/subscriptions","organizations_url":"https://api.github.com/users/Turbo87/orgs","repos_url":"https://api.github.com/users/Turbo87/repos","events_url":"https://api.github.com/users/Turbo87/events{/privacy}","received_events_url":"https://api.github.com/users/Turbo87/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/joel-costigliola/assertj-core/labels/Java%208","name":"Java 8","color":"0A007A"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":9,"created_at":"2015-07-15T08:47:24Z","updated_at":"2015-09-10T08:39:12Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/joel-costigliola/assertj-core/pulls/462","html_url":"https://github.com/joel-costigliola/assertj-core/pull/462","diff_url":"https://github.com/joel-costigliola/assertj-core/pull/462.diff","patch_url":"https://github.com/joel-costigliola/assertj-core/pull/462.patch"},"body":"Resolves #461 "},"comment":{"url":"https://api.github.com/repos/joel-costigliola/assertj-core/issues/comments/139168683","html_url":"https://github.com/joel-costigliola/assertj-core/pull/462#issuecomment-139168683","issue_url":"https://api.github.com/repos/joel-costigliola/assertj-core/issues/462","id":139168683,"user":{"login":"joel-costigliola","id":382613,"avatar_url":"https://avatars.githubusercontent.com/u/382613?v=3","gravatar_id":"","url":"https://api.github.com/users/joel-costigliola","html_url":"https://github.com/joel-costigliola","followers_url":"https://api.github.com/users/joel-costigliola/followers","following_url":"https://api.github.com/users/joel-costigliola/following{/other_user}","gists_url":"https://api.github.com/users/joel-costigliola/gists{/gist_id}","starred_url":"https://api.github.com/users/joel-costigliola/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joel-costigliola/subscriptions","organizations_url":"https://api.github.com/users/joel-costigliola/orgs","repos_url":"https://api.github.com/users/joel-costigliola/repos","events_url":"https://api.github.com/users/joel-costigliola/events{/privacy}","received_events_url":"https://api.github.com/users/joel-costigliola/received_events","type":"User","site_admin":false},"created_at":"2015-09-10T08:39:12Z","updated_at":"2015-09-10T08:39:12Z","body":"yes it's long ... another option would be \r\n```java\r\nassertThat(future).isCompletedExceptionally().withThrowableThat().hasMessage(\"boom\");\r\n```\r\n\r\nthe problem with `hasFailed` is that it took me too much time to figure out what was the difference with `isCompletedExceptionally`, it's clear for you because you have defined the semantics, I think it will be confusing for other people so let's not add it for the time being if some users ask for it I will reconsider.\r\nI like to stick with JDK API when possible although I agree it lacks a `failed` state.  "}}