Author: ggregory
Date: Thu May 31 21:56:53 2012
New Revision: 1344924

URL: http://svn.apache.org/viewvc?rev=1344924&view=rev
Log:
Test attributes for [VFS-419] JarFileSystem incorrectly resolves file if it has 
been removed from the cache.

Added:
    
commons/proper/vfs/trunk/core/src/test/java/org/apache/commons/vfs2/provider/jar/test/JarAttributesTestCase.java
   (with props)
Modified:
    
commons/proper/vfs/trunk/core/src/test/java/org/apache/commons/vfs2/provider/jar/test/JarProviderTestCase.java
    
commons/proper/vfs/trunk/core/src/test/java/org/apache/commons/vfs2/test/ContentTests.java

Added: 
commons/proper/vfs/trunk/core/src/test/java/org/apache/commons/vfs2/provider/jar/test/JarAttributesTestCase.java
URL: 
http://svn.apache.org/viewvc/commons/proper/vfs/trunk/core/src/test/java/org/apache/commons/vfs2/provider/jar/test/JarAttributesTestCase.java?rev=1344924&view=auto
==============================================================================
--- 
commons/proper/vfs/trunk/core/src/test/java/org/apache/commons/vfs2/provider/jar/test/JarAttributesTestCase.java
 (added)
+++ 
commons/proper/vfs/trunk/core/src/test/java/org/apache/commons/vfs2/provider/jar/test/JarAttributesTestCase.java
 Thu May 31 21:56:53 2012
@@ -0,0 +1,65 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.commons.vfs2.provider.jar.test;
+
+import java.util.Map;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+
+import org.apache.commons.vfs2.FileObject;
+import org.apache.commons.vfs2.VFS;
+import org.junit.Test;
+
+/**
+ * Tests JAR attributes.
+ * 
+ * @version $Id$
+ */
+public class JarAttributesTestCase extends TestCase
+{
+    private void printAttributes(final Map<String, Object> attributes)
+    {
+        for (final Map.Entry<String, Object> e : attributes.entrySet())
+        {
+            System.out.println("Key: " + e.getKey() + ", Value: " + 
e.getValue());
+        }
+    }
+
+    @Test
+    public void testAttributes() throws Exception
+    {
+        final FileObject file = 
JarProviderTestCase.getTestJar(VFS.getManager(), "test.jar");
+
+        final Map<String, Object> attributes = 
file.getContent().getAttributes();
+        Assert.assertEquals("1.0", attributes.get("Manifest-Version"));
+        // Debugging:
+        // this.printAttributes(attributes);
+    }
+
+    @Test
+    public void testNestedAttributes() throws Exception
+    {
+        final FileObject nested = 
JarProviderTestCase.getTestJar(VFS.getManager(), "nested.jar");
+        final FileObject file = nested.resolveFile("test.jar");
+
+        final Map<String, Object> attributes = 
file.getContent().getAttributes();
+        Assert.assertEquals("1.0", attributes.get("Manifest-Version"));
+        // Debugging:
+        // this.printAttributes(attributes);
+    }
+}

Propchange: 
commons/proper/vfs/trunk/core/src/test/java/org/apache/commons/vfs2/provider/jar/test/JarAttributesTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
commons/proper/vfs/trunk/core/src/test/java/org/apache/commons/vfs2/provider/jar/test/JarAttributesTestCase.java
------------------------------------------------------------------------------
    svn:keywords = Id

Modified: 
commons/proper/vfs/trunk/core/src/test/java/org/apache/commons/vfs2/provider/jar/test/JarProviderTestCase.java
URL: 
http://svn.apache.org/viewvc/commons/proper/vfs/trunk/core/src/test/java/org/apache/commons/vfs2/provider/jar/test/JarProviderTestCase.java?rev=1344924&r1=1344923&r2=1344924&view=diff
==============================================================================
--- 
commons/proper/vfs/trunk/core/src/test/java/org/apache/commons/vfs2/provider/jar/test/JarProviderTestCase.java
 (original)
+++ 
commons/proper/vfs/trunk/core/src/test/java/org/apache/commons/vfs2/provider/jar/test/JarProviderTestCase.java
 Thu May 31 21:56:53 2012
@@ -32,10 +32,15 @@ import org.apache.commons.vfs2.test.Prov
 /**
  * Tests for the Jar file system.
  */
-public class JarProviderTestCase
-    extends AbstractProviderTestConfig
-    implements ProviderTestConfig
+public class JarProviderTestCase extends AbstractProviderTestConfig implements 
ProviderTestConfig
 {
+    static FileObject getTestJar(final FileSystemManager manager, String name) 
throws Exception
+    {
+        final File jarFile = AbstractVfsTestCase.getTestResourceFile(name);
+        final String uri = "jar:file:" + jarFile.getAbsolutePath() + "!/";
+        return manager.resolveFile(uri);
+    }
+
     /**
      * Creates the test suite for the jar file system.
      */
@@ -45,23 +50,20 @@ public class JarProviderTestCase
     }
 
     /**
-     * Prepares the file system manager.
+     * Returns the base folder for tests.
      */
     @Override
-    public void prepare(final DefaultFileSystemManager manager)
-        throws Exception
+    public FileObject getBaseTestFolder(final FileSystemManager manager) 
throws Exception
     {
-        manager.addProvider("jar", new JarFileProvider());
+        return JarProviderTestCase.getTestJar(manager, "test.jar");
     }
 
     /**
-     * Returns the base folder for tests.
+     * Prepares the file system manager.
      */
     @Override
-    public FileObject getBaseTestFolder(final FileSystemManager manager) 
throws Exception
+    public void prepare(final DefaultFileSystemManager manager) throws 
Exception
     {
-        final File jarFile = 
AbstractVfsTestCase.getTestResourceFile("test.jar");
-        final String uri = "jar:file:" + jarFile.getAbsolutePath() + "!/";
-        return manager.resolveFile(uri);
+        manager.addProvider("jar", new JarFileProvider());
     }
 }

Modified: 
commons/proper/vfs/trunk/core/src/test/java/org/apache/commons/vfs2/test/ContentTests.java
URL: 
http://svn.apache.org/viewvc/commons/proper/vfs/trunk/core/src/test/java/org/apache/commons/vfs2/test/ContentTests.java?rev=1344924&r1=1344923&r2=1344924&view=diff
==============================================================================
--- 
commons/proper/vfs/trunk/core/src/test/java/org/apache/commons/vfs2/test/ContentTests.java
 (original)
+++ 
commons/proper/vfs/trunk/core/src/test/java/org/apache/commons/vfs2/test/ContentTests.java
 Thu May 31 21:56:53 2012
@@ -93,6 +93,13 @@ public class ContentTests
     }
 
     /**
+     * Tests attributes
+     */
+    public void testAttributes() throws FileSystemException {
+        this.getReadFolder().getContent().getAttributes();
+    }
+    
+    /**
      * Tests root of file system exists.
      */
     public void testRootURI() throws FileSystemException


Reply via email to