### Question:
CachedRepository extends GitRepository { @Override public ChangeScope<Change> getChanges(String fromRev, String toRev) { final String key = fromRev + toRev; return changesCache.computeIfAbsent(key, k -> { try { return super.getChanges(fromRev, toRev); } catch (SourceControlException e) { throw new SourceControlRuntimeException(e); } }); } CachedRepository(String repositoryPath, SourceControlFilter... filters); @Override ChangeScope<Change> getChanges(String fromRev, String toRev); @Override Set<RevInfo> getJiraSet(String packagePath, List<Integer> lineNumbers); static void clearCache();  }### Answer:
@Test public void testGetChanges() throws SourceControlException { ChangeScope<Change> changeScope = gitRepository.getChanges("fc776fe5e50", "e6f7c3d2954d6"); ChangeScope<Change> changeScope2 = gitRepository.getChanges("fc776fe5e50", "e6f7c3d2954d6"); assertEquals(changeScope, changeScope2); }