### Question:
GithubPullRequestReporter implements Reporter { @Override public void report(NewCoverageCheckReport result) { logger.debug("report {}", result); String comment = getComment(result); CommitStatusCreate commitStatus = getCommitStatus(result); logger.debug("result comment {}", comment); logger.debug("result commit status {}", commitStatus); try { User watcher = manager.getUser(); commentManager.deleteComment(oldReport(watcher)); commentManager.addComment(comment); logger.debug("add comment {}", comment); statusManager.setStatus(commitStatus); } catch (IOException e) { throw new ReportException(e); } } GithubPullRequestReporter(GithubPullRequestManager manager); @Override void report(NewCoverageCheckReport result);  }### Answer:
@Test public void reportTest() throws IOException { GithubPullRequestReporter reporter = new GithubPullRequestReporter(mockPrManager); when(mockCommentManager.deleteComment(reporter.oldReport(mockUser))).thenReturn(1); doNothing().when(mockCommentManager).addComment(COMMENT_WITH_FILE); CommitStatusCreate commitStatus = CommitStatusCreate.builder() .state(CommitState.SUCCESS) .description("2 / 3 (66%) - pass") .context("coverchecker").build(); doNothing().when(mockStatusManager).setStatus(commitStatus); NewCoverageCheckReport result = NewCoverageCheckReport.builder() .totalNewLine(3) .coveredNewLine(2) .threshold(50) .coveredFilesInfo(Arrays.asList(NewCoveredFile.builder().name("test.java").addedLine(100).addedCoverLine(50).build(), NewCoveredFile.builder().name("test2.java").addedLine(100).addedCoverLine(50).build())) .build(); reporter.report(result); verify(mockCommentManager).addComment(COMMENT_WITH_FILE); verify(mockStatusManager).setStatus(commitStatus); }