Class AbstractFileAssert<SELF extends AbstractFileAssert<SELF>>

    • Constructor Detail

      • AbstractFileAssert

        public AbstractFileAssert​(File actual,
                                  Class<?> selfType)
    • Method Detail

      • exists

        public SELF exists()
        Verifies that the actual File exists, regardless it's a file or directory.

        Example:

         File tmpFile = File.createTempFile("tmp", "txt");
         File tmpDir = Files.createTempDirectory("tmpDir").toFile();
        
         // assertions will pass
         assertThat(tmpFile).exists();
         assertThat(tmpDir).exists();
        
         tmpFile.delete();
         tmpDir.delete();
        
         // assertions will fail
         assertThat(tmpFile).exists();
         assertThat(tmpDir).exists();
        Returns:
        this assertion object.
        Throws:
        AssertionError - if the actual File is null.
        AssertionError - if the actual File does not exist.
      • doesNotExist

        public SELF doesNotExist()
        Verifies that the actual File does not exist.

        Example:

         File parentDir = Files.createTempDirectory("tmpDir").toFile();
         File tmpDir = new File(parentDir, "subDir");
         File tmpFile = new File(parentDir, "a.txt");
        
         // assertions will pass
         assertThat(tmpDir).doesNotExist();
         assertThat(tmpFile).doesNotExist();
        
         tmpDir.mkdir();
         tmpFile.createNewFile();
        
         // assertions will fail
         assertThat(tmpFile).doesNotExist();
         assertThat(tmpDir).doesNotExist();
        Returns:
        this assertion object.
        Throws:
        AssertionError - if the actual File is null.
        AssertionError - if the actual File exists.
      • isFile

        public SELF isFile()
        Verifies that the actual File is an existing file.

        Example:

         File tmpFile = File.createTempFile("tmp", "txt");
        
         // assertion will pass
         assertThat(tmpFile).isFile();
        
         tmpFile.delete();
         File tmpDir = Files.createTempDirectory("tmpDir").toFile();
        
         // assertions will fail
         assertThat(tmpFile).isFile();
         assertThat(tmpDir).isFile();
        Returns:
        this assertion object.
        Throws:
        AssertionError - if the actual File is null.
        AssertionError - if the actual File is not an existing file.
      • isDirectory

        public SELF isDirectory()
        Verifies that the actual File is an existing directory.

        Example:

         File tmpDir = Files.createTempDirectory("tmpDir").toFile();
        
         // assertion will pass
         assertThat(tmpDir).isDirectory();
        
         tmpDir.delete();
         File tmpFile = File.createTempFile("tmp", "txt");
        
         // assertions will fail
         assertThat(tmpFile).isDirectory();
         assertThat(tmpDir).isDirectory();
        Returns:
        this assertion object.
        Throws:
        AssertionError - if the actual File is null.
        AssertionError - if the actual File is not an existing file.
      • isAbsolute

        public SELF isAbsolute()
        Verifies that the actual File is an absolute path.

        Example:

         File absoluteFile = File.createTempFile("tmp", "txt");
        
         // assertions will pass
         assertThat(absoluteFile).isAbsolute();
        
         File relativeFile = new File("./test");
        
         // assertion will fail
         assertThat(relativeFile).isAbsolute();
        Returns:
        this assertion object.
        Throws:
        AssertionError - if the actual File is null.
        AssertionError - if the actual File is not an absolute path.
      • isRelative

        public SELF isRelative()
        Verifies that the actual File is a relative path.

        Example:

         File relativeFile = new File("./test");
        
         // assertion will pass
         assertThat(relativeFile).isRelative();
        
         File absoluteFile = File.createTempFile("tmp", "txt");
        
         // assertion will fail
         assertThat(absoluteFile).isRelative();
        Returns:
        this assertion object.
        Throws:
        AssertionError - if the actual File is null.
        AssertionError - if the actual File is not a relative path.
      • hasContentEqualTo

        @Deprecated
        public SELF hasContentEqualTo​(File expected)
        Deprecated.
        Verifies that the content of the actual File is equal to the content of the given one. The charset to use when reading the actual file can be provided with usingCharset(Charset) or usingCharset(String) prior to calling this method; if not, the platform's default charset (as returned by Charset.defaultCharset()) will be used. Examples:
         // use the default charset
         File xFile = Files.write(Paths.get("xfile.txt"), "The Truth Is Out There".getBytes()).toFile();
         File xFileClone = Files.write(Paths.get("xfile-clone.txt"), "The Truth Is Out There".getBytes()).toFile();
         File xFileFrench = Files.write(Paths.get("xfile-french.txt"), "La Vérité Est Ailleurs".getBytes()).toFile();
         // use UTF-8 charset
         File xFileUTF8 = Files.write(Paths.get("xfile-clone.txt"), Arrays.asList("The Truth Is Out There"), StandardCharsets.UTF_8).toFile();
        
         // The following assertion succeeds (default charset is used):
         assertThat(xFile).hasSameContentAs(xFileClone);
         // The following assertion succeeds (UTF-8 charset is used to read xFile):
         assertThat(xFileUTF8).usingCharset("UTF-8").hasContent(xFileClone);
        
         // The following assertion fails:
         assertThat(xFile).hasSameContentAs(xFileFrench);
        Parameters:
        expected - the given File to compare the actual File to.
        Returns:
        this assertion object.
        Throws:
        NullPointerException - if the given File is null.
        IllegalArgumentException - if the given File is not an existing file.
        AssertionError - if the actual File is null.
        AssertionError - if the actual File is not an existing file.
        UncheckedIOException - if an I/O error occurs.
        AssertionError - if the content of the actual File is not equal to the content of the given one.
      • hasSameContentAs

        public SELF hasSameContentAs​(File expected)
        Verifies that the content of the actual File is equal to the content of the given one. The charset to use when reading the actual file can be provided with usingCharset(Charset) or usingCharset(String) prior to calling this method; if not, the platform's default charset (as returned by Charset.defaultCharset()) will be used. Examples:
         // use the default charset
         File xFile = Files.write(Paths.get("xfile.txt"), "The Truth Is Out There".getBytes()).toFile();
         File xFileClone = Files.write(Paths.get("xfile-clone.txt"), "The Truth Is Out There".getBytes()).toFile();
         File xFileFrench = Files.write(Paths.get("xfile-french.txt"), "La Vérité Est Ailleurs".getBytes()).toFile();
         // use UTF-8 charset
         File xFileUTF8 = Files.write(Paths.get("xfile-clone.txt"), Arrays.asList("The Truth Is Out There"), StandardCharsets.UTF_8).toFile();
        
         // The following assertion succeeds (default charset is used):
         assertThat(xFile).hasSameContentAs(xFileClone);
         // The following assertion succeeds (UTF-8 charset is used to read xFile):
         assertThat(xFileUTF8).usingCharset("UTF-8").hasContent(xFileClone);
        
         // The following assertion fails:
         assertThat(xFile).hasSameContentAs(xFileFrench);
        Parameters:
        expected - the given File to compare the actual File to.
        Returns:
        this assertion object.
        Throws:
        NullPointerException - if the given File is null.
        IllegalArgumentException - if the given File is not an existing file.
        AssertionError - if the actual File is null.
        AssertionError - if the actual File is not an existing file.
        UncheckedIOException - if an I/O error occurs.
        AssertionError - if the content of the actual File is not equal to the content of the given one.
      • hasSameContentAs

        public SELF hasSameContentAs​(File expected,
                                     Charset expectedCharset)
        Verifies that the content of the actual File is the same as the expected one, the expected File being read with the given charset while the charset used to read the actual path can be provided with usingCharset(Charset) or usingCharset(String) prior to calling this method; if not, the platform's default charset (as returned by Charset.defaultCharset()) will be used.

        Examples:

         File fileUTF8 = Files.write(Paths.get("actual"), Collections.singleton("Gerçek"), StandardCharsets.UTF_8).toFile();
         Charset turkishCharset = Charset.forName("windows-1254");
         File fileTurkischCharset = Files.write(Paths.get("expected"), Collections.singleton("Gerçek"), turkishCharset).toFile();
        
         // The following assertion succeeds:
         assertThat(fileUTF8).usingCharset(StandardCharsets.UTF_8).hasSameContentAs(fileTurkischCharset, turkishCharset);
        
         // The following assertion fails:
         assertThat(fileUTF8).usingCharset(StandardCharsets.UTF_8).hasSameContentAs(fileTurkischCharset, StandardCharsets.UTF_8);
        Parameters:
        expected - the given File to compare the actual File to.
        expectedCharset - the Charset used to read the content of the expected file.
        Returns:
        this assertion object.
        Throws:
        NullPointerException - if the given File is null.
        IllegalArgumentException - if the given File is not an existing file.
        AssertionError - if the actual File is null.
        AssertionError - if the actual File is not an existing file.
        UncheckedIOException - if an I/O error occurs.
        AssertionError - if the content of the actual File is not equal to the content of the given one.
      • hasBinaryContent

        public SELF hasBinaryContent​(byte[] expected)
        Verifies that the binary content of the actual File is exactly equal to the given one.

        Example:

         File bin = File.createTempFile("tmp", "bin");
         Files.write(bin.toPath(), new byte[] {1, 1});
        
         // assertion will pass
         assertThat(bin).hasBinaryContent(new byte[] {1, 1});
        
         // assertions will fail
         assertThat(bin).hasBinaryContent(new byte[] { });
         assertThat(bin).hasBinaryContent(new byte[] {0, 0});
        Parameters:
        expected - the expected binary content to compare the actual File's content to.
        Returns:
        this assertion object.
        Throws:
        NullPointerException - if the given content is null.
        AssertionError - if the actual File is null.
        AssertionError - if the actual File is not an existing file.
        UncheckedIOException - if an I/O error occurs.
        AssertionError - if the content of the actual File is not equal to the given binary content.
      • usingCharset

        public SELF usingCharset​(String charsetName)
        Specifies the name of the charset to use for text-based assertions on the file's contents.
        Parameters:
        charsetName - the name of the charset to use.
        Returns:
        this assertion object.
        Throws:
        IllegalArgumentException - if the given encoding is not supported on this platform.
      • usingCharset

        public SELF usingCharset​(Charset charset)
        Specifies the charset to use for text-based assertions on the file's contents.
        Parameters:
        charset - the charset to use.
        Returns:
        this assertion object.
        Throws:
        NullPointerException - if the given charset is null.
      • hasContent

        public SELF hasContent​(String expected)
        Verifies that the text content of the actual File is exactly equal to the given one.
        The charset to use when reading the file should be provided with usingCharset(Charset) or usingCharset(String) prior to calling this method; if not, the platform's default charset (as returned by Charset.defaultCharset()) will be used.

        Example:

         // use the default charset
         File xFile = Files.write(Paths.get("xfile.txt"), "The Truth Is Out There".getBytes()).toFile();
        
         // The following assertion succeeds (default charset is used):
         assertThat(xFile).hasContent("The Truth Is Out There");
        
         // The following assertion fails:
         assertThat(xFile).hasContent("La Vérité Est Ailleurs");
        
         // using a specific charset
         Charset turkishCharset = Charset.forName("windows-1254");
        
         File xFileTurkish = Files.write(Paths.get("xfile.turk"), Collections.singleton("Gerçek"), turkishCharset).toFile();
        
         // The following assertion succeeds:
         assertThat(xFileTurkish).usingCharset(turkishCharset).hasContent("Gerçek");
        
         // The following assertion fails :
         assertThat(xFileTurkish).usingCharset(StandardCharsets.UTF_8).hasContent("Gerçek");
        Parameters:
        expected - the expected text content to compare the actual File's content to.
        Returns:
        this assertion object.
        Throws:
        NullPointerException - if the given content is null.
        AssertionError - if the actual File is null.
        AssertionError - if the actual File is not an existing file.
        UncheckedIOException - if an I/O error occurs.
        AssertionError - if the content of the actual File is not equal to the given content.
      • canWrite

        public SELF canWrite()
        Verifies that the actual File can be modified by the application.

        Example:

         File tmpFile = File.createTempFile("tmp", "txt");
         File tmpDir = Files.createTempDirectory("tmp").toFile();
        
         // assertions will pass
         assertThat(tmpFile).canWrite();
         assertThat(tmpDir).canWrite();
        
         tmpFile.setReadOnly();
         tmpDir.setReadOnly();
        
         // assertions will fail
         assertThat(tmpFile).canWrite();
         assertThat(tmpDir).canWrite();
        Returns:
        this assertion object.
        Throws:
        AssertionError - if the actual File is null.
        AssertionError - if the actual File can not be modified by the application.
      • canRead

        public SELF canRead()
        Verifies that the actual File can be read by the application.

        Example:

         File tmpFile = File.createTempFile("tmp", "txt");
         File tmpDir = Files.createTempDirectory("tmp").toFile();
        
         // assertions will pass
         assertThat(tmpFile).canRead();
         assertThat(tmpDir).canRead();
        
         tmpFile.setReadable(false);
         tmpDir.setReadable(false);
        
         // assertions will fail
         assertThat(tmpFile).canRead();
         assertThat(tmpDir).canRead();
        Returns:
        this assertion object.
        Throws:
        AssertionError - if the actual File is null.
        AssertionError - if the actual File can not be read by the application.
      • hasParent

        public SELF hasParent​(File expected)
        Verifies that the actual File has given parent.

        Example:

         File xFile = new File("mulder/xFile");
        
         // assertion will pass
         assertThat(xFile).hasParent(new File("mulder"));
        
         // assertion will fail
         assertThat(xFile).hasParent(new File("scully"));
        Parameters:
        expected - the expected parent File.
        Returns:
        this assertion object.
        Throws:
        NullPointerException - if the expected parent File is null.
        UncheckedIOException - if an I/O error occurs.
        AssertionError - if the actual File is null.
        AssertionError - if the actual File parent is not equal to the expected one.
        See Also:
        parent definition.
      • hasParent

        public SELF hasParent​(String expected)
        Same as hasParent(java.io.File) but takes care of converting given String as File for you

        Example:

         File xFile = new File("mulder/xFile");
        
         // assertion will pass
         assertThat(xFile).hasParent("mulder");
        
         // assertion will fail
         assertThat(xFile).hasParent("scully");
        Parameters:
        expected - the expected parent file path.
        Returns:
        this assertion object.
      • hasExtension

        public SELF hasExtension​(String expected)
        Verifies that the actual File has given extension.

        Example:

         File xFile = new File("xFile.java");
        
         // assertion will pass
         assertThat(xFile).hasExtension("java");
        
         // assertion will fail
         assertThat(xFile).hasExtension("png");
        Parameters:
        expected - the expected extension, it does not contains the '.'
        Returns:
        this assertion object.
        Throws:
        NullPointerException - if the expected extension is null.
        AssertionError - if the actual File is null.
        AssertionError - if the actual File is not a file (ie a directory).
        AssertionError - if the actual File does not have the expected extension.
        See Also:
        Filename extension
      • hasName

        public SELF hasName​(String expected)
        Verifies that the actual File has given name.

        Example:

         File xFile = new File("somewhere/xFile.java");
         File xDirectory = new File("somewhere/xDirectory");
        
         // assertion will pass
         assertThat(xFile).hasName("xFile.java");
         assertThat(xDirectory).hasName("xDirectory");
        
         // assertion will fail
         assertThat(xFile).hasName("xFile");
         assertThat(xDirectory).hasName("somewhere");
        Parameters:
        expected - the expected File name.
        Returns:
        this assertion object.
        Throws:
        NullPointerException - if the expected name is null.
        AssertionError - if the actual File is null.
        AssertionError - if the actual File does not have the expected name.
        See Also:
        name definition.
      • hasNoParent

        public SELF hasNoParent()
        Verifies that the actual File does not have a parent.

        Example:

         File xFile = new File("somewhere/xFile.java");
         File xDirectory = new File("xDirectory");
        
         // assertion will pass
         assertThat(xDirectory).hasNoParent();
        
         // assertion will fail
         assertThat(xFile).hasNoParent();
        Returns:
        this assertion object.
        Throws:
        AssertionError - if the actual File is null.
        AssertionError - if the actual File has a parent.
      • hasDigest

        public SELF hasDigest​(MessageDigest digest,
                              byte[] expected)
        Verifies that the tested File digest (calculated with the specified MessageDigest) is equal to the given one.

        Note that the File must be readable.

        Examples:

         // assume that assertj-core-2.9.0.jar was downloaded from https://repo1.maven.org/maven2/org/assertj/assertj-core/2.9.0/assertj-core-2.9.0.jar
         File tested = new File("assertj-core-2.9.0.jar");
        
         // The following assertions succeed:
         assertThat(tested).hasDigest(MessageDigest.getInstance("SHA1"), new byte[]{92, 90, -28, 91, 88, -15, 32, 35, -127, 122, -66, 73, 36, 71, -51, -57, -111, 44, 26, 44});
         assertThat(tested).hasDigest(MessageDigest.getInstance("MD5"), new byte[]{-36, -77, 1, 92, -46, -124, 71, 100, 76, -127, 10, -13, 82, -125, 44, 25});
        
         // The following assertions fail:
         assertThat(tested).hasDigest(MessageDigest.getInstance("SHA1"), "93b9ced2ee5b3f0f4c8e640e77470dab031d4cad".getBytes());
         assertThat(tested).hasDigest(MessageDigest.getInstance("MD5"), "3735dff8e1f9df0492a34ef075205b8f".getBytes()); 
        Parameters:
        digest - the MessageDigest used to calculate the digests.
        expected - the expected binary content to compare the actual File's content to.
        Returns:
        this assertion object.
        Throws:
        NullPointerException - if the given algorithm is null.
        NullPointerException - if the given digest is null.
        AssertionError - if the actual File is null.
        AssertionError - if the actual File does not exist.
        AssertionError - if the actual File is not an file.
        AssertionError - if the actual File is not readable.
        UncheckedIOException - if an I/O error occurs.
        AssertionError - if the content of the tested File's digest is not equal to the given one.
        Since:
        3.11.0
      • hasDigest

        public SELF hasDigest​(MessageDigest digest,
                              String expected)
        Verifies that the tested File digest (calculated with the specified MessageDigest) is equal to the given one.

        Note that the File must be readable.

        Examples:

         // assume that assertj-core-2.9.0.jar was downloaded from https://repo1.maven.org/maven2/org/assertj/assertj-core/2.9.0/assertj-core-2.9.0.jar
         File tested = new File("assertj-core-2.9.0.jar");
        
         // The following assertions succeed:
         assertThat(tested).hasDigest(MessageDigest.getInstance("SHA1"), "5c5ae45b58f12023817abe492447cdc7912c1a2c");
         assertThat(tested).hasDigest(MessageDigest.getInstance("MD5"), "dcb3015cd28447644c810af352832c19");
        
         // The following assertions fail:
         assertThat(tested).hasDigest(MessageDigest.getInstance("SHA1"), "93b9ced2ee5b3f0f4c8e640e77470dab031d4cad");
         assertThat(tested).hasDigest(MessageDigest.getInstance("MD5"), "3735dff8e1f9df0492a34ef075205b8f"); 
        Parameters:
        digest - the MessageDigest used to calculate the digests.
        expected - the expected binary content to compare the actual File's content to.
        Returns:
        this assertion object.
        Throws:
        NullPointerException - if the given algorithm is null.
        NullPointerException - if the given digest is null.
        AssertionError - if the actual File is null.
        AssertionError - if the actual File does not exist.
        AssertionError - if the actual File is not an file.
        AssertionError - if the actual File is not readable.
        UncheckedIOException - if an I/O error occurs.
        AssertionError - if the content of the tested File's digest is not equal to the given one.
        Since:
        3.11.0
      • hasDigest

        public SELF hasDigest​(String algorithm,
                              byte[] expected)
        Verifies that the tested File digest (calculated with the specified algorithm) is equal to the given one.

        Note that the File must be readable.

        Examples:

         // assume that assertj-core-2.9.0.jar was downloaded from https://repo1.maven.org/maven2/org/assertj/assertj-core/2.9.0/assertj-core-2.9.0.jar
         File tested = new File("assertj-core-2.9.0.jar");
        
         // The following assertions succeed:
         assertThat(tested).hasDigest("SHA1", new byte[]{92, 90, -28, 91, 88, -15, 32, 35, -127, 122, -66, 73, 36, 71, -51, -57, -111, 44, 26, 44});
         assertThat(tested).hasDigest("MD5", new byte[]{-36, -77, 1, 92, -46, -124, 71, 100, 76, -127, 10, -13, 82, -125, 44, 25});
        
         // The following assertions fail:
         assertThat(tested).hasDigest("SHA1", "93b9ced2ee5b3f0f4c8e640e77470dab031d4cad".getBytes());
         assertThat(tested).hasDigest("MD5", "3735dff8e1f9df0492a34ef075205b8f".getBytes()); 
        Parameters:
        algorithm - the algorithm used to calculate the digests.
        expected - the expected digest to compare the actual File's digest to.
        Returns:
        this assertion object.
        Throws:
        NullPointerException - if the given algorithm is null.
        NullPointerException - if the given digest is null.
        AssertionError - if the actual File is null.
        AssertionError - if the actual File does not exist.
        AssertionError - if the actual File is not an file.
        AssertionError - if the actual File is not readable.
        UncheckedIOException - if any I/O error occurs.
        AssertionError - if the content of the tested File's digest is not equal to the given one.
        Since:
        3.11.0
      • hasDigest

        public SELF hasDigest​(String algorithm,
                              String expected)
        Verifies that the tested File digest (calculated with the specified algorithm) is equal to the given one.

        Note that the File must be readable.

        Examples:

         // assume that assertj-core-2.9.0.jar was downloaded from https://repo1.maven.org/maven2/org/assertj/assertj-core/2.9.0/assertj-core-2.9.0.jar
         File tested = new File("assertj-core-2.9.0.jar");
        
         // The following assertions succeed:
         assertThat(tested).hasDigest("SHA1", "5c5ae45b58f12023817abe492447cdc7912c1a2c");
         assertThat(tested).hasDigest("MD5", "dcb3015cd28447644c810af352832c19");
        
         // The following assertions fail:
         assertThat(tested).hasDigest("SHA1", "93b9ced2ee5b3f0f4c8e640e77470dab031d4cad");
         assertThat(tested).hasDigest("MD5", "3735dff8e1f9df0492a34ef075205b8f"); 
        Parameters:
        algorithm - the algorithm used to calculate the digests.
        expected - the expected digest to compare the actual File's digest to.
        Returns:
        this assertion object.
        Throws:
        NullPointerException - if the given algorithm is null.
        NullPointerException - if the given digest is null.
        AssertionError - if the actual File is null.
        AssertionError - if the actual File does not exist.
        AssertionError - if the actual File is not an file.
        AssertionError - if the actual File is not readable.
        UncheckedIOException - if any I/O error occurs.
        AssertionError - if the content of the tested File's digest is not equal to the given one.
        Since:
        3.11.0
      • isDirectoryContaining

        public SELF isDirectoryContaining​(Predicate<File> filter)
        Verify that the actual File is a directory containing at least one file matching the given Predicate<File>.

        Note that the actual File must exist and be a directory.

        Given the following directory structure:

         /root/
         /root/sub-dir-1/
         /root/sub-dir-1/file-1.ext
         /root/sub-dir-1/file-2.ext
         /root/sub-file-1.ext
         /root/sub-file-2.ext
        Here are some assertions examples:
         File root = new File("root");
        
         // The following assertions succeed:
         assertThat(root).isDirectoryContaining(file -> file.getName().startsWith("sub-dir"))
                         .isDirectoryContaining(file -> file.getName().startsWith("sub-file"))
                         .isDirectoryContaining(file -> file.getName().endsWith(".ext"))
                         .isDirectoryContaining(File::isDirectory);
        
         // The following assertions fail:
         assertThat(root).isDirectoryContaining(file -> file.getName().startsWith("dir"));
         assertThat(root).isDirectoryContaining(file -> file.getName().endsWith(".bin")); 
        Parameters:
        filter - the filter for files located inside actual's directory.
        Returns:
        this assertion object.
        Throws:
        NullPointerException - if the given filter is null.
        AssertionError - if actual is null.
        AssertionError - if actual does not exist.
        AssertionError - if actual is not a directory.
        AssertionError - if actual does not contain any files matching the given predicate.
        Since:
        3.13.0
      • isDirectoryContaining

        public SELF isDirectoryContaining​(String syntaxAndPattern)
        Verify that the actual File is a directory containing at least one file matching the given String interpreted as a path matcher (as per FileSystem.getPathMatcher(String)).

        Note that the actual File must exist and be a directory.

        Given the following directory structure:

         /root/
         /root/sub-dir-1/
         /root/sub-dir-1/file-1.ext
         /root/sub-dir-1/file-2.ext
         /root/sub-file-1.ext
         /root/sub-file-2.ext
        Here are some assertions examples:
         File root = new File("root");
        
         // The following assertions succeed:
         assertThat(root).isDirectoryContaining("glob:**sub-dir*")
                         .isDirectoryContaining("glob:**sub-file*")
                         .isDirectoryContaining("glob:**.ext")
                         .isDirectoryContaining("regex:.*ext")
                         .isDirectoryContaining("glob:**.{ext,bin");
        
         // The following assertions fail:
         assertThat(root).isDirectoryContaining("glob:**dir");
         assertThat(root).isDirectoryContaining("glob:**.bin");
         assertThat(root).isDirectoryContaining("glob:**.{java,class}"); 
        Parameters:
        syntaxAndPattern - the syntax and pattern for PathMatcher as described in FileSystem.getPathMatcher(String).
        Returns:
        this assertion object.
        Throws:
        NullPointerException - if the given syntaxAndPattern is null.
        AssertionError - if actual is null.
        AssertionError - if actual does not exist.
        AssertionError - if actual is not a directory.
        AssertionError - if actual does not contain any files matching the given path matcher.
        Since:
        3.13.0
        See Also:
        FileSystem.getPathMatcher(String)
      • isDirectoryNotContaining

        public SELF isDirectoryNotContaining​(Predicate<File> filter)
        Verify that the actual File is a directory that does not contain any files matching the given Predicate<File>.

        Note that the actual File must exist and be a directory.

        Given the following directory structure:

         /root/
         /root/sub-dir-1/
         /root/sub-dir-1/file-1.ext
         /root/sub-dir-1/file-2.ext
         /root/sub-file-1.ext
         /root/sub-file-2.ext
        Here are some assertions examples:
         File root = new File("root");
        
         // The following assertions succeed:
         assertThat(root).isDirectoryNotContaining(file -> file.getName().startsWith("dir"))
                         .isDirectoryNotContaining(file -> file.getName().endsWith(".bin"));
        
         // The following assertions fail:
         assertThat(root).isDirectoryNotContaining(file -> file.getName().startsWith("sub-dir"));
         assertThat(root).isDirectoryNotContaining(file -> file.getName().startsWith("sub-file"));
         assertThat(root).isDirectoryNotContaining(file -> file.getName().endsWith(".ext"));
         assertThat(root).isDirectoryNotContaining(File::isDirectory); 
        Parameters:
        filter - the filter for files located inside actual's directory.
        Returns:
        this assertion object.
        Throws:
        NullPointerException - if the given filter is null.
        AssertionError - if actual is null.
        AssertionError - if actual does not exist.
        AssertionError - if actual is not a directory.
        AssertionError - if actual contains a file matching the given predicate.
        Since:
        3.13.0
      • isDirectoryNotContaining

        public SELF isDirectoryNotContaining​(String syntaxAndPattern)
        Verify that the actual File is a directory that does not contain any files matching the given String interpreted as a path matcher (as per FileSystem.getPathMatcher(String)).

        Note that the actual File must exist and be a directory.

        Given the following directory structure:

         /root/
         /root/sub-dir-1/
         /root/sub-dir-1/file-1.ext
         /root/sub-dir-1/file-2.ext
         /root/sub-file-1.ext
         /root/sub-file-2.ext
        Here are some assertions examples:
         File root = new File("root");
        
         // The following assertions succeed:
         assertThat(root).isDirectoryNotContaining("glob:**dir")
                         .isDirectoryNotContaining("glob:**.bin")
                         .isDirectoryNotContaining("regex:.*bin")
                         .isDirectoryNotContaining("glob:**.{java,class}");
        
         // The following assertions fail:
         assertThat(root).isDirectoryNotContaining("glob:**sub-dir*");
         assertThat(root).isDirectoryNotContaining("glob:**sub-file*");
         assertThat(root).isDirectoryNotContaining("glob:**.ext");
         assertThat(root).isDirectoryNotContaining("regex:.*ext");
         assertThat(root).isDirectoryNotContaining("glob:**.{ext,bin"); 
        Parameters:
        syntaxAndPattern - the syntax and pattern for PathMatcher as described in FileSystem.getPathMatcher(String).
        Returns:
        this assertion object.
        Throws:
        NullPointerException - if the given syntaxAndPattern is null.
        AssertionError - if actual is null.
        AssertionError - if actual does not exist.
        AssertionError - if actual is not a directory.
        AssertionError - if actual contains a file matching the given path matcher.
        Since:
        3.13.0
        See Also:
        FileSystem.getPathMatcher(String)
      • isEmptyDirectory

        public SELF isEmptyDirectory()
        Verify that the actual File is an empty directory.

        Note that the actual File must exist and be a directory.

        Given the following directory structure:

         /root/
         /root/sub-dir-1/
         /root/sub-dir-1/file-1.ext
         /root/sub-dir-1/file-2.ext
         /root/sub-dir-2/
         /root/sub-file-1.ext
         /root/sub-file-2.ext
        Here are some assertions examples:
         File root = new File("root");
        
         // The following assertion succeeds:
         assertThat(new File(root, "sub-dir-2")).isEmptyDirectory();
        
         // The following assertions fail:
         assertThat(root).isEmptyDirectory();
         assertThat(new File(root, "sub-dir-1")).isEmptyDirectory(); 
        Returns:
        this assertion object.
        Throws:
        AssertionError - if actual is null.
        AssertionError - if actual does not exist.
        AssertionError - if actual is not a directory.
        AssertionError - if actual is not empty.
        Since:
        3.13.0
      • isNotEmptyDirectory

        public SELF isNotEmptyDirectory()
        Verify that the actual File is a non empty directory.

        Note that the actual File must exist and be a directory.

        Given the following directory structure:

         /root/
         /root/sub-dir-1/
         /root/sub-dir-1/file-1.ext
         /root/sub-dir-1/file-2.ext
         /root/sub-dir-2/
         /root/sub-file-1.ext
         /root/sub-file-2.ext
        Here are some assertions examples:
         File root = new File("root");
        
         // The following assertions succeed:
         assertThat(root).isNotEmptyDirectory();
         assertThat(new File(root, "sub-dir-1")).isNotEmptyDirectory();
        
         // The following assertions fail:
         assertThat(new File(root, "sub-dir-2")).isNotEmptyDirectory(); 
        Returns:
        this assertion object.
        Throws:
        AssertionError - if actual is null.
        AssertionError - if actual does not exist.
        AssertionError - if actual is not a directory.
        AssertionError - if actual is empty.
        Since:
        3.13.0