/** * @param Message $message * @return ApiResponse|NULL */ protected function dispatchMessage(Message $message) { $api = $this->getApi(); $data = $message->toGitHubApiDataArray(); $commit = $message->getCommit(); $pullRequest = $message->getPullRequest(); $url = NULL; if (TRUE === $pullRequest instanceof PullRequest && NULL === $commit) { $url = $pullRequest->resolveApiUrl(PullRequest::API_URL_COMMENTS); } elseif (TRUE === $pullRequest instanceof PullRequest && TRUE === $commit instanceof Commit) { $url = $pullRequest->resolveApiUrl(PullRequest::API_URL_REVIEW_COMMENTS); } elseif (TRUE === $commit instanceof Commit) { $url = $this->getRepository()->resolveApiUrl(Repository::API_URL_COMMITS); } return $api->post($url, json_encode($data)); }
/** * @param Message $message * @param array $expected * @dataProvider getToGitHubApiDataArrayTestValues */ public function testToGitHubApiDataArray(Message $message, array $expected) { $result = $message->toGitHubApiDataArray(); $this->assertEquals($expected, $result); }