package com.ricebridge.xmlman.in.test;
import com.ricebridge.xmlman.in.OutNode;
import com.ricebridge.xmlman.in.OutState;
import com.ricebridge.xmlman.in.OutData;
import org.jostraca.util.*;
import junit.framework.*;
import junit.textui.*;
import java.util.*;
public class OutNodeTest extends TestCase {
public OutNodeTest( String pName ) {
super( pName );
}
public static TestSuite suite() {
return new TestSuite( OutNodeTest.class );
}
public static void main( String[] pArgs ) {
TestRunner.run( suite() );
}
public void testCreate() throws Exception {
OutState os = new OutState();
OutNode root = new OutNode("root",1);
OutNode a = new OutNode("a",1);
root.addChild(a);
OutNode b = new OutNode("b",1);
a.addChild(b);
OutNode c = new OutNode("c",1);
b.addChild(c);
OutNode d = new OutNode("d",1);
b.addChild(d);
OutNode e = new OutNode("e",1);
d.addChild(e);
OutNode n = root.nextChild( os );
assertEquals( a, n );
n = root.nextChild( os );
assertTrue( n == null );
n = root.nextChild( os );
assertEquals( a, n );
n = a.nextChild( os );
assertEquals( b, n );
n = b.nextChild( os );
assertEquals( c, n );
n = b.nextChild( os );
assertEquals( d, n );
n = b.nextChild( os );
assertTrue( null == n);
n = b.nextChild( os );
assertEquals( c, n );
n = b.nextChild( os );
assertEquals( d, n );
n = d.nextChild( os );
assertEquals( e, n );
}
public void testPosition() throws Exception {
OutState os = new OutState();
OutNode root = new OutNode("root",1);
OutNode a1 = new OutNode("a",1);
a1.addOutData( new OutData( TestUtil.makeNameInfo("a1") ) );
root.addChild(a1);
assertEquals( "a1:"+"root-root-N a[(@a1)]", "a1:"+root.debugString().replace('\n','N') );
OutNode a2 = new OutNode("a",2);
a2.addOutData( new OutData( TestUtil.makeNameInfo("a2") ) );
root.addChild(a2);
assertEquals( "a2:"+"root-root-N a[(@a1)]N a[(@a2)]", "a2:"+root.debugString().replace('\n','N') );
OutNode b1a = new OutNode("b",1);
b1a.addOutData( new OutData( TestUtil.makeNameInfo("b1a") ) );
a1.addChild(b1a);
assertEquals( "b1a:"+"root-root-N a[(@a1)]N b[(@b1a)]N a[(@a2)]", "b1a:"+root.debugString().replace('\n','N') );
OutNode b2a = new OutNode("b",2);
b2a.addOutData( new OutData( TestUtil.makeNameInfo("b2a") ) );
a1.addChild(b2a);
assertEquals( "b2a:"+"root-root-N a[(@a1)]N b[(@b1a)]N b[(@b2a)]N a[(@a2)]", "b2a:"+root.debugString().replace('\n','N') );
OutNode b1b = new OutNode("b",1);
b1b.addOutData( new OutData( TestUtil.makeNameInfo("b1b") ) );
a1.addChild(b1b);
assertEquals( "b1b:"+"root-root-N a[(@a1)]N b[(@b1a)]N b[(@b1b)]N b[(@b2a)]N a[(@a2)]",
"b1b:"+root.debugString().replace('\n','N') );
OutNode b3a = new OutNode("b",3);
b3a.addOutData( new OutData( TestUtil.makeNameInfo("b3a") ) );
a1.addChild(b3a);
assertEquals( "b3a:"+"root-root-N a[(@a1)]N b[(@b1a)]N b[(@b1b)]N b[(@b2a)]N b[(@b3a)]N a[(@a2)]",
"b3a:"+root.debugString().replace('\n','N') );
OutNode b2b = new OutNode("b",2);
b2b.addOutData( new OutData( TestUtil.makeNameInfo("b2b") ) );
a1.addChild(b2b);
assertEquals( "b2b:"+"root-root-N a[(@a1)]N b[(@b1a)]N b[(@b1b)]N b[(@b2a)]N b[(@b2b)]N b[(@b3a)]N a[(@a2)]",
"b2b:"+root.debugString().replace('\n','N') );
OutNode c3a = new OutNode("c",3);
c3a.addOutData( new OutData( TestUtil.makeNameInfo("c3a") ) );
a2.addChild(c3a);
assertEquals( "c3a:"+"root-root-N a[(@a1)]N b[(@b1a)]N b[(@b1b)]N b[(@b2a)]N b[(@b2b)]N b[(@b3a)]"
+"N a[(@a2)]N c[(@c3a)]",
"c3a:"+root.debugString().replace('\n','N') );
OutNode c2a = new OutNode("c",2);
c2a.addOutData( new OutData( TestUtil.makeNameInfo("c2a") ) );
a2.addChild(c2a);
assertEquals( "c2a:"+"root-root-N a[(@a1)]N b[(@b1a)]N b[(@b1b)]N b[(@b2a)]N b[(@b2b)]N b[(@b3a)]"
+"N a[(@a2)]N c[(@c2a)]N c[(@c3a)]",
"c2a:"+root.debugString().replace('\n','N') );
OutNode c2b = new OutNode("c",2);
c2b.addOutData( new OutData( TestUtil.makeNameInfo("c2b") ) );
a2.addChild(c2b);
assertEquals( "c2b:"+"root-root-N a[(@a1)]N b[(@b1a)]N b[(@b1b)]N b[(@b2a)]N b[(@b2b)]N b[(@b3a)]"
+"N a[(@a2)]N c[(@c2a)]N c[(@c2b)]N c[(@c3a)]",
"c2b:"+root.debugString().replace('\n','N') );
OutNode c1a = new OutNode("c",1);
c1a.addOutData( new OutData( TestUtil.makeNameInfo("c1a") ) );
a2.addChild(c1a);
assertEquals( "c1a:"+"root-root-N a[(@a1)]N b[(@b1a)]N b[(@b1b)]N b[(@b2a)]N b[(@b2b)]N b[(@b3a)]"
+"N a[(@a2)]N c[(@c1a)]N c[(@c2a)]N c[(@c2b)]N c[(@c3a)]",
"c1a:"+root.debugString().replace('\n','N') );
}
}