common-scope/src/test/java/org/gcube/common/scope/ConfigurationTest.java

52 lines
1.1 KiB
Java

package org.gcube.common.scope;
import static org.junit.Assert.*;
import java.net.URL;
import java.net.URLClassLoader;
import org.gcube.common.scope.api.ScopeProvider;
import org.junit.After;
import org.junit.Test;
public class ConfigurationTest {
private ClassLoader loader = Thread.currentThread().getContextClassLoader();
@Test
public void alternativeProvidersCanBeConfigured() {
addJarToClasspath("alternativeprovider.jar");
assertEquals("AlternativeScopeProvider",ScopeProvider.instance.getClass().getSimpleName());
}
@Test
public void multipleAlternativeProvidersCannotBeConfigured() {
try {
addJarToClasspath("multiplealternativeproviders.jar");
ScopeProvider.instance.set("shouldfail");
fail();
}
catch(Error e) {}
}
private void addJarToClasspath(String jar) {
URL jarURL = loader.getResource(jar);
URLClassLoader urlClassLoader
= new URLClassLoader(new URL[]{jarURL},loader);
Thread.currentThread().setContextClassLoader(urlClassLoader);
}
@After
public void teardown() {
Thread.currentThread().setContextClassLoader(loader);
}
}