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 d0bf723f11a6490fc29964c2891a89708510508a..7abe5d2ad8951b86bd092278fce95caed68434c8 100644 (file)
@@ -17,6 +17,8 @@ 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;
 
@@ -33,7 +35,9 @@ import javax.xml.transform.stream.StreamSource;
  * @author Erik Brakkee
  */
 public class ClasspathUriResolverTest extends TestCase {
-    private URIResolver resolver;
+    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)
@@ -51,17 +55,17 @@ public class ClasspathUriResolverTest extends TestCase {
      * @throws TransformerException
      * @throws IOException
      */
-    public void testResolveExistingFile() throws TransformerException,
-        IOException {
+    public void testResolveExistingFileURIResolver()
+        throws TransformerException, IOException {
         Source source = resolver
-            .resolve("org/wamblee/xml/reportToHtml.xsl", "");
+            .resolve(EXISTING_RESOURCE, "");
         assertTrue(source instanceof StreamSource);
 
         String resolved = FileSystemUtils.read(((StreamSource) source)
             .getInputStream());
 
         ClassPathResource resource = new ClassPathResource(
-            "org/wamblee/xml/reportToHtml.xsl");
+            EXISTING_RESOURCE);
         String expected = FileSystemUtils.read(resource.getInputStream());
         assertEquals(expected, resolved);
     }
@@ -71,14 +75,48 @@ public class ClasspathUriResolverTest extends TestCase {
      * thrown.
      * 
      */
-    public void testResolveNonExistingFile() {
+    public void testResolveNonExistingFileURIResolver() {
         try {
             resolver
-                .resolve("org/wamblee/xml/reportToHtml-nonexisting.xsl", "");
+                .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);
+    }
 }