//========================================================================
//Copyright 2007 Mort Bay Consulting Pty. Ltd.
//------------------------------------------------------------------------
//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.mortbay.resource;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import junit.framework.TestCase;
public class ResourceCollectionTest extends TestCase
{
public void testMutlipleSources1() throws Exception
{
ResourceCollection rc1 = new ResourceCollection(new String[]{
"src/test/resources/org/mortbay/resource/one/",
"src/test/resources/org/mortbay/resource/two/",
"src/test/resources/org/mortbay/resource/three/"
});
assertEquals("1 - one", getContent(rc1, "1.txt"));
assertEquals("2 - two", getContent(rc1, "2.txt"));
assertEquals("3 - three", getContent(rc1, "3.txt"));
ResourceCollection rc2 = new ResourceCollection(
"src/test/resources/org/mortbay/resource/one/," +
"src/test/resources/org/mortbay/resource/two/," +
"src/test/resources/org/mortbay/resource/three/"
);
assertEquals("1 - one", getContent(rc2, "1.txt"));
assertEquals("2 - two", getContent(rc2, "2.txt"));
assertEquals("3 - three", getContent(rc2, "3.txt"));
String[] list = rc1.list();
for(int i=0; i<list.length; i++)
System.err.println(list[i]);
}
public void testMergedDir() throws Exception
{
ResourceCollection rc = new ResourceCollection(new String[]{
"src/test/resources/org/mortbay/resource/one/",
"src/test/resources/org/mortbay/resource/two/",
"src/test/resources/org/mortbay/resource/three/"
});
Resource r = rc.addPath("dir");
assertTrue(r instanceof ResourceCollection);
rc=(ResourceCollection)r;
assertEquals("1 - one", getContent(rc, "1.txt"));
assertEquals("2 - two", getContent(rc, "2.txt"));
assertEquals("3 - three", getContent(rc, "3.txt"));
}
static String getContent(ResourceCollection rc, String path) throws Exception
{
StringBuffer buffer = new StringBuffer();
String line = null;
BufferedReader br = new BufferedReader(new InputStreamReader(rc.addPath(path).getURL().openStream()));
while((line=br.readLine())!=null)
buffer.append(line);
br.close();
return buffer.toString();
}
}