ClasspathUriResolver is now also an LSInputResolver so it can be used for both XSLT...
[utils] / support / general / src / test / java / org / wamblee / xml / ClasspathUriResolverTest.java
index 39280c60867b1e6d872c3a19002d1c8654c96d7f..7abe5d2ad8951b86bd092278fce95caed68434c8 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005 the original author or authors.
+ * Copyright 2005-2010 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.
  * 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.xml;
 
+import junit.framework.TestCase;
+
+import org.w3c.dom.ls.LSInput;
+import org.w3c.dom.ls.LSResourceResolver;
+import org.wamblee.io.ClassPathResource;
+import org.wamblee.io.FileSystemUtils;
+
 import java.io.IOException;
 
 import javax.xml.transform.Source;
@@ -23,54 +29,94 @@ import javax.xml.transform.TransformerException;
 import javax.xml.transform.URIResolver;
 import javax.xml.transform.stream.StreamSource;
 
-import junit.framework.TestCase;
-
-
-import org.wamblee.io.ClassPathResource;
-import org.wamblee.io.FileSystemUtils;
-
 /**
  * Tests for {@link org.wamblee.xml.ClasspathUriResolver}.
- *
+ * 
  * @author Erik Brakkee
  */
 public class ClasspathUriResolverTest extends TestCase {
-    
-    private URIResolver _resolver; 
-    
-    /* (non-Javadoc)
+    private static final String EXISTING_RESOURCE = "org/wamblee/xml/reportToHtml.xsl";
+    private static final String NON_EXISTING_RESOURCE = "org/wamblee/xml/reportToHtml-nonexisting.xsl";
+    private ClasspathUriResolver resolver;
+
+    /*
+     * (non-Javadoc)
+     * 
      * @see junit.framework.TestCase#setUp()
      */
     @Override
     protected void setUp() throws Exception {
-        _resolver = new ClasspathUriResolver();        
+        resolver = new ClasspathUriResolver();
     }
 
     /**
-     * Resolves an existing file. Verifies the file is resolved correctly. 
-     * @throws TransformerException 
+     * Resolves an existing file. Verifies the file is resolved correctly.
+     * 
+     * @throws TransformerException
      * @throws IOException
      */
-    public void testResolveExistingFile() throws TransformerException, IOException { 
-        Source source = _resolver.resolve("org/wamblee/xml/reportToHtml.xsl", "");
+    public void testResolveExistingFileURIResolver()
+        throws TransformerException, IOException {
+        Source source = resolver
+            .resolve(EXISTING_RESOURCE, "");
         assertTrue(source instanceof StreamSource);
-        String resolved = FileSystemUtils.read(((StreamSource)source).getInputStream());
-        
-        ClassPathResource resource = new ClassPathResource("org/wamblee/xml/reportToHtml.xsl");
+
+        String resolved = FileSystemUtils.read(((StreamSource) source)
+            .getInputStream());
+
+        ClassPathResource resource = new ClassPathResource(
+            EXISTING_RESOURCE);
         String expected = FileSystemUtils.read(resource.getInputStream());
         assertEquals(expected, resolved);
     }
-    
+
     /**
-     * Resolves a non-existing file. Verifies that a TransformerException is thrown. 
-     *
+     * Resolves a non-existing file. Verifies that a TransformerException is
+     * thrown.
+     * 
      */
-    public void testResolveNonExistingFile() {
-        try { 
-            Source source = _resolver.resolve("org/wamblee/xml/reportToHtml-nonexisting.xsl", "");
-        } catch (TransformerException e) { 
+    public void testResolveNonExistingFileURIResolver() {
+        try {
+            resolver
+                .resolve(NON_EXISTING_RESOURCE, "");
+        } catch (TransformerException e) {
             return; // ok
         }
+
         fail();
     }
+
+    /**
+     * Resolves an existing file. Verifies the file is resolved correctly.
+     * 
+     * @throws TransformerException
+     * @throws IOException
+     */
+    public void testResolveExistingFileLSResourceResolver()
+        throws TransformerException, IOException {
+        LSInput source = resolver.resolveResource(null, null, "kees",
+            EXISTING_RESOURCE, null);
+        assertNotNull(source);
+        
+        assertEquals("kees", source.getPublicId());
+        assertEquals(EXISTING_RESOURCE, source.getSystemId());
+
+        String resolved = FileSystemUtils.read(source.getByteStream());
+
+        ClassPathResource resource = new ClassPathResource(
+            EXISTING_RESOURCE);
+        String expected = FileSystemUtils.read(resource.getInputStream());
+        assertEquals(expected, resolved);
+    }
+
+    /**
+     * Resolves a non-existing file. Verifies that a TransformerException is
+     * thrown.
+     * 
+     */
+    public void testResolveNonExistingFileLSResourceResolver() {
+        LSInput input = resolver.resolveResource(null, null, "kees",
+            NON_EXISTING_RESOURCE, null);
+        assertNull(input);
+    }
 }