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(); } }