package org.gcube.common.scope;
import static org.junit.Assert.*;
import java.io.StringReader;
import java.util.Arrays;
import java.util.List;
import javax.xml.bind.JAXBContext;
import org.gcube.common.scope.api.ScopeProvider;
import org.gcube.common.scope.api.ServiceMap;
import org.gcube.common.scope.impl.DefaultServiceMap;
import org.junit.After;
import org.junit.Test;
public class ServiceMapTest {
private static String map = "" + ""
+ ""
+ "http://acme.org:8000/service1"
+ "http://acme2.org:8000/service1"
+ "" + ""
+ "http://acme3.org:8000/service2"
+ "http://acme4.org:8000/service2"
+ "" + "" + "";
@Test
public void serviceMapsBindCorrectly() throws Exception {
JAXBContext context = JAXBContext.newInstance(DefaultServiceMap.class);
DefaultServiceMap serviceMap = (DefaultServiceMap) context
.createUnmarshaller().unmarshal(new StringReader(map));
assertEquals("scope", serviceMap.scope());
List expected = Arrays.asList("http://acme.org:8000/service1","http://acme2.org:8000/service1");
assertEquals(expected, serviceMap.endpoint("service1"));
expected = Arrays.asList("http://acme3.org:8000/service2","http://acme4.org:8000/service2");
assertEquals(expected, serviceMap.endpoint("service2"));
}
@Test
public void serviceMapsDiscoveredCorrectly() throws Exception {
ScopeProvider.instance.set("scope");
assertNotNull(ServiceMap.instance.endpoint("service1"));
}
@After
public void cleanup() {
ScopeProvider.instance.reset();
}
}