/*
* Copyright 2001-2008 Geert Bevin <gbevin[remove] at uwyn dot com>
* Licensed under the Apache License, Version 2.0 (the "License")
* $Id: TestXml2Site.java 3918 2008-04-14 17:35:35Z gbevin $
*/
package com.uwyn.rife.engine;
import com.uwyn.rife.engine.exceptions.*;
import com.uwyn.rife.database.Datasources;
import com.uwyn.rife.rep.Rep;
import com.uwyn.rife.resources.ResourceFinderClasspath;
import com.uwyn.rife.template.Template;
import com.uwyn.rife.template.TemplateFactory;
import java.util.Collection;
import junit.framework.TestCase;
public class TestXml2Site extends TestCase
{
public TestXml2Site(String name)
{
super(name);
}
public void testParser()
{
ResourceFinderClasspath resourcefinder = ResourceFinderClasspath.getInstance();
SiteBuilder builder = new SiteBuilder("xml/test_xml2site.xml", resourcefinder);
Site site = builder.getSite();
assertEquals(site.getUrls().size(), 6);
assertEquals(site.getIds().size(), 9);
assertEquals("com.uwyn.rife.engine.testelements.engine.Simple", site.resolveUrl("/test/element1", null).getImplementation());
assertNull(site.resolveUrl("/test/element1/path/info", null));
assertNull(site.resolveUrl("/test/element1_notthere", null));
assertEquals("com.uwyn.rife.engine.testelements.submission.Normal", site.searchFallback("").getImplementation());
assertEquals("com.uwyn.rife.engine.testelements.submission.Normal", site.searchFallback("/hskjhjdz").getImplementation());
assertEquals("com.uwyn.rife.engine.testelements.outputs.Normal", site.searchFallback("/subsite").getImplementation());
assertEquals("com.uwyn.rife.engine.testelements.outputs.Normal", site.searchFallback("/subsitedfzefze").getImplementation());
assertEquals("com.uwyn.rife.engine.testelements.outputs.Normal", site.searchFallback("/subsite/kjdkfj").getImplementation());
Collection<String> global_exits = null;
Collection<String> global_vars = null;
ElementInfo elementinfo1 = site.resolveUrl("/test/element1", null);
assertNotNull(elementinfo1);
assertSame(site.resolveId(".ELEMENT1"), elementinfo1);
assertEquals(elementinfo1.getImplementation(), com.uwyn.rife.engine.testelements.engine.Simple.class.getName());
assertTrue(elementinfo1.hasGlobalExits());
global_exits = elementinfo1.getGlobalExitNames();
assertNotNull(global_exits);
assertEquals(global_exits.size(), 2);
assertTrue(global_exits.contains("globalexit1"));
assertTrue(global_exits.contains("globalexit2"));
assertTrue(elementinfo1.hasGlobalVars());
global_vars = elementinfo1.getGlobalVarNames();
assertNotNull(global_vars);
assertEquals(global_vars.size(), 8);
assertTrue(global_vars.contains("globalvar1"));
assertTrue(global_vars.contains("globalvar2"));
assertTrue(global_vars.contains("onemoreprefixgroup_double"));
assertTrue(global_vars.contains("onemoreprefixgroup_long"));
assertTrue(global_vars.contains("onemoreprefixgroup_shortObject"));
assertTrue(global_vars.contains("double"));
assertTrue(global_vars.contains("long"));
assertTrue(global_vars.contains("shortObject"));
assertEquals(elementinfo1.getNamedGlobalBeanNames().size(), 1);
assertEquals(elementinfo1.getNamedGlobalBeanInfo("globalbean1").getClassname(), "com.uwyn.rife.engine.testelements.submission.BeanImpl");
assertEquals(elementinfo1.getNamedGlobalBeanInfo("globalbean1").getPrefix(), "onemoreprefixgroup_");
assertEquals(elementinfo1.getNamedGlobalBeanInfo("globalbean1").getGroupName(), "anothergroup");
assertNull(elementinfo1.getInheritanceStack());
assertEquals(11+Rep.getProperties().size(), elementinfo1.getPropertyNames().size());
assertEquals("elementpropval", elementinfo1.getProperty("prop1"));
assertTrue(elementinfo1.getProperty("prop2") instanceof Template);
assertEquals(((Template)elementinfo1.getProperty("prop2")).getContent(), TemplateFactory.ENGINEHTML.get("unsetvalues_output_in").getContent());
assertSame(Datasources.getRepInstance().getDatasource("purgingunittestspgsql"), elementinfo1.getProperty("prop6"));
assertSame(Datasources.getRepInstance().getDatasource("sessiondurationunittestspgsql"), elementinfo1.getProperty("prop7"));
ElementInfo elementinfo2 = site.resolveUrl("/test/element2", null);
assertNotNull(elementinfo2);
assertSame(site.resolveId(".ELEMENT2"), elementinfo2);
assertEquals(elementinfo2.getImplementation(), com.uwyn.rife.engine.testelements.outputs.Normal.class.getName());
assertTrue(elementinfo2.hasGlobalExits());
global_exits = elementinfo2.getGlobalExitNames();
assertNotNull(global_exits);
assertEquals(global_exits.size(), 2);
assertTrue(global_exits.contains("globalexit1"));
assertTrue(global_exits.contains("globalexit2"));
assertTrue(elementinfo2.hasGlobalVars());
global_vars = elementinfo2.getGlobalVarNames();
assertNotNull(global_vars);
assertEquals(global_vars.size(), 8);
assertTrue(global_vars.contains("globalvar1"));
assertTrue(global_vars.contains("globalvar2"));
assertTrue(global_vars.contains("onemoreprefixgroup_double"));
assertTrue(global_vars.contains("onemoreprefixgroup_long"));
assertTrue(global_vars.contains("onemoreprefixgroup_shortObject"));
assertTrue(global_vars.contains("double"));
assertTrue(global_vars.contains("long"));
assertTrue(global_vars.contains("shortObject"));
assertEquals(elementinfo2.getNamedGlobalBeanNames().size(), 1);
assertEquals(elementinfo2.getNamedGlobalBeanInfo("globalbean1").getClassname(), "com.uwyn.rife.engine.testelements.submission.BeanImpl");
assertEquals(elementinfo2.getNamedGlobalBeanInfo("globalbean1").getPrefix(), "onemoreprefixgroup_");
assertEquals(elementinfo2.getNamedGlobalBeanInfo("globalbean1").getGroupName(), "anothergroup");
assertNotNull(elementinfo2.getInheritanceStack());
assertEquals(2, elementinfo2.getInheritanceStack().size());
assertEquals(elementinfo2.getInheritanceStack().get(0).getImplementation(), com.uwyn.rife.engine.testelements.outputs.Normal.class.getName());
assertEquals(elementinfo2.getInheritanceStack().get(1).getImplementation(), com.uwyn.rife.engine.testelements.inputs.Normal.class.getName());
assertEquals(3+Rep.getProperties().size(), elementinfo2.getPropertyNames().size());
assertEquals("sitepropval", elementinfo2.getProperty("prop1"));
assertTrue(elementinfo2.getProperty("prop2") instanceof Template);
assertEquals(((Template)elementinfo2.getProperty("prop2")).getContent(), TemplateFactory.ENGINEHTML.get("unsetvalues_output_in").getContent());
assertSame(Datasources.getRepInstance().getDatasource("purgingunittestspgsql"), elementinfo2.getProperty("prop6"));
ElementInfo elementinfo3 = site.resolveId(".ELEMENT3");
assertNotNull(elementinfo3);
assertEquals(elementinfo3.getImplementation(), com.uwyn.rife.engine.testelements.inputs.Normal.class.getName());
assertTrue(elementinfo3.hasGlobalExits());
global_exits = elementinfo3.getGlobalExitNames();
assertNotNull(global_exits);
assertEquals(global_exits.size(), 2);
assertTrue(global_exits.contains("globalexit1"));
assertTrue(global_exits.contains("globalexit2"));
assertTrue(elementinfo3.hasGlobalVars());
global_vars = elementinfo3.getGlobalVarNames();
assertNotNull(global_vars);
assertEquals(global_vars.size(), 8);
assertTrue(global_vars.contains("globalvar1"));
assertTrue(global_vars.contains("globalvar2"));
assertTrue(global_vars.contains("onemoreprefixgroup_double"));
assertTrue(global_vars.contains("onemoreprefixgroup_long"));
assertTrue(global_vars.contains("onemoreprefixgroup_shortObject"));
assertTrue(global_vars.contains("double"));
assertTrue(global_vars.contains("long"));
assertTrue(global_vars.contains("shortObject"));
assertEquals(elementinfo3.getNamedGlobalBeanNames().size(), 1);
assertEquals(elementinfo3.getNamedGlobalBeanInfo("globalbean1").getClassname(), "com.uwyn.rife.engine.testelements.submission.BeanImpl");
assertEquals(elementinfo3.getNamedGlobalBeanInfo("globalbean1").getPrefix(), "onemoreprefixgroup_");
assertEquals(elementinfo3.getNamedGlobalBeanInfo("globalbean1").getGroupName(), "anothergroup");
assertNull(elementinfo3.getInheritanceStack());
assertEquals(3+Rep.getProperties().size(), elementinfo3.getPropertyNames().size());
assertEquals("sitepropval", elementinfo3.getProperty("prop1"));
assertTrue(elementinfo3.getProperty("prop2") instanceof Template);
assertEquals(((Template)elementinfo3.getProperty("prop2")).getContent(), TemplateFactory.ENGINEHTML.get("unsetvalues_output_in").getContent());
assertSame(Datasources.getRepInstance().getDatasource("purgingunittestspgsql"), elementinfo3.getProperty("prop6"));
ElementInfo elementinfo4 = site.resolveId(".ELEMENT4");
assertNotNull(elementinfo4);
assertEquals(elementinfo4.getImplementation(), com.uwyn.rife.engine.testelements.submission.Normal.class.getName());
assertTrue(elementinfo4.hasGlobalExits());
global_exits = elementinfo4.getGlobalExitNames();
assertNotNull(global_exits);
assertEquals(global_exits.size(), 2);
assertTrue(global_exits.contains("globalexit1"));
assertTrue(global_exits.contains("globalexit2"));
assertTrue(elementinfo4.hasGlobalVars());
global_vars = elementinfo4.getGlobalVarNames();
assertNotNull(global_vars);
assertEquals(global_vars.size(), 8);
assertTrue(global_vars.contains("globalvar1"));
assertTrue(global_vars.contains("globalvar2"));
assertTrue(global_vars.contains("onemoreprefixgroup_double"));
assertTrue(global_vars.contains("onemoreprefixgroup_long"));
assertTrue(global_vars.contains("onemoreprefixgroup_shortObject"));
assertTrue(global_vars.contains("double"));
assertTrue(global_vars.contains("long"));
assertTrue(global_vars.contains("shortObject"));
assertEquals(elementinfo4.getNamedGlobalBeanNames().size(), 1);
assertEquals(elementinfo4.getNamedGlobalBeanInfo("globalbean1").getClassname(), "com.uwyn.rife.engine.testelements.submission.BeanImpl");
assertEquals(elementinfo4.getNamedGlobalBeanInfo("globalbean1").getPrefix(), "onemoreprefixgroup_");
assertEquals(elementinfo4.getNamedGlobalBeanInfo("globalbean1").getGroupName(), "anothergroup");
assertNull(elementinfo4.getInheritanceStack());
assertEquals(3+Rep.getProperties().size(), elementinfo4.getPropertyNames().size());
assertEquals("sitepropval", elementinfo4.getProperty("prop1"));
assertTrue(elementinfo4.getProperty("prop2") instanceof Template);
assertEquals(((Template)elementinfo4.getProperty("prop2")).getContent(), TemplateFactory.ENGINEHTML.get("unsetvalues_output_in").getContent());
assertSame(Datasources.getRepInstance().getDatasource("purgingunittestspgsql"), elementinfo4.getProperty("prop6"));
ElementInfo subsite_elementinfo2 = site.resolveUrl("/subsite/test/element2", null);
assertNotNull(subsite_elementinfo2);
assertSame(site.resolveId(".SUBSITE.ELEMENT2"), subsite_elementinfo2);
assertEquals(subsite_elementinfo2.getImplementation(), com.uwyn.rife.engine.testelements.outputs.Normal.class.getName());
assertTrue(subsite_elementinfo2.hasGlobalExits());
global_exits = subsite_elementinfo2.getGlobalExitNames();
assertNotNull(global_exits);
assertEquals(global_exits.size(), 3);
assertTrue(global_exits.contains("globalexit1"));
assertTrue(global_exits.contains("globalexit2"));
assertTrue(global_exits.contains("globalexit3"));
assertTrue(subsite_elementinfo2.hasGlobalVars());
global_vars = subsite_elementinfo2.getGlobalVarNames();
assertNotNull(global_vars);
assertEquals(global_vars.size(), 9);
assertTrue(global_vars.contains("globalvar1"));
assertTrue(global_vars.contains("globalvar2"));
assertTrue(global_vars.contains("globalvar3"));
assertTrue(global_vars.contains("onemoreprefixgroup_double"));
assertTrue(global_vars.contains("onemoreprefixgroup_long"));
assertTrue(global_vars.contains("onemoreprefixgroup_shortObject"));
assertTrue(global_vars.contains("double"));
assertTrue(global_vars.contains("long"));
assertTrue(global_vars.contains("shortObject"));
assertEquals(subsite_elementinfo2.getNamedGlobalBeanNames().size(), 1);
assertEquals(subsite_elementinfo2.getNamedGlobalBeanInfo("globalbean1").getClassname(), "com.uwyn.rife.engine.testelements.submission.BeanImpl");
assertEquals(subsite_elementinfo2.getNamedGlobalBeanInfo("globalbean1").getPrefix(), "onemoreprefixgroup_");
assertEquals(subsite_elementinfo2.getNamedGlobalBeanInfo("globalbean1").getGroupName(), "anothergroup");
assertNotNull(subsite_elementinfo2.getInheritanceStack());
assertEquals(2, subsite_elementinfo2.getInheritanceStack().size());
assertEquals(subsite_elementinfo2.getInheritanceStack().get(0).getImplementation(), com.uwyn.rife.engine.testelements.outputs.Normal.class.getName());
assertEquals(subsite_elementinfo2.getInheritanceStack().get(1).getImplementation(), com.uwyn.rife.engine.testelements.submission.Normal.class.getName());
assertEquals(6+Rep.getProperties().size(), subsite_elementinfo2.getPropertyNames().size());
assertEquals("elementpropval", subsite_elementinfo2.getProperty("prop1"));
assertTrue(subsite_elementinfo2.getProperty("prop2") instanceof Template);
assertEquals(((Template)subsite_elementinfo2.getProperty("prop2")).getContent(), TemplateFactory.ENGINEHTML.get("noblocks_in").getContent());
assertEquals("the value 3", subsite_elementinfo2.getProperty("prop3"));
assertSame(Datasources.getRepInstance().getDatasource("unittestspgsql"), subsite_elementinfo2.getProperty("prop4"));
assertEquals("unittests\n pgsql", subsite_elementinfo2.getProperty("prop5"));
assertSame(Datasources.getRepInstance().getDatasource("purgingunittestspgsql"), subsite_elementinfo2.getProperty("prop6"));
ElementInfo subsite_elementinfo3 = site.resolveUrl("/subsite/test/element3", null);
assertNotNull(subsite_elementinfo3);
assertSame(site.resolveId(".SUBSITE.ELEMENT3"), subsite_elementinfo3);
assertEquals(subsite_elementinfo3.getImplementation(), com.uwyn.rife.engine.testelements.inputs.Normal.class.getName());
assertTrue(subsite_elementinfo3.hasGlobalExits());
global_exits = subsite_elementinfo3.getGlobalExitNames();
assertNotNull(global_exits);
assertEquals(global_exits.size(), 3);
assertTrue(global_exits.contains("globalexit1"));
assertTrue(global_exits.contains("globalexit2"));
assertTrue(global_exits.contains("globalexit3"));
assertTrue(subsite_elementinfo3.hasGlobalVars());
global_vars = subsite_elementinfo3.getGlobalVarNames();
assertNotNull(global_vars);
assertEquals(global_vars.size(), 9);
assertTrue(global_vars.contains("globalvar1"));
assertTrue(global_vars.contains("globalvar2"));
assertTrue(global_vars.contains("globalvar3"));
assertTrue(global_vars.contains("onemoreprefixgroup_double"));
assertTrue(global_vars.contains("onemoreprefixgroup_long"));
assertTrue(global_vars.contains("onemoreprefixgroup_shortObject"));
assertTrue(global_vars.contains("double"));
assertTrue(global_vars.contains("long"));
assertTrue(global_vars.contains("shortObject"));
assertEquals(subsite_elementinfo3.getNamedGlobalBeanNames().size(), 1);
assertEquals(subsite_elementinfo3.getNamedGlobalBeanInfo("globalbean1").getClassname(), "com.uwyn.rife.engine.testelements.submission.BeanImpl");
assertEquals(subsite_elementinfo3.getNamedGlobalBeanInfo("globalbean1").getPrefix(), "onemoreprefixgroup_");
assertEquals(subsite_elementinfo3.getNamedGlobalBeanInfo("globalbean1").getGroupName(), "anothergroup");
assertNotNull(subsite_elementinfo3.getInheritanceStack());
assertEquals(2, subsite_elementinfo3.getInheritanceStack().size());
assertEquals(subsite_elementinfo3.getInheritanceStack().get(0).getImplementation(), com.uwyn.rife.engine.testelements.inputs.Normal.class.getName());
assertEquals(subsite_elementinfo3.getInheritanceStack().get(1).getImplementation(), com.uwyn.rife.engine.testelements.submission.Normal.class.getName());
assertTrue(subsite_elementinfo3.hasDepartureVars());
assertEquals(1, subsite_elementinfo3.getDepartureVars().size());
assertEquals("globalvar3", subsite_elementinfo3.getDepartureVars().get(0));
assertEquals(6+Rep.getProperties().size(), subsite_elementinfo3.getPropertyNames().size());
assertEquals("subsitepropval", subsite_elementinfo3.getProperty("prop1"));
assertTrue(subsite_elementinfo3.getProperty("prop2") instanceof Template);
assertEquals(((Template)subsite_elementinfo3.getProperty("prop2")).getContent(), TemplateFactory.ENGINEHTML.get("noblocks_in").getContent());
assertEquals("the value 3", subsite_elementinfo3.getProperty("prop3"));
assertSame(Datasources.getRepInstance().getDatasource("unittestspgsql"), subsite_elementinfo3.getProperty("prop4"));
assertEquals("unittests\n pgsql", subsite_elementinfo3.getProperty("prop5"));
assertSame(Datasources.getRepInstance().getDatasource("purgingunittestspgsql"), subsite_elementinfo3.getProperty("prop6"));
ElementInfo elementinfo5 = site.resolveId(".ELEMENT5");
assertNotNull(elementinfo5);
assertEquals(elementinfo5.getImplementation(), com.uwyn.rife.engine.testelements.exits.SimpleSource.class.getName());
assertTrue(elementinfo5.hasGlobalExits());
global_exits = elementinfo5.getGlobalExitNames();
assertNotNull(global_exits);
assertEquals(global_exits.size(), 2);
assertTrue(global_exits.contains("globalexit1"));
assertTrue(global_exits.contains("globalexit2"));
assertTrue(elementinfo5.hasGlobalVars());
global_vars = elementinfo5.getGlobalVarNames();
assertNotNull(global_vars);
assertEquals(global_vars.size(), 8);
assertTrue(global_vars.contains("globalvar1"));
assertTrue(global_vars.contains("globalvar2"));
assertTrue(global_vars.contains("onemoreprefixgroup_double"));
assertTrue(global_vars.contains("onemoreprefixgroup_long"));
assertTrue(global_vars.contains("onemoreprefixgroup_shortObject"));
assertTrue(global_vars.contains("double"));
assertTrue(global_vars.contains("long"));
assertTrue(global_vars.contains("shortObject"));
assertEquals(elementinfo5.getNamedGlobalBeanNames().size(), 1);
assertEquals(elementinfo5.getNamedGlobalBeanInfo("globalbean1").getClassname(), "com.uwyn.rife.engine.testelements.submission.BeanImpl");
assertEquals(elementinfo5.getNamedGlobalBeanInfo("globalbean1").getPrefix(), "onemoreprefixgroup_");
assertEquals(elementinfo5.getNamedGlobalBeanInfo("globalbean1").getGroupName(), "anothergroup");
assertNull(elementinfo5.getInheritanceStack());
assertEquals(3+Rep.getProperties().size(), elementinfo5.getPropertyNames().size());
assertEquals("sitepropval", elementinfo5.getProperty("prop1"));
assertTrue(elementinfo5.getProperty("prop2") instanceof Template);
assertEquals(((Template)elementinfo5.getProperty("prop2")).getContent(), TemplateFactory.ENGINEHTML.get("unsetvalues_output_in").getContent());
assertSame(Datasources.getRepInstance().getDatasource("purgingunittestspgsql"), elementinfo5.getProperty("prop6"));
ElementInfo elementinfo6 = site.resolveUrl("/test/element6", null);
assertNotNull(elementinfo6);
assertSame(site.resolveId(".ELEMENT6"), elementinfo6);
assertEquals(elementinfo6.getImplementation(), com.uwyn.rife.engine.testelements.outputs.Normal.class.getName());
assertTrue(elementinfo6.hasGlobalExits());
global_exits = elementinfo6.getGlobalExitNames();
assertNotNull(global_exits);
assertEquals(global_exits.size(), 2);
assertTrue(global_exits.contains("globalexit1"));
assertTrue(global_exits.contains("globalexit2"));
assertTrue(elementinfo6.hasGlobalVars());
global_vars = elementinfo6.getGlobalVarNames();
assertNotNull(global_vars);
assertEquals(global_vars.size(), 9);
assertTrue(global_vars.contains("globalvar1"));
assertTrue(global_vars.contains("globalvar2"));
assertTrue(global_vars.contains("globalvar4"));
assertTrue(global_vars.contains("onemoreprefixgroup_double"));
assertTrue(global_vars.contains("onemoreprefixgroup_long"));
assertTrue(global_vars.contains("onemoreprefixgroup_shortObject"));
assertTrue(global_vars.contains("double"));
assertTrue(global_vars.contains("long"));
assertTrue(global_vars.contains("shortObject"));
assertEquals(elementinfo6.getNamedGlobalBeanNames().size(), 1);
assertEquals(elementinfo6.getNamedGlobalBeanInfo("globalbean1").getClassname(), "com.uwyn.rife.engine.testelements.submission.BeanImpl");
assertEquals(elementinfo6.getNamedGlobalBeanInfo("globalbean1").getPrefix(), "onemoreprefixgroup_");
assertEquals(elementinfo6.getNamedGlobalBeanInfo("globalbean1").getGroupName(), "anothergroup");
assertNotNull(elementinfo6.getInheritanceStack());
assertEquals(3, elementinfo6.getInheritanceStack().size());
assertEquals(elementinfo6.getInheritanceStack().get(0).getImplementation(), com.uwyn.rife.engine.testelements.outputs.Normal.class.getName());
assertEquals(elementinfo6.getInheritanceStack().get(1).getImplementation(), com.uwyn.rife.engine.testelements.inputs.Normal.class.getName());
assertEquals(elementinfo6.getInheritanceStack().get(2).getImplementation(), com.uwyn.rife.engine.testelements.exits.SimpleSource.class.getName());
assertEquals(3+Rep.getProperties().size(), elementinfo6.getPropertyNames().size());
assertEquals("sitepropval", elementinfo6.getProperty("prop1"));
assertTrue(elementinfo6.getProperty("prop2") instanceof Template);
assertEquals(((Template)elementinfo6.getProperty("prop2")).getContent(), TemplateFactory.ENGINEHTML.get("unsetvalues_output_in").getContent());
assertSame(Datasources.getRepInstance().getDatasource("purgingunittestspgsql"), elementinfo6.getProperty("prop6"));
ElementInfo elementinfo7 = site.resolveUrl("/test/element7", null);
assertNotNull(elementinfo7);
assertSame(site.resolveId(".test_xml2elementinfo3"), elementinfo7);
assertEquals(elementinfo7.getImplementation(), com.uwyn.rife.engine.testelements.inputs.Normal.class.getName());
assertTrue(elementinfo7.hasGlobalExits());
global_exits = elementinfo7.getGlobalExitNames();
assertNotNull(global_exits);
assertEquals(global_exits.size(), 2);
assertTrue(global_exits.contains("globalexit1"));
assertTrue(global_exits.contains("globalexit2"));
assertTrue(elementinfo7.hasGlobalVars());
global_vars = elementinfo7.getGlobalVarNames();
assertNotNull(global_vars);
assertEquals(global_vars.size(), 9);
assertTrue(global_vars.contains("globalvar1"));
assertTrue(global_vars.contains("globalvar2"));
assertTrue(global_vars.contains("globalvar4"));
assertTrue(global_vars.contains("onemoreprefixgroup_double"));
assertTrue(global_vars.contains("onemoreprefixgroup_long"));
assertTrue(global_vars.contains("onemoreprefixgroup_shortObject"));
assertTrue(global_vars.contains("double"));
assertTrue(global_vars.contains("long"));
assertTrue(global_vars.contains("shortObject"));
assertEquals(elementinfo7.getNamedGlobalBeanNames().size(), 1);
assertEquals(elementinfo7.getNamedGlobalBeanInfo("globalbean1").getClassname(), "com.uwyn.rife.engine.testelements.submission.BeanImpl");
assertEquals(elementinfo7.getNamedGlobalBeanInfo("globalbean1").getPrefix(), "onemoreprefixgroup_");
assertEquals(elementinfo7.getNamedGlobalBeanInfo("globalbean1").getGroupName(), "anothergroup");
assertNotNull(elementinfo7.getInheritanceStack());
assertEquals(2, elementinfo7.getInheritanceStack().size());
assertEquals(elementinfo7.getInheritanceStack().get(0).getImplementation(), com.uwyn.rife.engine.testelements.inputs.Normal.class.getName());
assertEquals(elementinfo7.getInheritanceStack().get(1).getImplementation(), com.uwyn.rife.engine.testelements.exits.SimpleSource.class.getName());
assertEquals(3+Rep.getProperties().size(), elementinfo7.getPropertyNames().size());
assertEquals("sitepropval", elementinfo7.getProperty("prop1"));
assertTrue(elementinfo7.getProperty("prop2") instanceof Template);
assertEquals(((Template)elementinfo7.getProperty("prop2")).getContent(), TemplateFactory.ENGINEHTML.get("unsetvalues_output_in").getContent());
assertSame(Datasources.getRepInstance().getDatasource("purgingunittestspgsql"), elementinfo7.getProperty("prop6"));
assertSame(elementinfo1.getFlowLink("exit1").getTarget(), elementinfo2);
assertEquals(elementinfo1.getFlowLink("exit1").isSnapback(), false);
assertNull(elementinfo1.getFlowLink("exit2").getTarget());
assertEquals(elementinfo1.getFlowLink("exit2").isSnapback(), true);
Collection<String> inputs = null;
inputs = elementinfo1.getDataLinkInputs("output1", elementinfo2, false, null);
assertNotNull(inputs);
assertEquals(inputs.size(), 2);
assertTrue(inputs.contains("input1"));
assertTrue(inputs.contains("input2"));
inputs = elementinfo1.getDataLinkInputs("output1", elementinfo3, false, null);
assertNull(inputs);
inputs = elementinfo1.getDataLinkInputs("output1", elementinfo3, true, null);
assertNull(inputs);
inputs = elementinfo1.getDataLinkInputs("output2", elementinfo2, false, null);
assertNull(inputs);
inputs = elementinfo1.getDataLinkInputs("output2", elementinfo3, false, null);
assertNull(inputs);
inputs = elementinfo1.getDataLinkInputs("output2", elementinfo3, true, null);
assertNotNull(inputs);
assertEquals(inputs.size(), 1);
assertTrue(inputs.contains("input2"));
inputs = elementinfo1.getDataLinkInputs("output3", elementinfo2, false, elementinfo1.getFlowLink("exit3"));
assertNotNull(inputs);
assertEquals(inputs.size(), 1);
assertTrue(inputs.contains("input1"));
inputs = elementinfo1.getDataLinkInputs("output3", elementinfo2, false, null);
assertNull(inputs);
inputs = elementinfo1.getDataLinkInputs("output4", elementinfo2, false, elementinfo1.getFlowLink("exit4"));
assertNotNull(inputs);
assertEquals(inputs.size(), 1);
assertTrue(inputs.contains("input1"));
inputs = elementinfo1.getDataLinkInputs("output4", elementinfo2, false, null);
assertNull(inputs);
}
public void testElementsInlinedParser()
{
ResourceFinderClasspath resourcefinder = ResourceFinderClasspath.getInstance();
SiteBuilder builder = new SiteBuilder("xml/test_xml2site_inlinedelements.xml", resourcefinder);
Site site = builder.getSite();
assertEquals(site.getUrls().size(), 6);
assertEquals(site.getIds().size(), 9);
assertEquals("com.uwyn.rife.engine.testelements.engine.Simple", site.resolveUrl("/test/element1", null).getImplementation());
assertNull(site.resolveUrl("/test/element1/path/info", null));
assertNull(site.resolveUrl("/test/element1_notthere", null));
assertEquals("com.uwyn.rife.engine.testelements.submission.Normal", site.searchFallback("").getImplementation());
assertEquals("com.uwyn.rife.engine.testelements.submission.Normal", site.searchFallback("/hskjhjdz").getImplementation());
assertEquals("com.uwyn.rife.engine.testelements.outputs.Normal", site.searchFallback("/subsite").getImplementation());
assertEquals("com.uwyn.rife.engine.testelements.outputs.Normal", site.searchFallback("/subsitedfzefze").getImplementation());
assertEquals("com.uwyn.rife.engine.testelements.outputs.Normal", site.searchFallback("/subsite/kjdkfj").getImplementation());
Collection<String> global_exits = null;
Collection<String> global_vars = null;
ElementInfo elementinfo1 = site.resolveUrl("/test/element1", null);
assertNotNull(elementinfo1);
assertSame(site.resolveId(".ELEMENT1"), elementinfo1);
assertEquals(elementinfo1.getImplementation(), com.uwyn.rife.engine.testelements.engine.Simple.class.getName());
assertTrue(elementinfo1.hasGlobalExits());
global_exits = elementinfo1.getGlobalExitNames();
assertNotNull(global_exits);
assertEquals(global_exits.size(), 2);
assertTrue(global_exits.contains("globalexit1"));
assertTrue(global_exits.contains("globalexit2"));
assertTrue(elementinfo1.hasGlobalVars());
global_vars = elementinfo1.getGlobalVarNames();
assertNotNull(global_vars);
assertEquals(global_vars.size(), 8);
assertTrue(global_vars.contains("globalvar1"));
assertTrue(global_vars.contains("globalvar2"));
assertTrue(global_vars.contains("onemoreprefixgroup_double"));
assertTrue(global_vars.contains("onemoreprefixgroup_long"));
assertTrue(global_vars.contains("onemoreprefixgroup_shortObject"));
assertTrue(global_vars.contains("double"));
assertTrue(global_vars.contains("long"));
assertTrue(global_vars.contains("shortObject"));
assertEquals(elementinfo1.getNamedGlobalBeanNames().size(), 1);
assertEquals(elementinfo1.getNamedGlobalBeanInfo("globalbean1").getClassname(), "com.uwyn.rife.engine.testelements.submission.BeanImpl");
assertEquals(elementinfo1.getNamedGlobalBeanInfo("globalbean1").getPrefix(), "onemoreprefixgroup_");
assertEquals(elementinfo1.getNamedGlobalBeanInfo("globalbean1").getGroupName(), "anothergroup");
assertNull(elementinfo1.getInheritanceStack());
assertEquals(elementinfo1.getPropertyNames().size(), 5+Rep.getProperties().size());
assertTrue(elementinfo1.containsProperty("property1"));
assertTrue(elementinfo1.containsProperty("property2"));
assertTrue(elementinfo1.containsProperty("property3"));
assertTrue(elementinfo1.containsProperty("property4"));
assertEquals("value1", elementinfo1.getProperty("property1"));
assertTrue(elementinfo1.getProperty("property2") instanceof Template);
assertEquals(((Template)elementinfo1.getProperty("property2")).getContent(), TemplateFactory.ENGINEHTML.get("noblocks_in").getContent());
assertEquals("the value 3", elementinfo1.getProperty("property3"));
assertSame(Datasources.getRepInstance().getDatasource("unittestspgsql"), elementinfo1.getProperty("property4"));
assertEquals("unittests\n pgsql", elementinfo1.getProperty("property5"));
ElementInfo elementinfo2 = site.resolveUrl("/test/element2", null);
assertNotNull(elementinfo2);
assertSame(site.resolveId(".ELEMENT2"), elementinfo2);
assertEquals(elementinfo2.getImplementation(), com.uwyn.rife.engine.testelements.outputs.Normal.class.getName());
assertTrue(elementinfo2.hasGlobalExits());
global_exits = elementinfo2.getGlobalExitNames();
assertNotNull(global_exits);
assertEquals(global_exits.size(), 2);
assertTrue(global_exits.contains("globalexit1"));
assertTrue(global_exits.contains("globalexit2"));
assertTrue(elementinfo2.hasGlobalVars());
global_vars = elementinfo2.getGlobalVarNames();
assertNotNull(global_vars);
assertEquals(global_vars.size(), 8);
assertTrue(global_vars.contains("globalvar1"));
assertTrue(global_vars.contains("globalvar2"));
assertTrue(global_vars.contains("onemoreprefixgroup_double"));
assertTrue(global_vars.contains("onemoreprefixgroup_long"));
assertTrue(global_vars.contains("onemoreprefixgroup_shortObject"));
assertTrue(global_vars.contains("double"));
assertTrue(global_vars.contains("long"));
assertTrue(global_vars.contains("shortObject"));
assertEquals(elementinfo2.getNamedGlobalBeanNames().size(), 1);
assertEquals(elementinfo2.getNamedGlobalBeanInfo("globalbean1").getClassname(), "com.uwyn.rife.engine.testelements.submission.BeanImpl");
assertEquals(elementinfo2.getNamedGlobalBeanInfo("globalbean1").getPrefix(), "onemoreprefixgroup_");
assertEquals(elementinfo2.getNamedGlobalBeanInfo("globalbean1").getGroupName(), "anothergroup");
assertNotNull(elementinfo2.getInheritanceStack());
assertEquals(2, elementinfo2.getInheritanceStack().size());
assertEquals(elementinfo2.getInheritanceStack().get(0).getImplementation(), com.uwyn.rife.engine.testelements.outputs.Normal.class.getName());
assertEquals(elementinfo2.getInheritanceStack().get(1).getImplementation(), com.uwyn.rife.engine.testelements.inputs.Normal.class.getName());
assertEquals(0+Rep.getProperties().size(), elementinfo2.getPropertyNames().size());
ElementInfo elementinfo3 = site.resolveId(".ELEMENT3");
assertNotNull(elementinfo3);
assertEquals(elementinfo3.getImplementation(), com.uwyn.rife.engine.testelements.inputs.Normal.class.getName());
assertTrue(elementinfo3.hasGlobalExits());
global_exits = elementinfo3.getGlobalExitNames();
assertNotNull(global_exits);
assertEquals(global_exits.size(), 2);
assertTrue(global_exits.contains("globalexit1"));
assertTrue(global_exits.contains("globalexit2"));
assertTrue(elementinfo3.hasGlobalVars());
global_vars = elementinfo3.getGlobalVarNames();
assertNotNull(global_vars);
assertEquals(global_vars.size(), 8);
assertTrue(global_vars.contains("globalvar1"));
assertTrue(global_vars.contains("globalvar2"));
assertTrue(global_vars.contains("onemoreprefixgroup_double"));
assertTrue(global_vars.contains("onemoreprefixgroup_long"));
assertTrue(global_vars.contains("onemoreprefixgroup_shortObject"));
assertTrue(global_vars.contains("double"));
assertTrue(global_vars.contains("long"));
assertTrue(global_vars.contains("shortObject"));
assertEquals(elementinfo3.getNamedGlobalBeanNames().size(), 1);
assertEquals(elementinfo3.getNamedGlobalBeanInfo("globalbean1").getClassname(), "com.uwyn.rife.engine.testelements.submission.BeanImpl");
assertEquals(elementinfo3.getNamedGlobalBeanInfo("globalbean1").getPrefix(), "onemoreprefixgroup_");
assertEquals(elementinfo3.getNamedGlobalBeanInfo("globalbean1").getGroupName(), "anothergroup");
assertNull(elementinfo3.getInheritanceStack());
assertEquals(0+Rep.getProperties().size(), elementinfo3.getPropertyNames().size());
ElementInfo elementinfo4 = site.resolveId(".ELEMENT4");
assertNotNull(elementinfo4);
assertEquals(elementinfo4.getImplementation(), com.uwyn.rife.engine.testelements.submission.Normal.class.getName());
assertTrue(elementinfo4.hasGlobalExits());
global_exits = elementinfo4.getGlobalExitNames();
assertNotNull(global_exits);
assertEquals(global_exits.size(), 2);
assertTrue(global_exits.contains("globalexit1"));
assertTrue(global_exits.contains("globalexit2"));
assertTrue(elementinfo4.hasGlobalVars());
global_vars = elementinfo4.getGlobalVarNames();
assertNotNull(global_vars);
assertEquals(global_vars.size(), 8);
assertTrue(global_vars.contains("globalvar1"));
assertTrue(global_vars.contains("globalvar2"));
assertTrue(global_vars.contains("onemoreprefixgroup_double"));
assertTrue(global_vars.contains("onemoreprefixgroup_long"));
assertTrue(global_vars.contains("onemoreprefixgroup_shortObject"));
assertTrue(global_vars.contains("double"));
assertTrue(global_vars.contains("long"));
assertTrue(global_vars.contains("shortObject"));
assertEquals(elementinfo4.getNamedGlobalBeanNames().size(), 1);
assertEquals(elementinfo4.getNamedGlobalBeanInfo("globalbean1").getClassname(), "com.uwyn.rife.engine.testelements.submission.BeanImpl");
assertEquals(elementinfo4.getNamedGlobalBeanInfo("globalbean1").getPrefix(), "onemoreprefixgroup_");
assertEquals(elementinfo4.getNamedGlobalBeanInfo("globalbean1").getGroupName(), "anothergroup");
assertNull(elementinfo4.getInheritanceStack());
assertEquals(0+Rep.getProperties().size(), elementinfo4.getPropertyNames().size());
ElementInfo subsite_elementinfo2 = site.resolveUrl("/subsite/test/element2", null);
assertNotNull(subsite_elementinfo2);
assertSame(site.resolveId(".SUBSITE.ELEMENT2"), subsite_elementinfo2);
assertEquals(subsite_elementinfo2.getImplementation(), com.uwyn.rife.engine.testelements.outputs.Normal.class.getName());
assertTrue(subsite_elementinfo2.hasGlobalExits());
global_exits = subsite_elementinfo2.getGlobalExitNames();
assertNotNull(global_exits);
assertEquals(global_exits.size(), 3);
assertTrue(global_exits.contains("globalexit1"));
assertTrue(global_exits.contains("globalexit2"));
assertTrue(global_exits.contains("globalexit3"));
assertTrue(subsite_elementinfo2.hasGlobalVars());
global_vars = subsite_elementinfo2.getGlobalVarNames();
assertNotNull(global_vars);
assertEquals(global_vars.size(), 9);
assertTrue(global_vars.contains("globalvar1"));
assertTrue(global_vars.contains("globalvar2"));
assertTrue(global_vars.contains("globalvar3"));
assertTrue(global_vars.contains("onemoreprefixgroup_double"));
assertTrue(global_vars.contains("onemoreprefixgroup_long"));
assertTrue(global_vars.contains("onemoreprefixgroup_shortObject"));
assertTrue(global_vars.contains("double"));
assertTrue(global_vars.contains("long"));
assertTrue(global_vars.contains("shortObject"));
assertEquals(subsite_elementinfo2.getNamedGlobalBeanNames().size(), 1);
assertEquals(subsite_elementinfo2.getNamedGlobalBeanInfo("globalbean1").getClassname(), "com.uwyn.rife.engine.testelements.submission.BeanImpl");
assertEquals(subsite_elementinfo2.getNamedGlobalBeanInfo("globalbean1").getPrefix(), "onemoreprefixgroup_");
assertEquals(subsite_elementinfo2.getNamedGlobalBeanInfo("globalbean1").getGroupName(), "anothergroup");
assertNotNull(subsite_elementinfo2.getInheritanceStack());
assertEquals(2, subsite_elementinfo2.getInheritanceStack().size());
assertEquals(subsite_elementinfo2.getInheritanceStack().get(0).getImplementation(), com.uwyn.rife.engine.testelements.outputs.Normal.class.getName());
assertEquals(subsite_elementinfo2.getInheritanceStack().get(1).getImplementation(), com.uwyn.rife.engine.testelements.submission.Normal.class.getName());
assertEquals(1+Rep.getProperties().size(), subsite_elementinfo2.getPropertyNames().size());
assertEquals("elementpropval", subsite_elementinfo2.getProperty("prop1"));
ElementInfo subsite_elementinfo3 = site.resolveUrl("/subsite/test/element3", null);
assertNotNull(subsite_elementinfo3);
assertSame(site.resolveId(".SUBSITE.ELEMENT3"), subsite_elementinfo3);
assertEquals(subsite_elementinfo3.getImplementation(), com.uwyn.rife.engine.testelements.inputs.Normal.class.getName());
assertTrue(subsite_elementinfo3.hasGlobalExits());
global_exits = subsite_elementinfo3.getGlobalExitNames();
assertNotNull(global_exits);
assertEquals(global_exits.size(), 3);
assertTrue(global_exits.contains("globalexit1"));
assertTrue(global_exits.contains("globalexit2"));
assertTrue(global_exits.contains("globalexit3"));
assertTrue(subsite_elementinfo3.hasGlobalVars());
global_vars = subsite_elementinfo3.getGlobalVarNames();
assertNotNull(global_vars);
assertEquals(global_vars.size(), 9);
assertTrue(global_vars.contains("globalvar1"));
assertTrue(global_vars.contains("globalvar2"));
assertTrue(global_vars.contains("globalvar3"));
assertTrue(global_vars.contains("onemoreprefixgroup_double"));
assertTrue(global_vars.contains("onemoreprefixgroup_long"));
assertTrue(global_vars.contains("onemoreprefixgroup_shortObject"));
assertTrue(global_vars.contains("double"));
assertTrue(global_vars.contains("long"));
assertTrue(global_vars.contains("shortObject"));
assertEquals(subsite_elementinfo3.getNamedGlobalBeanNames().size(), 1);
assertEquals(subsite_elementinfo3.getNamedGlobalBeanInfo("globalbean1").getClassname(), "com.uwyn.rife.engine.testelements.submission.BeanImpl");
assertEquals(subsite_elementinfo3.getNamedGlobalBeanInfo("globalbean1").getPrefix(), "onemoreprefixgroup_");
assertEquals(subsite_elementinfo3.getNamedGlobalBeanInfo("globalbean1").getGroupName(), "anothergroup");
assertNotNull(subsite_elementinfo3.getInheritanceStack());
assertEquals(2, subsite_elementinfo3.getInheritanceStack().size());
assertEquals(subsite_elementinfo3.getInheritanceStack().get(0).getImplementation(), com.uwyn.rife.engine.testelements.inputs.Normal.class.getName());
assertEquals(subsite_elementinfo3.getInheritanceStack().get(1).getImplementation(), com.uwyn.rife.engine.testelements.submission.Normal.class.getName());
assertTrue(subsite_elementinfo3.hasDepartureVars());
assertEquals(1, subsite_elementinfo3.getDepartureVars().size());
assertEquals("globalvar3", subsite_elementinfo3.getDepartureVars().get(0));
assertEquals(1+Rep.getProperties().size(), subsite_elementinfo3.getPropertyNames().size());
assertEquals("subsitepropval", subsite_elementinfo3.getProperty("prop1"));
ElementInfo elementinfo5 = site.resolveId(".ELEMENT5");
assertNotNull(elementinfo5);
assertEquals(elementinfo5.getImplementation(), com.uwyn.rife.engine.testelements.exits.SimpleSource.class.getName());
assertTrue(elementinfo5.hasGlobalExits());
global_exits = elementinfo5.getGlobalExitNames();
assertNotNull(global_exits);
assertEquals(global_exits.size(), 2);
assertTrue(global_exits.contains("globalexit1"));
assertTrue(global_exits.contains("globalexit2"));
assertTrue(elementinfo5.hasGlobalVars());
global_vars = elementinfo5.getGlobalVarNames();
assertNotNull(global_vars);
assertEquals(global_vars.size(), 8);
assertTrue(global_vars.contains("globalvar1"));
assertTrue(global_vars.contains("globalvar2"));
assertTrue(global_vars.contains("onemoreprefixgroup_double"));
assertTrue(global_vars.contains("onemoreprefixgroup_long"));
assertTrue(global_vars.contains("onemoreprefixgroup_shortObject"));
assertTrue(global_vars.contains("double"));
assertTrue(global_vars.contains("long"));
assertTrue(global_vars.contains("shortObject"));
assertEquals(elementinfo5.getNamedGlobalBeanNames().size(), 1);
assertEquals(elementinfo5.getNamedGlobalBeanInfo("globalbean1").getClassname(), "com.uwyn.rife.engine.testelements.submission.BeanImpl");
assertEquals(elementinfo5.getNamedGlobalBeanInfo("globalbean1").getPrefix(), "onemoreprefixgroup_");
assertEquals(elementinfo5.getNamedGlobalBeanInfo("globalbean1").getGroupName(), "anothergroup");
assertNull(elementinfo5.getInheritanceStack());
assertEquals(0+Rep.getProperties().size(), elementinfo5.getPropertyNames().size());
ElementInfo elementinfo6 = site.resolveUrl("/test/element6", null);
assertNotNull(elementinfo6);
assertSame(site.resolveId(".ELEMENT6"), elementinfo6);
assertEquals(elementinfo6.getImplementation(), com.uwyn.rife.engine.testelements.outputs.Normal.class.getName());
assertTrue(elementinfo6.hasGlobalExits());
global_exits = elementinfo6.getGlobalExitNames();
assertNotNull(global_exits);
assertEquals(global_exits.size(), 2);
assertTrue(global_exits.contains("globalexit1"));
assertTrue(global_exits.contains("globalexit2"));
assertTrue(elementinfo6.hasGlobalVars());
global_vars = elementinfo6.getGlobalVarNames();
assertNotNull(global_vars);
assertEquals(global_vars.size(), 9);
assertTrue(global_vars.contains("globalvar1"));
assertTrue(global_vars.contains("globalvar2"));
assertTrue(global_vars.contains("globalvar4"));
assertTrue(global_vars.contains("onemoreprefixgroup_double"));
assertTrue(global_vars.contains("onemoreprefixgroup_long"));
assertTrue(global_vars.contains("onemoreprefixgroup_shortObject"));
assertTrue(global_vars.contains("double"));
assertTrue(global_vars.contains("long"));
assertTrue(global_vars.contains("shortObject"));
assertEquals(elementinfo6.getNamedGlobalBeanNames().size(), 1);
assertEquals(elementinfo6.getNamedGlobalBeanInfo("globalbean1").getClassname(), "com.uwyn.rife.engine.testelements.submission.BeanImpl");
assertEquals(elementinfo6.getNamedGlobalBeanInfo("globalbean1").getPrefix(), "onemoreprefixgroup_");
assertEquals(elementinfo6.getNamedGlobalBeanInfo("globalbean1").getGroupName(), "anothergroup");
assertNotNull(elementinfo6.getInheritanceStack());
assertEquals(3, elementinfo6.getInheritanceStack().size());
assertEquals(elementinfo6.getInheritanceStack().get(0).getImplementation(), com.uwyn.rife.engine.testelements.outputs.Normal.class.getName());
assertEquals(elementinfo6.getInheritanceStack().get(1).getImplementation(), com.uwyn.rife.engine.testelements.inputs.Normal.class.getName());
assertEquals(elementinfo6.getInheritanceStack().get(2).getImplementation(), com.uwyn.rife.engine.testelements.exits.SimpleSource.class.getName());
assertEquals(0+Rep.getProperties().size(), elementinfo6.getPropertyNames().size());
ElementInfo elementinfo7 = site.resolveUrl("/test/element7", null);
assertNotNull(elementinfo7);
assertSame(site.resolveId(".ELEMENT7"), elementinfo7);
assertEquals(elementinfo7.getImplementation(), com.uwyn.rife.engine.testelements.inputs.Normal.class.getName());
assertTrue(elementinfo7.hasGlobalExits());
global_exits = elementinfo7.getGlobalExitNames();
assertNotNull(global_exits);
assertEquals(global_exits.size(), 2);
assertTrue(global_exits.contains("globalexit1"));
assertTrue(global_exits.contains("globalexit2"));
assertTrue(elementinfo7.hasGlobalVars());
global_vars = elementinfo7.getGlobalVarNames();
assertNotNull(global_vars);
assertEquals(global_vars.size(), 9);
assertTrue(global_vars.contains("globalvar1"));
assertTrue(global_vars.contains("globalvar2"));
assertTrue(global_vars.contains("globalvar4"));
assertTrue(global_vars.contains("onemoreprefixgroup_double"));
assertTrue(global_vars.contains("onemoreprefixgroup_long"));
assertTrue(global_vars.contains("onemoreprefixgroup_shortObject"));
assertTrue(global_vars.contains("double"));
assertTrue(global_vars.contains("long"));
assertTrue(global_vars.contains("shortObject"));
assertEquals(elementinfo7.getNamedGlobalBeanNames().size(), 1);
assertEquals(elementinfo7.getNamedGlobalBeanInfo("globalbean1").getClassname(), "com.uwyn.rife.engine.testelements.submission.BeanImpl");
assertEquals(elementinfo7.getNamedGlobalBeanInfo("globalbean1").getPrefix(), "onemoreprefixgroup_");
assertEquals(elementinfo7.getNamedGlobalBeanInfo("globalbean1").getGroupName(), "anothergroup");
assertNotNull(elementinfo7.getInheritanceStack());
assertEquals(2, elementinfo7.getInheritanceStack().size());
assertEquals(elementinfo7.getInheritanceStack().get(0).getImplementation(), com.uwyn.rife.engine.testelements.inputs.Normal.class.getName());
assertEquals(elementinfo7.getInheritanceStack().get(1).getImplementation(), com.uwyn.rife.engine.testelements.exits.SimpleSource.class.getName());
assertEquals(0+Rep.getProperties().size(), elementinfo7.getPropertyNames().size());
assertSame(elementinfo1.getFlowLink("exit1").getTarget(), elementinfo2);
assertEquals(elementinfo1.getFlowLink("exit1").isSnapback(), false);
assertNull(elementinfo1.getFlowLink("exit2").getTarget());
assertEquals(elementinfo1.getFlowLink("exit2").isSnapback(), true);
Collection<String> inputs = null;
inputs = elementinfo1.getDataLinkInputs("output1", elementinfo2, false, null);
assertNotNull(inputs);
assertEquals(inputs.size(), 2);
assertTrue(inputs.contains("input1"));
assertTrue(inputs.contains("input2"));
inputs = elementinfo1.getDataLinkInputs("output1", elementinfo3, false, null);
assertNull(inputs);
inputs = elementinfo1.getDataLinkInputs("output1", elementinfo3, true, null);
assertNull(inputs);
inputs = elementinfo1.getDataLinkInputs("output2", elementinfo2, false, null);
assertNull(inputs);
inputs = elementinfo1.getDataLinkInputs("output2", elementinfo3, false, null);
assertNull(inputs);
inputs = elementinfo1.getDataLinkInputs("output2", elementinfo3, true, null);
assertNotNull(inputs);
assertEquals(inputs.size(), 1);
assertTrue(inputs.contains("input2"));
}
public void testCircularSubsites()
{
ResourceFinderClasspath resourcefinder = ResourceFinderClasspath.getInstance();
SiteBuilder builder = new SiteBuilder("site/circularsubite_parent.xml", resourcefinder);
try
{
builder.getSite();
fail();
}
catch (ProcessingErrorException e)
{
assertTrue(true);
}
}
public void testGlobalConflictInput()
{
ResourceFinderClasspath resourcefinder = ResourceFinderClasspath.getInstance();
SiteBuilder builder = new SiteBuilder("site/global_conflict_input.xml", resourcefinder);
try
{
builder.getSite();
fail();
}
catch (EngineException e)
{
assertTrue(true);
}
}
public void testGlobalConflictOutput()
{
ResourceFinderClasspath resourcefinder = ResourceFinderClasspath.getInstance();
SiteBuilder builder = new SiteBuilder("site/global_conflict_input.xml", resourcefinder);
try
{
builder.getSite();
fail();
}
catch (EngineException e)
{
assertTrue(true);
}
}
public void testFlawedElementUrl()
{
ResourceFinderClasspath resourcefinder = ResourceFinderClasspath.getInstance();
SiteBuilder builder = new SiteBuilder("site/flawed_element_url.xml", resourcefinder);
try
{
builder.getSite();
fail();
}
catch (ElementUrlInvalidException e)
{
assertEquals(e.getId(), "test_xml2elementinfo1");
assertEquals(e.getUrl(), "/cant/end/with/slash/");
}
}
public void testFlawedElementUrl2()
{
ResourceFinderClasspath resourcefinder = ResourceFinderClasspath.getInstance();
SiteBuilder builder = new SiteBuilder("site/flawed_element_url2.xml", resourcefinder);
try
{
builder.getSite();
fail();
}
catch (ElementUrlInvalidException e)
{
assertEquals(e.getId(), "test_xml2elementinfo1");
assertEquals(e.getUrl(), "");
}
}
public void testFlawedDataLinkDestid()
{
ResourceFinderClasspath resourcefinder = ResourceFinderClasspath.getInstance();
SiteBuilder builder = new SiteBuilder("site/flawed_datalink_destid.xml", resourcefinder);
try
{
builder.getSite();
fail();
}
catch (ElementIdNotFoundInSiteException e)
{
assertEquals(e.getId(), ".ELEMENT32");
assertEquals(e.getSiteId(), ".");
}
}
public void testFlawedDataLinkDestinput()
{
ResourceFinderClasspath resourcefinder = ResourceFinderClasspath.getInstance();
SiteBuilder builder = new SiteBuilder("site/flawed_datalink_destinput.xml", resourcefinder);
try
{
builder.getSite();
fail();
}
catch (OutputUnknownException e)
{
assertEquals(e.getDeclarationName(), "xml/test_xml2elementinfo1.xml");
assertEquals(e.getOutputName(), "Output1");
}
}
public void testFlawedDataLinkSrcoutput()
{
ResourceFinderClasspath resourcefinder = ResourceFinderClasspath.getInstance();
SiteBuilder builder = new SiteBuilder("site/flawed_datalink_srcoutput.xml", resourcefinder);
try
{
builder.getSite();
fail();
}
catch (OutputUnknownException e)
{
assertEquals(e.getDeclarationName(), "xml/test_xml2elementinfo1.xml");
assertEquals(e.getOutputName(), "Output14");
}
}
public void testFlawedDataLinkTargetMissing()
{
ResourceFinderClasspath resourcefinder = ResourceFinderClasspath.getInstance();
SiteBuilder builder = new SiteBuilder("site/flawed_datalink_target_missing.xml", resourcefinder);
try
{
builder.getSite();
fail();
}
catch (DataLinkTargetRequiredException e)
{
assertEquals(e.getSiteDeclarationName(), "site/flawed_datalink_target_missing.xml");
assertEquals(e.getOutputName(), "Output1");
assertEquals(e.getElementId(), "ELEMENT1");
}
}
public void testFlawedDataLinkAmbigousTarget()
{
ResourceFinderClasspath resourcefinder = ResourceFinderClasspath.getInstance();
SiteBuilder builder = new SiteBuilder("site/flawed_datalink_ambigous_target.xml", resourcefinder);
try
{
builder.getSite();
fail();
}
catch (DataLinkAmbiguousTargetException e)
{
assertEquals(e.getSiteDeclarationName(), "site/flawed_datalink_ambigous_target.xml");
assertEquals(e.getOutputName(), "Output1");
assertEquals(e.getElementId(), "ELEMENT1");
}
}
public void testFlawedDataLinkOutputMissing()
{
ResourceFinderClasspath resourcefinder = ResourceFinderClasspath.getInstance();
SiteBuilder builder = new SiteBuilder("site/flawed_datalink_output_missing.xml", resourcefinder);
try
{
builder.getSite();
fail();
}
catch (DataLinkOutputRequiredException e)
{
assertEquals(e.getSiteDeclarationName(), "site/flawed_datalink_output_missing.xml");
assertEquals(e.getElementId(), "ELEMENT1");
}
}
public void testFlawedDataLinkAmbigousOutput()
{
ResourceFinderClasspath resourcefinder = ResourceFinderClasspath.getInstance();
SiteBuilder builder = new SiteBuilder("site/flawed_datalink_ambigous_output.xml", resourcefinder);
try
{
builder.getSite();
fail();
}
catch (DataLinkAmbiguousOutputException e)
{
assertEquals(e.getSiteDeclarationName(), "site/flawed_datalink_ambigous_output.xml");
assertEquals(e.getElementId(), "ELEMENT1");
}
}
public void testFlawedDataLinkInputMissing()
{
ResourceFinderClasspath resourcefinder = ResourceFinderClasspath.getInstance();
SiteBuilder builder = new SiteBuilder("site/flawed_datalink_input_missing.xml", resourcefinder);
try
{
builder.getSite();
fail();
}
catch (DataLinkInputRequiredException e)
{
assertEquals(e.getSiteDeclarationName(), "site/flawed_datalink_input_missing.xml");
assertEquals(e.getElementId(), "ELEMENT1");
assertEquals(e.getDestinationId(), "ELEMENT2");
assertFalse(e.getSnapback());
}
}
public void testFlawedDataLinkAmbigousInput()
{
ResourceFinderClasspath resourcefinder = ResourceFinderClasspath.getInstance();
SiteBuilder builder = new SiteBuilder("site/flawed_datalink_ambigous_input.xml", resourcefinder);
try
{
builder.getSite();
fail();
}
catch (DataLinkAmbiguousInputException e)
{
assertEquals(e.getSiteDeclarationName(), "site/flawed_datalink_ambigous_input.xml");
assertEquals(e.getElementId(), "ELEMENT1");
assertEquals(e.getDestinationId(), null);
assertTrue(e.getSnapback());
}
}
public void testFlawedDataLinkIncompatibleInputOutput()
{
ResourceFinderClasspath resourcefinder = ResourceFinderClasspath.getInstance();
SiteBuilder builder = new SiteBuilder("site/flawed_datalink_incompatible_inputoutput1.xml", resourcefinder);
try
{
builder.getSite();
fail();
}
catch (DataLinkIncompatibleInputOutputException e)
{
assertEquals(e.getSiteDeclarationName(), "site/flawed_datalink_incompatible_inputoutput1.xml");
assertEquals(e.getElementId(), "ELEMENT1");
assertEquals(e.getDestinationId(), null);
assertTrue(e.getSnapback());
}
builder = new SiteBuilder("site/flawed_datalink_incompatible_inputoutput2.xml", resourcefinder);
try
{
builder.getSite();
fail();
}
catch (DataLinkIncompatibleInputOutputException e)
{
assertEquals(e.getSiteDeclarationName(), "site/flawed_datalink_incompatible_inputoutput2.xml");
assertEquals(e.getElementId(), "ELEMENT1");
assertEquals(e.getDestinationId(), null);
assertTrue(e.getSnapback());
}
}
public void testFlawedDataLinkUnknownSrcOutbean()
{
ResourceFinderClasspath resourcefinder = ResourceFinderClasspath.getInstance();
SiteBuilder builder = new SiteBuilder("site/flawed_datalink_unknown_outbean.xml", resourcefinder);
try
{
builder.getSite();
fail();
}
catch (DataLinkUnknownSrcOutbeanException e)
{
assertEquals(e.getSiteDeclarationName(), "site/flawed_datalink_unknown_outbean.xml");
assertEquals(e.getSrcOutbean(), "unknownoutbean1");
assertEquals(e.getElementId(), "ELEMENT1");
assertEquals(e.getDestinationId(), ".ELEMENT2");
assertFalse(e.getSnapback());
}
}
public void testFlawedDataLinkUnknownDestInbean()
{
ResourceFinderClasspath resourcefinder = ResourceFinderClasspath.getInstance();
SiteBuilder builder = new SiteBuilder("site/flawed_datalink_unknown_inbean.xml", resourcefinder);
try
{
builder.getSite();
fail();
}
catch (DataLinkUnknownDestInbeanException e)
{
assertEquals(e.getSiteDeclarationName(), "site/flawed_datalink_unknown_inbean.xml");
assertEquals(e.getDestInbean(), "unknowninbean1");
assertEquals(e.getElementId(), "ELEMENT1");
assertEquals(e.getDestinationId(), ".ELEMENT2");
assertFalse(e.getSnapback());
}
}
public void testFlawedFlowLinkDestidInvalid()
{
ResourceFinderClasspath resourcefinder = ResourceFinderClasspath.getInstance();
SiteBuilder builder = new SiteBuilder("site/flawed_flowlink_destid_invalid.xml", resourcefinder);
try
{
builder.getSite();
fail();
}
catch (ElementIdNotFoundInSiteException e)
{
assertEquals(e.getId(), ".ELEMENT22");
assertEquals(e.getSiteId(), ".");
}
}
public void testFlawedFlowLinkTargetMissing()
{
ResourceFinderClasspath resourcefinder = ResourceFinderClasspath.getInstance();
SiteBuilder builder = new SiteBuilder("site/flawed_flowlink_target_missing.xml", resourcefinder);
try
{
builder.getSite();
fail();
}
catch (FlowLinkTargetRequiredException e)
{
assertEquals(e.getSiteDeclarationName(), "site/flawed_flowlink_target_missing.xml");
assertEquals(e.getExitName(), "Exit1");
assertEquals(e.getElementId(), "ELEMENT1");
}
}
public void testFlawedFlowLinkAmbigousTarget()
{
ResourceFinderClasspath resourcefinder = ResourceFinderClasspath.getInstance();
SiteBuilder builder = new SiteBuilder("site/flawed_flowlink_ambigous_target.xml", resourcefinder);
try
{
builder.getSite();
fail();
}
catch (FlowLinkAmbiguousTargetException e)
{
assertEquals(e.getSiteDeclarationName(), "site/flawed_flowlink_ambigous_target.xml");
assertEquals(e.getExitName(), "Exit1");
assertEquals(e.getElementId(), "ELEMENT1");
}
}
public void testFlawedFlowLinkSrcexit()
{
ResourceFinderClasspath resourcefinder = ResourceFinderClasspath.getInstance();
SiteBuilder builder = new SiteBuilder("site/flawed_flowlink_srcexit.xml", resourcefinder);
try
{
builder.getSite();
fail();
}
catch (ExitUnknownException e)
{
assertEquals(e.getDeclarationName(), "xml/test_xml2elementinfo1.xml");
assertEquals(e.getExitName(), "Exit19");
}
}
public void testFlawedFlowLinkSpecificDataLinkDestid()
{
ResourceFinderClasspath resourcefinder = ResourceFinderClasspath.getInstance();
SiteBuilder builder = new SiteBuilder("site/flawed_flowlink_specific_datalink_destid.xml", resourcefinder);
try
{
builder.getSite();
fail();
}
catch (FlowLinkSpecificDataLinkDestIdSpecifiedException e)
{
assertEquals(e.getSiteDeclarationName(), "site/flawed_flowlink_specific_datalink_destid.xml");
assertEquals(e.getExitName(), "Exit1");
assertEquals(e.getElementId(), "ELEMENT1");
}
}
public void testFlawedGlobalExitAmbigousTarget1()
{
ResourceFinderClasspath resourcefinder = ResourceFinderClasspath.getInstance();
SiteBuilder builder = new SiteBuilder("site/flawed_globalexit_ambigous_target1.xml", resourcefinder);
try
{
builder.getSite();
fail();
}
catch (GlobalExitAmbiguousTargetException e)
{
assertEquals(e.getSiteDeclarationName(), "site/flawed_globalexit_ambigous_target1.xml");
assertEquals(e.getGlobalExitName(), "exit1");
}
}
public void testFlawedGlobalExitAmbigousTarget2()
{
ResourceFinderClasspath resourcefinder = ResourceFinderClasspath.getInstance();
SiteBuilder builder = new SiteBuilder("site/flawed_globalexit_ambigous_target2.xml", resourcefinder);
try
{
builder.getSite();
fail();
}
catch (GlobalExitAmbiguousTargetException e)
{
assertEquals(e.getSiteDeclarationName(), "site/flawed_globalexit_ambigous_target2.xml");
assertEquals(e.getGlobalExitName(), "exit2");
}
}
public void testFlawedGlobalExitAmbigousTarget3()
{
ResourceFinderClasspath resourcefinder = ResourceFinderClasspath.getInstance();
SiteBuilder builder = new SiteBuilder("site/flawed_globalexit_ambigous_target3.xml", resourcefinder);
try
{
builder.getSite();
fail();
}
catch (GlobalExitAmbiguousTargetException e)
{
assertEquals(e.getSiteDeclarationName(), "site/flawed_globalexit_ambigous_target3.xml");
assertEquals(e.getGlobalExitName(), "exit3");
}
}
public void testFlawedGlobalExitTargetMissing()
{
ResourceFinderClasspath resourcefinder = ResourceFinderClasspath.getInstance();
SiteBuilder builder = new SiteBuilder("site/flawed_globalexit_target_missing.xml", resourcefinder);
try
{
builder.getSite();
fail();
}
catch (GlobalExitTargetRequiredException e)
{
assertEquals(e.getSiteDeclarationName(), "site/flawed_globalexit_target_missing.xml");
assertEquals(e.getGlobalExitName(), "exit1");
}
}
public void testMissingElementImplementation()
{
ResourceFinderClasspath resourcefinder = ResourceFinderClasspath.getInstance();
SiteBuilder builder = new SiteBuilder("test_site", resourcefinder);
builder
.enterElement("not_found_declaration_name")
.leaveElement();
try
{
builder.getSite();
fail();
}
catch (MissingImplementationException e)
{
assertEquals("not_found_declaration_name", e.getDeclarationName());
}
}
public void testFlawedUnknownInbeanGroup()
{
ResourceFinderClasspath resourcefinder = ResourceFinderClasspath.getInstance();
SiteBuilder builder = new SiteBuilder("site/flawed_unknown_inbean_group.xml", resourcefinder);
try
{
builder.getSite();
fail();
}
catch (InbeanGroupNotFoundException e)
{
assertEquals(e.getDeclarationName(), "xml/test_xml2elementinfo1.xml");
assertEquals(e.getClassName(), "com.uwyn.rife.engine.testelements.submission.BeanImpl");
assertEquals(e.getGroupName(), "unknowngroup");
}
}
public void testFlawedUnknownOutbeanGroup()
{
ResourceFinderClasspath resourcefinder = ResourceFinderClasspath.getInstance();
SiteBuilder builder = new SiteBuilder("site/flawed_unknown_outbean_group.xml", resourcefinder);
try
{
builder.getSite();
fail();
}
catch (OutbeanGroupNotFoundException e)
{
assertEquals(e.getDeclarationName(), "xml/test_xml2elementinfo1.xml");
assertEquals(e.getClassName(), "com.uwyn.rife.engine.testelements.submission.BeanImpl");
assertEquals(e.getGroupName(), "unknowngroup");
}
}
public void testFlawedUnknownGlobalbeanGroup()
{
ResourceFinderClasspath resourcefinder = ResourceFinderClasspath.getInstance();
SiteBuilder builder = new SiteBuilder("site/flawed_unknown_globalbean_group.xml", resourcefinder);
try
{
builder.getSite();
fail();
}
catch (GlobalBeanGroupNotFoundException e)
{
assertEquals(e.getSiteDeclarationName(), "site/flawed_unknown_globalbean_group.xml");
assertEquals(e.getClassName(), "com.uwyn.rife.engine.testelements.submission.BeanImpl");
assertEquals(e.getGroupName(), "unknowngroup");
}
}
public void testFlawedNonValidationInbeanGroup()
{
ResourceFinderClasspath resourcefinder = ResourceFinderClasspath.getInstance();
SiteBuilder builder = new SiteBuilder("site/flawed_nonvalidation_inbean_group.xml", resourcefinder);
try
{
builder.getSite();
fail();
}
catch (InbeanGroupRequiresValidatedConstrainedException e)
{
assertEquals(e.getDeclarationName(), "xml/test_xml2elementinfo1.xml");
assertEquals(e.getClassName(), "com.uwyn.rife.engine.testelements.exits.BeanImpl1");
assertEquals(e.getGroupName(), "somegroup");
}
}
public void testFlawedNonValidationOutbeanGroup()
{
ResourceFinderClasspath resourcefinder = ResourceFinderClasspath.getInstance();
SiteBuilder builder = new SiteBuilder("site/flawed_nonvalidation_outbean_group.xml", resourcefinder);
try
{
builder.getSite();
fail();
}
catch (OutbeanGroupRequiresValidatedConstrainedException e)
{
assertEquals(e.getDeclarationName(), "xml/test_xml2elementinfo1.xml");
assertEquals(e.getClassName(), "com.uwyn.rife.engine.testelements.exits.BeanImpl1");
assertEquals(e.getGroupName(), "somegroup");
}
}
public void testFlawedNonValidationGlobalbeanGroup()
{
ResourceFinderClasspath resourcefinder = ResourceFinderClasspath.getInstance();
SiteBuilder builder = new SiteBuilder("site/flawed_nonvalidation_globalbean_group.xml", resourcefinder);
try
{
builder.getSite();
fail();
}
catch (GlobalBeanGroupRequiresValidatedConstrainedException e)
{
assertEquals(e.getSiteDeclarationName(), "site/flawed_nonvalidation_globalbean_group.xml");
assertEquals(e.getClassName(), "com.uwyn.rife.engine.testelements.exits.BeanImpl1");
assertEquals(e.getGroupName(), "somegroup");
}
}
}