blob: 90cc5f1bfe8b7396029a62f2d815a4e8e7c46b9e [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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 com.opensymphony.xwork2.util;
import junit.framework.TestCase;
import java.io.IOException;
import java.net.URL;
import java.util.Arrays;
import java.util.Enumeration;
import java.util.Iterator;
public class ClassLoaderUtilTest extends TestCase {
public void testGetResources() throws IOException {
Iterator<URL> i = ClassLoaderUtil.getResources("xwork-sample.xml", ClassLoaderUtilTest.class, false);
assertNotNull(i);
assertTrue(i.hasNext());
URL url = i.next();
assertTrue(url.toString().endsWith("xwork-sample.xml"));
assertTrue(!i.hasNext());
}
public void testGetResources_Multiple() throws IOException {
Iterator<URL> i = ClassLoaderUtil.getResources("struts-2.0.dtd", ClassLoaderUtilTest.class, false);
assertNotNull(i);
assertTrue(i.hasNext());
URL url = i.next();
assertTrue(url.toString().endsWith("struts-2.0.dtd"));
url = i.next();
assertTrue(url.toString().endsWith("struts-2.0.dtd"));
assertTrue(!i.hasNext());
}
public void testGetResources_Aggregate() throws IOException {
Iterator<URL> i = ClassLoaderUtil.getResources("struts-2.0.dtd", ClassLoaderUtilTest.class, true);
assertNotNull(i);
assertTrue(i.hasNext());
URL url = i.next();
assertTrue(url.toString().endsWith("struts-2.0.dtd"));
url = i.next();
assertTrue(url.toString().endsWith("struts-2.0.dtd"));
assertTrue(!i.hasNext());
}
public void testGetResources_None() throws IOException {
Iterator<URL> i = ClassLoaderUtil.getResources("asdfasdf.html", ClassLoaderUtilTest.class, false);
assertNotNull(i);
assertTrue(!i.hasNext());
}
public void testGetResource() {
URL url = ClassLoaderUtil.getResource("xwork-sample.xml", ClassLoaderUtilTest.class);
assertNotNull(url);
assertTrue(url.toString().endsWith("xwork-sample.xml"));
}
public void testGetResource_None() {
URL url = ClassLoaderUtil.getResource("asf.xml", ClassLoaderUtilTest.class);
assertNull(url);
}
public void testAggregateIterator() {
ClassLoaderUtil.AggregateIterator<String> aggr = new ClassLoaderUtil.AggregateIterator<>();
Enumeration<String> en1 = new Enumeration<String>() {
private Iterator<String> itt = Arrays.asList("str1", "str1", "str3", "str1").iterator();
public boolean hasMoreElements() {
return itt.hasNext();
}
public String nextElement() {
return itt.next();
}
};
Enumeration<String> en2 = new Enumeration<String>() {
private Iterator<String> itt = Arrays.asList("str4", "str5").iterator();
public boolean hasMoreElements() {
return itt.hasNext();
}
public String nextElement() {
return itt.next();
}
};
aggr.addEnumeration(en1);
aggr.addEnumeration(en2);
assertTrue(aggr.hasNext());
assertEquals("str1", aggr.next());
assertTrue(aggr.hasNext());
assertEquals("str3", aggr.next());
assertTrue(aggr.hasNext());
assertEquals("str4", aggr.next());
assertTrue(aggr.hasNext());
assertEquals("str5", aggr.next());
assertFalse(aggr.hasNext());
}
}