### Question:
ProjectStore { public Path getLogFilePath(String gitShortCommitId){ if(this.logFilePath == null) { String logFileName = generateLogFileName(gitShortCommitId); this.logFilePath = Paths.get(this.dataRootPath) .resolve("projects") .resolve(this.owner) .resolve(this.repositoryName) .resolve(this.projectName) .resolve("buildLogs") .resolve(logFileName); } return this.logFilePath; } ProjectStore(String dataRootPath, 
			String owner, 
			String repositoryName, 
			String projectName, 
			String version); Path getLogFilePath(String gitShortCommitId);  }### Answer:
@Test public void getLogFilePathNoGitShortCommitId() { Path logFilePath = store.getLogFilePath(null); assertThat(logFilePath.getParent().compareTo(Paths.get(this.rootDataPath, "projects/jack/repo1/project1/buildLogs"))).isEqualTo(0); String logFileName = logFilePath.getFileName().toString(); assertThat(logFileName).startsWith("master-"); assertThat(logFileName).endsWith("-" + StringUtils.repeat('0', 7) + ".log"); }
@Test public void getLogFilePathHasGitShortCommitId(@TempDir Path rootDir) { Path logFilePath = store.getLogFilePath("abcdefg"); String logFileName = logFilePath.getFileName().toString(); assertThat(logFileName).startsWith("master-"); assertThat(logFileName).endsWith("-abcdefg.log"); }
@Test public void getLogFilePathTwice() throws InterruptedException { Path first = store.getLogFilePath(null); TimeUnit.SECONDS.sleep(1); Path second = store.getLogFilePath(null); assertThat(first).isEqualTo(second); }
@Test public void getLogFilePathNotExists() { Path logFilePath = store.getLogFilePath(null); assertThat(logFilePath).doesNotExist(); }