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

60 lines
1.7 KiB
Java

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 = "<service-map scope='scope'>" + "<services>"
+ "<service name='service1'>"
+ "<endpoint>http://acme.org:8000/service1</endpoint>"
+ "<endpoint>http://acme2.org:8000/service1</endpoint>"
+ "</service>" + "<service name='service2'>"
+ "<endpoint>http://acme3.org:8000/service2</endpoint>"
+ "<endpoint>http://acme4.org:8000/service2</endpoint>"
+ "</service>" + "</services>" + "</service-map>";
@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<String> 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();
}
}