[jboss-svn-commits] JBoss Common SVN: r4384 - in shrinkwrap/trunk/extension-vfs3/src: test/java/org/jboss/shrinkwrap/vfs3 and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed May 12 10:04:11 EDT 2010
Author: ALRubinger
Date: 2010-05-12 10:04:11 -0400 (Wed, 12 May 2010)
New Revision: 4384
Modified:
shrinkwrap/trunk/extension-vfs3/src/main/java/org/jboss/shrinkwrap/vfs3/ArchiveFileSystem.java
shrinkwrap/trunk/extension-vfs3/src/test/java/org/jboss/shrinkwrap/vfs3/ArchiveFileSystemUnitTestCase.java
Log:
[SHRINKWRAP-169] Fix ArchiveFileSystem.isDirectory to return false if the path in question does not exist
Modified: shrinkwrap/trunk/extension-vfs3/src/main/java/org/jboss/shrinkwrap/vfs3/ArchiveFileSystem.java
===================================================================
--- shrinkwrap/trunk/extension-vfs3/src/main/java/org/jboss/shrinkwrap/vfs3/ArchiveFileSystem.java 2010-05-11 21:41:05 UTC (rev 4383)
+++ shrinkwrap/trunk/extension-vfs3/src/main/java/org/jboss/shrinkwrap/vfs3/ArchiveFileSystem.java 2010-05-12 14:04:11 UTC (rev 4384)
@@ -209,8 +209,17 @@
/** {@inheritDoc} */
public boolean isDirectory(VirtualFile mountPoint, VirtualFile target)
{
- final Node node = getNode(mountPoint, target);
- return node == null || node.getAsset() == null;
+ // Only if this exists can it be a directory
+ if (this.exists(mountPoint, target))
+ {
+ final Node node = getNode(mountPoint, target);
+ final Asset asset = node.getAsset();
+ // Null assets under a node indicate a directory
+ return asset == null;
+ }
+ // Doesn't exist, return false
+ return false;
+
}
/** {@inheritDoc} */
Modified: shrinkwrap/trunk/extension-vfs3/src/test/java/org/jboss/shrinkwrap/vfs3/ArchiveFileSystemUnitTestCase.java
===================================================================
--- shrinkwrap/trunk/extension-vfs3/src/test/java/org/jboss/shrinkwrap/vfs3/ArchiveFileSystemUnitTestCase.java 2010-05-11 21:41:05 UTC (rev 4383)
+++ shrinkwrap/trunk/extension-vfs3/src/test/java/org/jboss/shrinkwrap/vfs3/ArchiveFileSystemUnitTestCase.java 2010-05-12 14:04:11 UTC (rev 4384)
@@ -115,13 +115,10 @@
@Test
public void testArchiveFileSystem() throws Exception
{
+ // Create and mount an archive
final JavaArchive archive = ShrinkWrap.create(NAME_ARCHIVE, JavaArchive.class);
+ final VirtualFile virtualFile = this.createAndMountArchive(archive);
- // Back VFS by a temp directory
- final TempDir tempDir = tempFileProvider.createTempDir(archive.getName());
- VirtualFile virtualFile = VFS.getChild(UUID.randomUUID().toString()).getChild(archive.getName());
- vfsHandles.add(VFS.mount(virtualFile, new ArchiveFileSystem(archive, tempDir)));
-
// Add to the archive
archive.addResource("META-INF/test", "META-INF/test");
archive.addResource("test", "test");
@@ -130,8 +127,43 @@
// Perform assertions
Assert.assertTrue("Could not read file", virtualFile.getChild("test").isFile());
Assert.assertTrue("Could not read directory", virtualFile.getChild("META-INF").isDirectory());
+ Assert.assertTrue("Could not read directory", virtualFile.getChild("META-INF").exists());
Assert.assertTrue("Could not read file in a directory", virtualFile.getChild("META-INF").getChild("test")
.isFile());
}
+
+ /**
+ * Ensures that {@link VirtualFile#isDirectory()} returns false for files
+ * that do not exist
+ */
+ @Test
+ public void nonExistentFilesAreNotDirectory() throws Exception
+ {
+ // Create and mount an archive
+ final JavaArchive archive = ShrinkWrap.create(NAME_ARCHIVE, JavaArchive.class);
+ final VirtualFile virtualFile = this.createAndMountArchive(archive);
+
+ // Control
+ final VirtualFile doesNotExistFile = virtualFile.getChild("doesnotexist");
+ Assert
+ .assertFalse("Test should indicate that this file does not exist (control test)", doesNotExistFile.exists());
+
+ // Ensure file that doesn't exist does not report as directory
+ Assert.assertFalse("File that doesn't exist should not report as a directory", doesNotExistFile.isDirectory());
+ }
+
+ //-------------------------------------------------------------------------------------||
+ // Internal Helper Methods ------------------------------------------------------------||
+ //-------------------------------------------------------------------------------------||
+
+ private VirtualFile createAndMountArchive(final Archive<?> archive) throws Exception
+ {
+ assert archive != null : "Archive was null";
+ // Back VFS by a temp directory
+ final TempDir tempDir = tempFileProvider.createTempDir(archive.getName());
+ VirtualFile virtualFile = VFS.getChild(UUID.randomUUID().toString()).getChild(archive.getName());
+ vfsHandles.add(VFS.mount(virtualFile, new ArchiveFileSystem(archive, tempDir)));
+ return virtualFile;
+ }
}
More information about the jboss-svn-commits
mailing list