blob: 93029ddc0caf8fd22e71e66b4a3b7fef59e9c208 [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 org.apache.hadoop.gateway.filter;
import org.junit.Test;
import java.util.Arrays;
import java.util.Collections;
import java.util.Enumeration;
import java.util.NoSuchElementException;
import static junit.framework.TestCase.fail;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
public class CompositeEnumerationTest {
@Test
public void testBasics() {
String[] a = new String[]{ "1", "2" };
Enumeration<String> ea = Collections.enumeration( Arrays.asList( a ) );
String[] b = new String[]{ "3", "4" };
Enumeration<String> eb = Collections.enumeration( Arrays.asList( b ) );
CompositeEnumeration<String> ce = new CompositeEnumeration<String>( ea, eb );
assertThat( ce.nextElement(), is( "1" ) );
assertThat( ce.nextElement(), is( "2" ) );
assertThat( ce.nextElement(), is( "3" ) );
assertThat( ce.nextElement(), is( "4" ) );
assertThat( ce.hasMoreElements(), is( false ) );
}
@Test
public void testSingleValues() {
String[] a = new String[]{ "1" };
Enumeration<String> ea = Collections.enumeration( Arrays.asList( a ) );
String[] b = new String[]{ "2" };
Enumeration<String> eb = Collections.enumeration( Arrays.asList( b ) );
CompositeEnumeration<String> ce = new CompositeEnumeration<String>( ea, eb );
assertThat( ce.nextElement(), is( "1" ) );
assertThat( ce.nextElement(), is( "2" ) );
assertThat( ce.hasMoreElements(), is( false ) );
}
@Test
public void testEmptyEnumerations() {
String[] a = new String[]{ "1", "2" };
String[] b = new String[]{ "3", "4" };
String[] c = new String[]{};
Enumeration<String> e1 = Collections.enumeration( Arrays.asList( a ) );
Enumeration<String> e2 = Collections.enumeration( Arrays.asList( c ) );
CompositeEnumeration<String> ce = new CompositeEnumeration<String>( e1, e2 );
assertThat( ce.nextElement(), is( "1" ) );
assertThat( ce.nextElement(), is( "2" ) );
assertThat( ce.hasMoreElements(), is( false ) );
e1 = Collections.enumeration( Arrays.asList( c ) );
e2 = Collections.enumeration( Arrays.asList( a ) );
ce = new CompositeEnumeration<String>( e1, e2 );
assertThat( ce.nextElement(), is( "1" ) );
assertThat( ce.nextElement(), is( "2" ) );
assertThat( ce.hasMoreElements(), is( false ) );
e1 = Collections.enumeration( Arrays.asList( c ) );
e2 = Collections.enumeration( Arrays.asList( c ) );
ce = new CompositeEnumeration<String>( e1, e2 );
assertThat( ce.hasMoreElements(), is( false ) );
}
@Test
public void testEmpty() {
CompositeEnumeration<String> ce = new CompositeEnumeration<String>();
assertThat( ce.hasMoreElements(), is( false ) );
try {
ce.nextElement();
fail( "Should have throws NoSuchElementExcpetion" );
} catch( NoSuchElementException e ) {
// Expected.
}
}
@Test
public void testNulls() {
try {
CompositeEnumeration<String> ce = new CompositeEnumeration<String>( null );
fail( "Expected IllegalArgumentException" );
} catch( IllegalArgumentException e ) {
// Expected.
}
}
}