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