offline building of site deploy to improve performance.
[utils] / support / general / src / test / java / org / wamblee / xml / ClasspathUriResolverTest.java
index 48d900bf37697f261b9941543357a7702e84842f..bc1c9cfc043a5500b8b8e64d4242629bc1223150 100644 (file)
@@ -1,12 +1,12 @@
 /*
- * 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.
  * 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.
  */
 package org.wamblee.xml;
 
+import static org.wamblee.xml.XMLDocument.*;
 import junit.framework.TestCase;
 
+import org.junit.Before;
+import org.junit.Test;
+import org.w3c.dom.ls.LSInput;
+import org.w3c.dom.ls.LSResourceResolver;
 import org.wamblee.io.ClassPathResource;
 import org.wamblee.io.FileSystemUtils;
 
@@ -27,41 +32,93 @@ import javax.xml.transform.TransformerException;
 import javax.xml.transform.URIResolver;
 import javax.xml.transform.stream.StreamSource;
 
+import static junit.framework.TestCase.*;
+
 /**
  * Tests for {@link org.wamblee.xml.ClasspathUriResolver}.
  * 
  * @author Erik Brakkee
  */
-public class ClasspathUriResolverTest extends TestCase {
-    private URIResolver resolver;
+public class ClasspathUriResolverTest {
+    private static final String REPORT_TO_HTML_XSL = "reportToHtml.xsl";
+    private static final String PREFIX = "org/wamblee/xml";
+    private static final String EXISTING_RESOURCE = PREFIX + "/" + REPORT_TO_HTML_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 {
+    @Before
+    public void setUp() throws Exception {
         resolver = new ClasspathUriResolver();
     }
 
+    /**
+     * Resolves a non-existing file. Verifies that a TransformerException is
+     * thrown.
+     * 
+     */
+    @Test
+    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 testResolveExistingFile() throws TransformerException,
-        IOException {
-        Source source = resolver
-            .resolve("org/wamblee/xml/reportToHtml.xsl", "");
-        assertTrue(source instanceof StreamSource);
+    @Test
+    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(((StreamSource) source)
-            .getInputStream());
+        String resolved = FileSystemUtils.read(source.getByteStream());
 
         ClassPathResource resource = new ClassPathResource(
-            "org/wamblee/xml/reportToHtml.xsl");
+            EXISTING_RESOURCE);
+        String expected = FileSystemUtils.read(resource.getInputStream());
+        assertEquals(expected, resolved);
+    }
+    
+    /**
+     * Resolves an existing file using a base path. Verifies the file is resolved correctly.
+     * 
+     * @throws TransformerException
+     * @throws IOException
+     */
+    @Test
+    public void testResolveExistingFileLSResourceResolverUsingBasePath()
+        throws TransformerException, IOException {
+        
+        resolver = new ClasspathUriResolver(PREFIX);
+        LSInput source = resolver.resolveResource(null, null, "kees",
+            REPORT_TO_HTML_XSL, null);
+        assertNotNull(source);
+        
+        assertEquals("kees", source.getPublicId());
+        assertEquals(REPORT_TO_HTML_XSL, source.getSystemId());
+
+        String resolved = FileSystemUtils.read(source.getByteStream());
+
+        ClassPathResource resource = new ClassPathResource(
+            EXISTING_RESOURCE);
         String expected = FileSystemUtils.read(resource.getInputStream());
         assertEquals(expected, resolved);
     }
@@ -71,14 +128,10 @@ public class ClasspathUriResolverTest extends TestCase {
      * thrown.
      * 
      */
-    public void testResolveNonExistingFile() {
-        try {
-            Source source = resolver.resolve(
-                "org/wamblee/xml/reportToHtml-nonexisting.xsl", "");
-        } catch (TransformerException e) {
-            return; // ok
-        }
-
-        fail();
+    @Test
+    public void testResolveNonExistingFileLSResourceResolver() {
+        LSInput input = resolver.resolveResource(null, null, "kees",
+            NON_EXISTING_RESOURCE, null);
+        assertNull(input);
     }
 }