From a6abdb1e1c19659efdbf1084dc124395989fc2ec Mon Sep 17 00:00:00 2001 From: Ulli Hafner Date: Wed, 8 Jan 2025 09:40:13 +0100 Subject: [PATCH] Export file system facade to be used in tests. --- .../java/edu/hm/hafner/util/PackageDetector.java | 16 ++++++++++++++-- .../hm/hafner/util/PackageDetectorFactory.java | 10 +++++++++- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/src/main/java/edu/hm/hafner/util/PackageDetector.java b/src/main/java/edu/hm/hafner/util/PackageDetector.java index af0cbd0c..9f18cb78 100644 --- a/src/main/java/edu/hm/hafner/util/PackageDetector.java +++ b/src/main/java/edu/hm/hafner/util/PackageDetector.java @@ -101,9 +101,21 @@ private Optional detectPackageName(final Stream lines) { * Facade for file system operations. May be replaced by stubs in test cases. */ @VisibleForTesting - static class FileSystemFacade { + public static class FileSystemFacade { + /** + * Opens the specified file. + * + * @param fileName + * the name of the file to open + * + * @return the input stream to read the file + * @throws IOException + * if the file could not be opened + * @throws InvalidPathException + * the file name is invalid + */ @MustBeClosed - InputStream openFile(final String fileName) throws IOException, InvalidPathException { + public InputStream openFile(final String fileName) throws IOException, InvalidPathException { return Files.newInputStream(Paths.get(fileName)); } } diff --git a/src/main/java/edu/hm/hafner/util/PackageDetectorFactory.java b/src/main/java/edu/hm/hafner/util/PackageDetectorFactory.java index d5499543..50e0fa64 100644 --- a/src/main/java/edu/hm/hafner/util/PackageDetectorFactory.java +++ b/src/main/java/edu/hm/hafner/util/PackageDetectorFactory.java @@ -17,8 +17,16 @@ public static PackageDetectorRunner createPackageDetectors() { return createPackageDetectors(new FileSystemFacade()); } + /** + * Creates a new package detector runner that uses the detectors for Java, Kotlin, and C#. + * + * @param facade + * the file system facade to use + * + * @return the package detector runner + */ @VisibleForTesting - static PackageDetectorRunner createPackageDetectors(final FileSystemFacade facade) { + public static PackageDetectorRunner createPackageDetectors(final FileSystemFacade facade) { return new PackageDetectorRunner( new JavaPackageDetector(facade), new KotlinPackageDetector(facade),