### Question:
FileLock { public void increaseLock(@NonNull String path) { AtomicInteger lockCount; synchronized (fileLockCountMap) { lockCount = fileLockCountMap.get(path); } if (lockCount == null) { lockCount = new AtomicInteger(0); synchronized (fileLockCountMap) { fileLockCountMap.put(path, lockCount); } } Util.d(TAG, "increaseLock increase lock-count to " + lockCount.incrementAndGet() + path); } FileLock(@NonNull Map<String, AtomicInteger> fileLockCountMap,
             @NonNull Map<String, Thread> waitThreadForFileLockMap);   FileLock(); void increaseLock(@NonNull String path); void decreaseLock(@NonNull String path); void waitForRelease(@NonNull String filePath);  }### Answer:
@Test public void increaseLock() { fileLock.increaseLock(filePath1); assertThat(fileLockCountMap.get(filePath1).get()).isOne(); fileLock.increaseLock(filePath1); assertThat(fileLockCountMap.get(filePath1).get()).isEqualTo(2); fileLock.increaseLock(filePath2); assertThat(fileLockCountMap.get(filePath2).get()).isOne(); fileLock.increaseLock(filePath2); assertThat(fileLockCountMap.get(filePath2).get()).isEqualTo(2); }