donaldp     2002/11/11 22:45:44

  Modified:    info/src/test/org/apache/avalon/framework/tools/infobuilder/test
                        InfoBuilderTestCase.java
  Log:
  Add unit test to test extracion of info from qdox parsing
  
  Revision  Changes    Path
  1.9       +40 -1     
jakarta-avalon-excalibur/info/src/test/org/apache/avalon/framework/tools/infobuilder/test/InfoBuilderTestCase.java
  
  Index: InfoBuilderTestCase.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-excalibur/info/src/test/org/apache/avalon/framework/tools/infobuilder/test/InfoBuilderTestCase.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- InfoBuilderTestCase.java  12 Nov 2002 01:40:11 -0000      1.8
  +++ InfoBuilderTestCase.java  12 Nov 2002 06:45:43 -0000      1.9
  @@ -27,11 +27,19 @@
   import org.apache.avalon.framework.tools.infobuilder.InfoWriter;
   import org.apache.avalon.framework.tools.infobuilder.InfoReader;
   import org.apache.avalon.framework.tools.infobuilder.XMLInfoReader;
  +import org.apache.avalon.framework.tools.generator.QDoxInfoBuilder;
   import org.apache.avalon.framework.container.ContainerUtil;
   import java.util.Properties;
  +import java.util.Arrays;
   import java.io.File;
   import java.io.FileOutputStream;
   import java.io.FileInputStream;
  +import java.io.Reader;
  +import java.io.InputStreamReader;
  +import java.io.InputStream;
  +import com.thoughtworks.qdox.JavaDocBuilder;
  +import com.thoughtworks.qdox.model.JavaSource;
  +import com.thoughtworks.qdox.model.JavaClass;
   
   /**
    * Abstract class which TestCases can extend.
  @@ -45,12 +53,17 @@
       private static final String BASE_PACKAGE =
           "org.apache.avalon.framework.tools.infobuilder.test.data.";
   
  +    private static final String BASE_DIR = '/' + BASE_PACKAGE.replace( '.','/');
  +
       private static final String COMPONENT1 = BASE_PACKAGE + "component1";
       private static final String COMPONENT2 = BASE_PACKAGE + "component2";
       private static final String COMPONENT3 = BASE_PACKAGE + "component3";
   
       private static final String SERVICE1 = BASE_PACKAGE + "service1";
   
  +    private static final String SOURCE1 = BASE_DIR + "QDoxComponent1.java";
  +    private static final String SOURCE1_INFO = BASE_PACKAGE + "QDoxComponent1";
  +
       public InfoBuilderTestCase( String name )
       {
           super( name );
  @@ -129,6 +142,32 @@
           runWriteReadTest( createDummyComponentInfo(),
                             new XMLInfoWriter(),
                             new XMLInfoReader() );
  +    }
  +
  +    public void testQDoxScan()
  +        throws Exception
  +    {
  +        final JavaDocBuilder builder = new JavaDocBuilder();
  +        final InputStream inputStream = getClass().getResourceAsStream( SOURCE1 );
  +        assertNotNull( "resource " + SOURCE1 + " not null", inputStream );
  +        final Reader reader = new InputStreamReader( inputStream );
  +        builder.addSource( reader );
  +
  +        final JavaSource[] sources = builder.getSources();
  +        assertEquals( "sources.length", 1, sources.length );
  +        final JavaSource source = sources[ 0 ];
  +        final JavaClass[] classes = source.getClasses();
  +        assertEquals( "source.getClasses()", 1, classes.length );
  +
  +        System.out.println( "source.getImports() = " + Arrays.asList( 
source.getImports() ) );
  +
  +        final QDoxInfoBuilder infoBuilder = new QDoxInfoBuilder();
  +        final ComponentInfo actual = infoBuilder.buildComponentInfo( classes[ 0 ] );
  +        final ComponentInfo expected = loadComponentInfo( SOURCE1_INFO );
  +
  +        InfoAssert.assertEqualInfos( " ComponentInfo generated from source file",
  +                                     expected,
  +                                     actual );
       }
   
       private void runWriteReadTest( final ComponentInfo expected,
  
  
  

--
To unsubscribe, e-mail:   <mailto:avalon-cvs-unsubscribe@;jakarta.apache.org>
For additional commands, e-mail: <mailto:avalon-cvs-help@;jakarta.apache.org>

Reply via email to