(no commit message)
authorerik <erik@77661180-640e-0410-b3a8-9f9b13e6d0e0>
Mon, 27 Mar 2006 07:29:10 +0000 (07:29 +0000)
committererik <erik@77661180-640e-0410-b3a8-9f9b13e6d0e0>
Mon, 27 Mar 2006 07:29:10 +0000 (07:29 +0000)
.classpath
support/resources/test/org/wamblee/io/myresource.txt [new file with mode: 0644]
support/test/org/wamblee/io/ClassPathResourceTest.java [new file with mode: 0644]
support/test/org/wamblee/test/FileSystemUtils.java

index e8c8128b7929cf302dc0dfc556862bf381336363..544ec0003c825ba07de062ff361e303ecee7f95f 100644 (file)
@@ -56,5 +56,6 @@
        <classpathentry kind="lib" path="crawler/kiss/lib/external/commons-email-1.0.jar"/>
        <classpathentry kind="lib" path="support/lib/test/emma_ant-2.0.5312.jar"/>
        <classpathentry kind="lib" path="support/lib/test/emma-2.0.5312.jar"/>
+       <classpathentry kind="lib" path="support/resources/test"/>
        <classpathentry kind="output" path="support/testbin"/>
 </classpath>
diff --git a/support/resources/test/org/wamblee/io/myresource.txt b/support/resources/test/org/wamblee/io/myresource.txt
new file mode 100644 (file)
index 0000000..c72f110
--- /dev/null
@@ -0,0 +1 @@
+This is my resource
\ No newline at end of file
diff --git a/support/test/org/wamblee/io/ClassPathResourceTest.java b/support/test/org/wamblee/io/ClassPathResourceTest.java
new file mode 100644 (file)
index 0000000..467da84
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Copyright 2005 the original author or authors.
+ * 
+ * Licensed 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.wamblee.io;
+
+import java.io.IOException;
+import java.io.InputStream;
+
+import org.wamblee.test.FileSystemUtils;
+
+import junit.framework.TestCase;
+
+/**
+ * Tests for the classpath resource.
+ */
+public class ClassPathResourceTest extends TestCase {
+
+    /**
+     * Loads an existing resource from the class path. Verifies it is found.
+     * 
+     */
+    public void testResourceFound() throws IOException {
+        ClassPathResource resource = new ClassPathResource(
+                "org/wamblee/io/myresource.txt");
+        InputStream is = resource.getInputStream();
+        String data = FileSystemUtils.read(is);
+        assertEquals("This is my resource", data);
+    }
+
+    /**
+     * Loads a non-existing resource from the class path. Verifies that an IO
+     * exception is thrown.
+     * 
+     */
+    public void testResourceNotFound() {
+        try {
+            ClassPathResource resource = new ClassPathResource(
+                    "org/wamblee/io/myresource-nonexistent.txt");
+            InputStream is = resource.getInputStream();
+        } catch (IOException e) {
+            return; // ok
+        }
+        fail();
+    }
+}
index e0309572911b027dff6fdffc5b9431af818ef5b9..3778a97077889ee42dcf63190a1661fc41adaaef 100644 (file)
@@ -16,6 +16,8 @@
 package org.wamblee.test;
 
 import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
 import java.io.UnsupportedEncodingException;
 import java.net.URL;
 import java.net.URLDecoder;
@@ -26,6 +28,8 @@ import junit.framework.TestCase;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
+import sun.security.krb5.internal.crypto.b;
+
 /**
  * File system utilities.
  */
@@ -66,7 +70,7 @@ public final class FileSystemUtils {
     public static void deleteDirRecursively(File aDir) {
         TestCase.assertTrue(aDir.isDirectory());
 
-        for (File file: aDir.listFiles()) {
+        for (File file : aDir.listFiles()) {
             if (file.isDirectory()) {
                 deleteDirRecursively(file);
             } else {
@@ -186,4 +190,17 @@ public final class FileSystemUtils {
         createDir(file.getParentFile());
         return file;
     }
+
+    public static String read(InputStream aIs) throws IOException {
+        try {
+            StringBuffer buffer = new StringBuffer();
+            int c;
+            while ((c = aIs.read()) != -1) {
+                buffer.append((char)c);
+            }
+            return buffer.toString();
+        } finally {
+            aIs.close();
+        }
+    }
 }