package test.application;
import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertNotNull;
import java.io.ByteArrayInputStream;
import org.gcube.smartgears.configuration.application.ApplicationConfiguration;
import org.gcube.smartgears.configuration.application.ApplicationConfigurationBinder;
import org.gcube.smartgears.configuration.application.ApplicationExtensions;
import org.gcube.smartgears.configuration.application.DefaultApplicationConfiguration;
import org.gcube.smartgears.configuration.application.Include;
import org.gcube.smartgears.extensions.ApplicationExtension;
import org.gcube.smartgears.persistence.LocalPersistence;
import org.junit.Test;
public class ConfigurationTest {
@Test
public void configurationBinds() throws Exception {
String xml = "" +
"name" +
"class" +
"version" +
"desc" +
"start/scope"+
"another/start/scope"+
"/pathBis" +
"" +
"";
ApplicationConfigurationBinder binder = new ApplicationConfigurationBinder();
ApplicationConfiguration bound = binder.bind(new ByteArrayInputStream(xml.getBytes()));
System.out.println(bound);
assertEquals(sampleConfiguration(),bound);
}
@Test
public void extensionsBind() throws Exception {
String xml = "" +
"" +
"";
ApplicationConfigurationBinder binder = new ApplicationConfigurationBinder();
ApplicationExtensions bound = binder.bindExtensions(new ByteArrayInputStream(xml.getBytes()));
assertNotNull(bound.extensions());
assertEquals(1,bound.extensions().size());
ApplicationExtension ext = bound.extensions().get(0);
assertEquals("custom",ext.name());
assertEquals("custom",ext.mapping());
}
/*@Test
public void configurationsMerge() throws Exception {
ApplicationConfiguration original = sampleConfiguration();
ApplicationConfiguration one = sampleConfiguration();
ApplicationConfiguration two = new DefaultApplicationConfiguration();
two.mode(Mode.online);
two.persistence(new DefaultPersistence(new File(".").getAbsolutePath()));
two.startScopes("yet/another/one");
one.merge(two);
assertEquals(one.mode(), two.mode());
assertEquals(one.name(), original.name());
assertEquals(one.persistence(), two.persistence());
Set merged = new HashSet<>(original.startScopes());
merged.addAll(two.startScopes());
assertEquals(merged,one.startScopes());
}*/
//helpers
private ApplicationConfiguration sampleConfiguration() {
return new DefaultApplicationConfiguration()
.context("ctx")
.name("name")
.serviceClass("class")
.includes(new Include("/pathBis"))
.version("version")
.description("desc")
.persistence(new LocalPersistence("target"));
}
}