@Override
  public String getRawSourceHash(Component file) {
    checkComponentArgument(file);
    if (rawSourceHashesByKey.containsKey(file.getKey())) {
      return checkSourceHash(file.getKey(), rawSourceHashesByKey.get(file.getKey()));
    } else {
      String newSourceHash = computeRawSourceHash(file);
      rawSourceHashesByKey.put(file.getKey(), newSourceHash);
      return checkSourceHash(file.getKey(), newSourceHash);
    }
  }
@Test
  void getRawSourceHash_let_exception_go_through() {
    IllegalArgumentException thrown = new IllegalArgumentException("this IAE will cause the hash computation to fail");
    when(mockedSourceLinesRepository.readLines(FILE_COMPONENT)).thenThrow(thrown);

    assertThatThrownBy(() -> mockedUnderTest.getRawSourceHash(FILE_COMPONENT))
      .isInstanceOf(IllegalArgumentException.class)
      .hasMessage(thrown.getMessage());
  }