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 javax.xml.parsers.SAXParserFactory;
import javax.xml.parsers.SAXParser;
import java.util.*;
import java.io.*;
public class SubMatchTest extends TestCase {
public SubMatchTest( String pName ) {
super( pName );
}
public static TestSuite suite() {
return new TestSuite( SubMatchTest.class );
}
public static void main( String[] pArgs ) {
TestRunner.run( suite() );
}
private static ArrayList sRecordSpecList = new ArrayList();
private static ArrayList sRecordDataList = new ArrayList();
static {
sRecordSpecList.add( new RecordSpec( "//*", new String[] { "name()", "@name", "//@name" } ) );
ArrayList data = new ArrayList();
data.add( new String[] { "t", "", "foo1" } );
data.add( new String[] { "t", "", "foo2" } );
data.add( new String[] { "bar", "bar2", "foo2" } );
data.add( new String[] { "foo", "foo2", "bar1" } );
data.add( new String[] { "bar", "bar1", "foo1" } );
data.add( new String[] { "t", "", "foo3" } );
data.add( new String[] { "t", "", "foo4" } );
data.add( new String[] { "foo", "foo4", "que2" } );
data.add( new String[] { "que", "que2", "foo3" } );
data.add( new String[] { "foo", "foo3", "que1" } );
data.add( new String[] { "que", "que1", "foo1" } );
data.add( new String[] { "zoo", "zoo2", "zoo1" } );
data.add( new String[] { "zoo", "zoo3", "zoo1" } );
data.add( new String[] { "zoo", "zoo1", "foo1" } );
data.add( new String[] { "zoo", "zoo4", "foo1" } );
data.add( new String[] { "foo", "foo1", "foo1" } );
sRecordDataList.add( data );
sRecordSpecList.add( new RecordSpec( "//foo", new String[] { "@name", "t" } ) );
sRecordDataList.add( ListUtil.make( new String[] {"foo2","2"},
new String[] {"foo4","4"},
new String[] {"foo3","3"},
new String[] {"foo1","1"} ) );
sRecordSpecList.add( new RecordSpec( "//zoo", new String[] { "@name", "./text()" } ) );
sRecordDataList.add( ListUtil.make( new String[] {"zoo2","z2"},
new String[] {"zoo3","z3"},
new String[] {"zoo1","z1az1bz1c"},
new String[] {"zoo4","z4"} ) );
sRecordSpecList.add( new RecordSpec( "//bar", new String[] { "@name" } ) );
sRecordDataList.add( ListUtil.make( new String[] {"bar2"},
new String[] {"bar1"} ) );
sRecordSpecList.add( new RecordSpec( "/foo/bar", new String[] { "@name" } ) );
sRecordDataList.add( ListUtil.make( new String[] {"bar1"} ) );
sRecordSpecList.add( new RecordSpec( "/foo//bar", new String[] { "@name" } ) );
sRecordDataList.add( ListUtil.make( new String[] {"bar2"},
new String[] {"bar1"} ) );
sRecordSpecList.add( new RecordSpec( "//zoo[2]", new String[] { "@name" } ) );
sRecordDataList.add( ListUtil.make( new String[] {"zoo3"},
new String[] {"zoo4"} ) );
sRecordSpecList.add( new RecordSpec( "//que/foo", new String[] { "@name" } ) );
sRecordDataList.add( ListUtil.make( new String[] {"foo4"},
new String[] {"foo3"} ) );
sRecordSpecList.add( new RecordSpec( "/descendant-or-self::foo", new String[] { "@name" } ) );
sRecordDataList.add( ListUtil.make( new String[] {"foo1"} ) );
sRecordSpecList.add( new RecordSpec( "/descendant::foo", new String[] { "@name" } ) );
sRecordDataList.add( ListUtil.make( new String[] {"foo1"} ) );
}
public void testSubMatch() throws Exception {
TestUtil.testRecords( "com/ricebridge/xmlman/in/test/submatch.xml", sRecordSpecList, sRecordDataList, this );
}
}