package com.vladmihalcea.flexypool.util;
import org.junit.Test;
import java.io.IOException;
import static org.junit.Assert.*;
/**
* ClassLoaderUtilsTest - ClassLoaderUtils Test
*
* @author Vlad Mihalcea
*/
public class ClassLoaderUtilsTest extends AbstractUtilsTest<ClassLoaderUtils> {
@Test
public void testGetClassLoader() {
ClassLoader classLoader = ClassLoaderUtils.getClassLoader();
assertSame(Thread.currentThread().getContextClassLoader(), classLoader);
try {
Thread.currentThread().setContextClassLoader(null);
assertSame(ClassLoaderUtils.class.getClassLoader(), ClassLoaderUtils.getClassLoader());
} finally {
Thread.currentThread().setContextClassLoader(classLoader);
}
}
@Test
public void testLoadClass() {
try {
ClassLoaderUtils.loadClass(ClassLoaderUtilsTest.class.getName());
} catch (ClassNotFoundException e) {
fail(e.getMessage());
}
try {
ClassLoaderUtils.loadClass("org.abc.Def");
fail("Should throw ClassNotFoundException!");
} catch (ClassNotFoundException expected) {
}
}
@Test
public void testFindClass() {
assertTrue(ClassLoaderUtils.findClass(ClassLoaderUtilsTest.class.getName()));
assertFalse(ClassLoaderUtils.findClass("org.abc.Def"));
}
@Test
public void testGetResource() {
assertNotNull(ClassLoaderUtils.getResource("META-INF/services/com.vladmihalcea.flexypool.metric.MetricsFactoryService"));
assertNull(ClassLoaderUtils.getResource("META-INF/no.file"));
}
@Test
public void testGetResourceAsStream() {
try {
ClassLoaderUtils.getResourceAsStream("META-INF/services/com.vladmihalcea.flexypool.metric.MetricsFactoryService").close();
} catch (IOException e) {
fail(e.getMessage());
}
}
@Override
protected Class<ClassLoaderUtils> getUtilsClass() {
return ClassLoaderUtils.class;
}
}