package pssplugin;
import static org.junit.Assert.assertEquals;
import java.io.FileNotFoundException;
import java.net.MalformedURLException;
import java.util.ArrayList;
import java.util.HashMap;
import javax.xml.bind.JAXBException;
import org.junit.Test;
import org.visico.neighborhoodpss.domain.project.ProjectDTO;
import org.visico.neighborhoodpss.domain.project.ScenarioDTO;
import org.visico.neighborhoodpss.plugin.IndicatorManager;
import org.visico.neighborhoodpss.plugin.IndicatorPlugin;
import org.visico.neighborhoodpss.plugin.domain.Plugin;
public class InidcatorManagerTest {
/*
public void createXML() throws JAXBException
{
IndicatorPluginInfo info = new IndicatorPluginInfo();
info.setAuthor("Timo");
info.setClassName("Test");
info.setJar("Test");
JAXBContext context = JAXBContext.newInstance(IndicatorPluginInfo.class);
Marshaller m = context.createMarshaller();
m.marshal(info, new File("test.xml"));
}*/
@Test
public void initIndicatorByFileName() throws MalformedURLException, ClassNotFoundException, InstantiationException, IllegalAccessException, JAXBException, FileNotFoundException
{
ProjectDTO project = new ProjectDTO();
IndicatorManager manager = new IndicatorManager(project);
manager.initIndicatorByFileName("src/test/resources/testindicator1.xml", "src/test/resources/", ClassLoader.getSystemClassLoader());
HashMap<String, IndicatorPlugin> indicators = manager.getPlugins();
ScenarioDTO scenario = new ScenarioDTO();
for (String key : indicators.keySet())
{
System.out.println(key);
indicators.get(key).calculate(scenario);
}
}
@Test
public void initIndicatorByName() throws MalformedURLException, ClassNotFoundException, InstantiationException, IllegalAccessException, JAXBException, FileNotFoundException
{
ProjectDTO project = new ProjectDTO();
IndicatorManager manager = new IndicatorManager(project);
manager.initIndicatorByIndicatorName("Test Indicator 1", "src/test/resources/", ClassLoader.getSystemClassLoader());
HashMap<String, IndicatorPlugin> indicators = manager.getPlugins();
ScenarioDTO scenario = new ScenarioDTO();
for (String key : indicators.keySet())
{
System.out.println(key);
indicators.get(key).calculate(scenario);
}
}
@Test
public void getIndicatorList()
{
ProjectDTO project = new ProjectDTO();
IndicatorManager manager = new IndicatorManager(project);
ArrayList<Plugin> indicators = manager.availableIndicators("src/test/resources/");
assertEquals(indicators.get(0).getName(), "Test Indicator 1");
}
@Test
public void additionalDataBuilding()
{
ProjectDTO project = new ProjectDTO();
IndicatorManager manager = new IndicatorManager(project);
ArrayList<Plugin> indicators = manager.availableIndicators("src/test/resources/");
Plugin info = indicators.get(0);
assertEquals(info.getData().getBuildingProperty().get(0).getName(), "Condition");
}
}