package net.bytebuddy.dynamic.loading;
import net.bytebuddy.test.utility.IntegrationRule;
import net.bytebuddy.test.utility.ObjectPropertyAssertion;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.MethodRule;
import java.net.URL;
import java.util.*;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
public class ByteArrayClassLoaderChildFirstPrependingEnumerationTest {
@Rule
public MethodRule integrationRule = new IntegrationRule();
private URL first, second, third;
@Before
public void setUp() throws Exception {
first = new URL("file://foo");
second = new URL("file://bar");
third = new URL("file://qux");
}
@Test
@IntegrationRule.Enforce
public void testPrepending() throws Exception {
Vector<URL> vector = new Vector<URL>();
vector.add(second);
vector.add(third);
vector.add(first);
Enumeration<URL> enumeration = new ByteArrayClassLoader.ChildFirst.PrependingEnumeration(first, vector.elements());
assertThat(enumeration.hasMoreElements(), is(true));
assertThat(enumeration.nextElement(), is(first));
assertThat(enumeration.hasMoreElements(), is(true));
assertThat(enumeration.nextElement(), is(second));
assertThat(enumeration.hasMoreElements(), is(true));
assertThat(enumeration.nextElement(), is(third));
assertThat(enumeration.hasMoreElements(), is(false));
}
@Test(expected = NoSuchElementException.class)
public void testNextElementThrowsException() throws Exception {
Vector<URL> vector = new Vector<URL>();
vector.add(second);
vector.add(third);
vector.add(first);
Enumeration<URL> enumeration = new ByteArrayClassLoader.ChildFirst.PrependingEnumeration(first, vector.elements());
enumeration.nextElement();
enumeration.nextElement();
enumeration.nextElement();
enumeration.nextElement();
}
}