package com.ricebridge.xmlman.in.test;
import com.ricebridge.xmlman.*;
import com.ricebridge.xmlman.in.*;
import org.jostraca.util.*;
import junit.framework.*;
import junit.textui.*;
import java.util.*;
import java.io.*;
public class PointHandlerTest extends TestCase {
public PointHandlerTest( String pName ) {
super( pName );
}
public static TestSuite suite() {
return new TestSuite( PointHandlerTest.class );
}
public static void main( String[] pArgs ) {
TestRunner.run( suite() );
}
public void testTraversal() {
DocContext dc = new DocContext( new XmlSpec() );
ArrayList ppl = new ArrayList();
ppl.add( new PathPart( "foo", CoreDef.CHILD ) );
ppl.add( new PathPart( "bar", CoreDef.CHILD ) );
ppl.add( new PathPart( "jar", CoreDef.CHILD ) );
PathSpec ps = new PathSpec();
ps.iPartList = ppl;
TargetPath tp_jar = new TargetPath( ps );
tp_jar.activate(1,dc);
StringArrayRecordListener crt01 = new StringArrayRecordListener( );
ps = new PathSpec();
ps.iPartList = new ArrayList();
ps.iHasAttr = true;
ps.iAttrLocalName = "red"; ps.iAttrPrefix = ""; ps.iAttrNamespaceURI = "";
TargetPath tp_red = new TargetPath( ps );
tp_red.deactivate(dc);
DirectExpression de_red = new DirectExpression( tp_red );
dc.setExpression( "red", de_red );
tp_jar.addSubPath( tp_red );
ppl = new ArrayList();
ppl.add( new PathPart( "foo", CoreDef.CHILD ) );
ps = new PathSpec();
ps.iPartList = ppl;
ps.iHasAttr = true;
ps.iAttrLocalName = "blue"; ps.iAttrPrefix = ""; ps.iAttrNamespaceURI = "";
TargetPath tp_foo = new TargetPath( ps );
tp_foo.activate(1,dc);
DirectExpression de_blue = new DirectExpression( tp_foo );
dc.setExpression( "blue", de_blue );
ps = new PathSpec();
ps.iPartList = ListUtil.make( new PathPart("foo",CoreDef.CHILD), new PathPart("jar",CoreDef.DESCENDORSELF) );
ps.iHasAttr = true;
ps.iAttrLocalName = "green"; ps.iAttrPrefix = ""; ps.iAttrNamespaceURI = "";
TargetPath tp_green = new TargetPath( ps );
tp_green.activate(1,dc);
DirectExpression de_green = new DirectExpression( tp_green );
dc.setExpression( "green", de_green );
ArrayList tpl = ListUtil.make( tp_jar, tp_foo, tp_green );
PointHandler bps = new PointHandler( tpl, dc );
HashMap eal = new HashMap();
ArrayList eao = new ArrayList();
HashMap foo_am01 = new HashMap();
foo_am01.put("blue","b01");
ArrayList foo_ao01 = new ArrayList();
foo_ao01.add("blue");
HashMap jar_am01 = new HashMap();
jar_am01.put("red","r01");
jar_am01.put("green","g01");
ArrayList jar_ao01 = new ArrayList();
jar_ao01.add("red");
jar_ao01.add("green");
HashMap jar_am02 = new HashMap();
jar_am02.put("red","r02");
jar_am02.put("green","g02");
ArrayList jar_ao02 = new ArrayList();
jar_ao02.add("red");
jar_ao02.add("green");
HashMap jar_am03 = new HashMap();
jar_am03.put("red","r03");
jar_am03.put("green","g03");
ArrayList jar_ao03 = new ArrayList();
jar_ao03.add("red");
jar_ao03.add("green");
System.out.println( "\n"+dc.toString()+"\n" );
bps.handlePoint( (new StartPoint( TestUtil.makeNameInfo("foo"),foo_am01,foo_ao01,true )) );
bps.handlePoint( (new StartPoint( TestUtil.makeNameInfo("bar"),eal,eao,true )) );
bps.handlePoint( (new StartPoint( TestUtil.makeNameInfo("xyz"),eal,eao,true )) );
bps.handlePoint( (new EndPoint( TestUtil.makeNameInfo("xyz"),"" )) );
bps.handlePoint( (new StartPoint( TestUtil.makeNameInfo("jar"),jar_am01,jar_ao01,true )) );
bps.handlePoint( (new StartPoint( TestUtil.makeNameInfo("qwe"),eal,eao,true )) );
bps.handlePoint( (new EndPoint( TestUtil.makeNameInfo("qwe"),"" )) );
bps.handlePoint( (new EndPoint( TestUtil.makeNameInfo("jar"),"" )) );
bps.handlePoint( (new EndPoint( TestUtil.makeNameInfo("bar"),"" )) );
bps.handlePoint( (new StartPoint( TestUtil.makeNameInfo("rty"),eal,eao,true )) );
bps.handlePoint( (new EndPoint( TestUtil.makeNameInfo("rty"),"" )) );
bps.handlePoint( (new StartPoint( TestUtil.makeNameInfo("bar"),eal,eao,true )) );
bps.handlePoint( (new StartPoint( TestUtil.makeNameInfo("jar"),jar_am02,jar_ao02,true )) );
bps.handlePoint( (new StartPoint( TestUtil.makeNameInfo("jar"),jar_am03,jar_ao03,true )) );
bps.handlePoint( (new EndPoint( TestUtil.makeNameInfo("jar"),"" )) );
bps.handlePoint( (new EndPoint( TestUtil.makeNameInfo("jar"),"" )) );
bps.handlePoint( (new EndPoint( TestUtil.makeNameInfo("bar"),"" )) );
bps.handlePoint( (new EndPoint( TestUtil.makeNameInfo("foo"),"" )) );
System.out.println( "ROWS:"+TestUtil.dataToString( crt01.getRecords() ) );
}
}