52 lines
1.1 KiB
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);
|
|
}
|
|
}
|