1   package org.codehaus.xfire.java.message;
2   
3   import java.util.Date;
4   
5   import javax.xml.stream.XMLInputFactory;
6   import javax.xml.stream.XMLStreamReader;
7   
8   import org.codehaus.xfire.AbstractXFireTest;
9   
10  /***
11   * @author <a href="mailto:dan@envoisolutions.com">Dan Diephouse</a>
12   * @since Nov 4, 2004
13   */
14  public class ReaderTest
15      extends AbstractXFireTest
16  {
17      public void testLiteralReader()
18          throws Exception
19      {
20          XMLInputFactory factory = XMLInputFactory.newInstance();
21          XMLStreamReader reader = factory.createXMLStreamReader( 
22                  getResourceAsStream("/org/codehaus/xfire/java/document/bean11.xml"));
23          
24          while ( reader.getEventType() != XMLStreamReader.START_ELEMENT )
25              reader.next();
26          
27          LiteralReader lr = new LiteralReader(reader);
28          assertTrue( lr.getLocalName().equals("Envelope") );
29          
30          // make sure we can repeat this
31          assertTrue( lr.hasMoreChildReaders() );
32          assertTrue( lr.hasMoreChildReaders() );
33          assertTrue( lr.hasMoreChildReaders() );
34          
35          MessageReader header = lr.getNextChildReader();
36          assertEquals( "Header", header.getLocalName() );
37          assertFalse( header.hasMoreChildReaders() );
38          
39          MessageReader body = lr.getNextChildReader();
40          assertEquals( "Body", body.getLocalName() );
41          assertFalse( body.hasMoreChildReaders() );
42          
43          // currently there are still some hierarchy problems
44      }
45      
46      public void testDates() throws Exception
47      {
48          XMLInputFactory factory = XMLInputFactory.newInstance();
49          XMLStreamReader xr = factory.createXMLStreamReader( 
50                  getResourceAsStream( "/org/codehaus/xfire/java/message/dates.xml" ) );
51          
52          while ( xr.getEventType() != XMLStreamReader.START_ELEMENT )
53              xr.next();
54          
55          MessageReader reader = new LiteralReader(xr);
56          
57          Date date0 = reader.getNextChildReader().getValueAsDate();
58          assertNotNull(date0);
59          Date dateTime0 = reader.getNextChildReader().getValueAsDateTime();
60          assertNotNull(dateTime0);
61          Date dateTime1 = reader.getNextChildReader().getValueAsDateTime();
62          assertNotNull(dateTime1);
63          Date dateTime2 = reader.getNextChildReader().getValueAsDateTime();
64          assertNotNull(dateTime2);
65          
66          Date dateTime3 = reader.getNextChildReader().getValueAsDateTime();
67          assertNotNull(dateTime3);
68          Date dateTime4 = reader.getNextChildReader().getValueAsDateTime();
69          assertNotNull(dateTime4);
70          assertTrue ( dateTime3.before( dateTime4 ) );
71          
72          Date dateTime5 = reader.getNextChildReader().getValueAsDateTime();
73          assertNotNull(dateTime5);
74          Date dateTime6 = reader.getNextChildReader().getValueAsDateTime();
75          assertNotNull(dateTime6);
76          assertTrue ( dateTime5.before( dateTime6 ) );
77                          
78          //Date time0 = reader.getReader("time0").getValueAsTime();
79      }
80  }