@Test
public void branchChangedFiles_should_return_null_on_errors() throws GitAPIException {

  DiffCommand diffCommand = mock(DiffCommand.class);
  when(diffCommand.setShowNameAndStatusOnly(anyBoolean())).thenReturn(diffCommand);
  when(diffCommand.setOldTree(any())).thenReturn(diffCommand);
  when(diffCommand.setNewTree(any())).thenReturn(diffCommand);
  when(diffCommand.call()).thenThrow(mock(GitAPIException.class));
  Git git = mock(Git.class);
  when(git.diff()).thenReturn(diffCommand);
  GitScmProvider provider = new GitScmProvider(mockCommand(), analysisWarnings, gitIgnoreCommand, system2) {
    @Override
    Git newGit(Repository repo) {
      return git;
    }
  };
  assertThat(provider.branchChangedFiles("master", worktree)).isNull();
  verify(diffCommand).call();
}