package test.container; import static junit.framework.Assert.assertEquals; import static junit.framework.Assert.assertTrue; import java.io.ByteArrayInputStream; import java.util.Arrays; import java.util.List; import org.gcube.smartgears.configuration.Mode; import org.gcube.smartgears.configuration.application.ApplicationConfiguration; import org.gcube.smartgears.configuration.application.DefaultApplicationConfiguration; import org.gcube.smartgears.configuration.container.ContainerConfiguration; import org.gcube.smartgears.configuration.container.ContainerConfigurationBinder; import org.gcube.smartgears.configuration.container.Site; import org.gcube.smartgears.persistence.DefaultPersistence; import org.junit.Test; public class ConfigurationTest { @Test public void containerConfigurationBinds() throws Exception { String appXml = "" + "name" + "class" + "version" + "desc" + "" + ""; String xml = "" + "localhost" + "8080" + "8484" + "gcube" + "true " +"token1" + "token2" + "" + appXml + "" + "it" + "rome" + "41.9000" + "12.5000" + "" + "" + "" + "30" + ""; ContainerConfigurationBinder binder = new ContainerConfigurationBinder(); ContainerConfiguration bound = binder.bind(new ByteArrayInputStream(xml.getBytes())); bound.validate(); List scopes = bound.startTokens(); assertTrue(scopes.contains("token1")); assertTrue(scopes.contains("token2")); assertEquals(sampleContainerConfiguration(), bound); } private ContainerConfiguration sampleContainerConfiguration() { return new ContainerConfiguration().mode(Mode.offline).hostname("localhost").port(8080).securePort(8484).infrastructure("gcube") .startTokens(Arrays.asList("token1", "token2")) .site(new Site().country("it").location("rome").latitude("41.9000").longitude("12.5000")) .property("prop1", "val1").property("prop2", "val2").publicationFrequency(30) .app(sampleAppConfiguration()).authorizeChildrenContext(true) .persistence(new DefaultPersistence("target")); } private ApplicationConfiguration sampleAppConfiguration() { return new DefaultApplicationConfiguration().mode(Mode.offline).name("name").serviceClass("class") .version("version").description("desc").persistence(new DefaultPersistence("target")); } }