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