79 lines
2.0 KiB
Java
79 lines
2.0 KiB
Java
package org.gcube.common.scope;
|
|
|
|
import static org.junit.Assert.*;
|
|
|
|
import java.io.StringReader;
|
|
import java.io.StringWriter;
|
|
|
|
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 {
|
|
|
|
|
|
|
|
@Test
|
|
public void serviceMapsBindCorrectly() throws Exception {
|
|
|
|
String map =
|
|
"<service-map scope='scope' version='1.0'>"
|
|
+ "<services>"
|
|
+ "<service name='service1' endpoint='http://acme.org:8000/service1' />"
|
|
+ "<service name='service2' endpoint='http://acme2.org:8000/service2' />"
|
|
+ "</services>"
|
|
+ "</service-map>";
|
|
|
|
JAXBContext context = JAXBContext.newInstance(DefaultServiceMap.class);
|
|
|
|
DefaultServiceMap serviceMap = (DefaultServiceMap) context
|
|
.createUnmarshaller().unmarshal(new StringReader(map));
|
|
|
|
assertEquals("scope", serviceMap.scope());
|
|
|
|
assertEquals("1.0", serviceMap.version());
|
|
|
|
assertEquals("http://acme.org:8000/service1", serviceMap.endpoint("service1"));
|
|
|
|
assertEquals("http://acme2.org:8000/service2", serviceMap.endpoint("service2"));
|
|
|
|
StringWriter sw = new StringWriter();
|
|
context.createMarshaller().marshal(serviceMap, sw);
|
|
|
|
DefaultServiceMap serviceMapCopy = (DefaultServiceMap) context
|
|
.createUnmarshaller().unmarshal(new StringReader(sw.toString()));
|
|
assertEquals(serviceMapCopy, serviceMap);
|
|
|
|
}
|
|
|
|
@Test
|
|
public void serviceMapsDiscoveredCorrectly() throws Exception {
|
|
|
|
ScopeProvider.instance.set("/infra/vo");
|
|
|
|
assertNotNull(ServiceMap.instance.endpoint("service1"));
|
|
|
|
assertEquals("2.3",ServiceMap.instance.version());
|
|
|
|
}
|
|
|
|
@Test
|
|
public void serviceMapsCanBeLookedupInVREScope() throws Exception {
|
|
|
|
ScopeProvider.instance.set("/infra/vo/vre");
|
|
|
|
assertNotNull(ServiceMap.instance.endpoint("service1"));
|
|
|
|
}
|
|
|
|
@After
|
|
public void cleanup() {
|
|
ScopeProvider.instance.reset();
|
|
}
|
|
|
|
}
|