org.osesb.objectpools.test
Class ThreadedPooledValidatingSAXParserTest

java.lang.Object
  extended by junit.framework.Assert
      extended by junit.framework.TestCase
          extended by org.osesb.utilities.junit.OSESBTestCase
              extended by org.osesb.utilities.junit.OSESBThreadedTestCase
                  extended by org.osesb.objectpools.test.ThreadedPooledValidatingSAXParserTest
All Implemented Interfaces:
junit.framework.Test

public class ThreadedPooledValidatingSAXParserTest
extends OSESBThreadedTestCase

THIS TEST PROVES THAT SCHEMA VALIDATION USING XERCES IS INCOMPATIBLE WITH APACHE OBJECT POOLS. Threaded SAXPoolFactory Test for a validating parser configuration using:

1. Using a org.xml.sax.EntityResolver to resolve schema declarations to locations in the configured instance of the XML repository. THIS TEST FAILS. We get a SAXParseException: 'Document is invalid: no grammar found', even though the EntityResolver resolves and returns the schema. So the suite passes, a non-pooled call to ParseSAX has been substituted for the parse() call to the pooled parser. We cannot use a org.xml.sax.EntityResolver with pooled parsers.

2. jaxp v1.2-style validation, where the schema sources are set using parser properties. The parser properties are set using the namespace of the XML document, if any, and a File[] of schema sources. THIS TEST FAILS. We get a SAXParseException: Document is invalid: no grammar found. So the suite passes, a non-pooled call to ParseSAX has been substituted for the parse() call to the pooled parser. We cannot use jaxp v1.2-style validation with pooled parsers.

Collects parser statistics and reports average time to parse across all threads in milliseconds.


Field Summary
 
Fields inherited from class org.osesb.utilities.junit.OSESBThreadedTestCase
numberOfIterations, numberOfTestThreads, threadDelay
 
Fields inherited from class org.osesb.utilities.junit.OSESBTestCase
configFile, log, reader, testDataDirectory, testProperties, thisClassName
 
Constructor Summary
ThreadedPooledValidatingSAXParserTest(java.lang.String name)
          Construct a new instance.
 
Method Summary
static void main(java.lang.String[] args)
          The main method runs all the tests in the text ui
 void setUp()
          This method is called before a test is executed.
static junit.framework.Test suite()
          The suite method runs all the tests
 void tearDown()
          This method is called after a test is executed.
 void testPooledSAXParserValidatingUsingEntityResolver()
          Test validating PooledSAXParser with an org.xml.sax.EntityResolver to resolve schema declarations to locations in the configured instance of the XML repository..
 void testPooledSAXParserValidatingUsingSchemaSource()
          Test validating PooledSAXParser using jaxp v1.2-style validation, where the schema locations are set using parser properties.
 
Methods inherited from class org.osesb.utilities.junit.OSESBThreadedTestCase
displayStartupMessage
 
Methods inherited from class org.osesb.utilities.junit.OSESBTestCase
getBooleanTestProperty, getIntTestProperty, getLongTestProperty, getTestResourcesAsStreams, getTestResourcesAsText, getTestResourcesFiles, loadTestProperties, readTestFilesAsStreams
 
Methods inherited from class junit.framework.TestCase
countTestCases, createResult, getName, run, run, runBare, runTest, setName, toString
 
Methods inherited from class junit.framework.Assert
assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertFalse, assertFalse, assertNotNull, assertNotNull, assertNotSame, assertNotSame, assertNull, assertNull, assertSame, assertSame, assertTrue, assertTrue, fail, fail, failNotEquals, failNotSame, failSame, format
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ThreadedPooledValidatingSAXParserTest

public ThreadedPooledValidatingSAXParserTest(java.lang.String name)
Construct a new instance.

Ancestor constructors do the following:

  1. Instantiates a logging implementation.
  2. Instantiates an instance of ClassLoaderFileReader for reading test files from the ClassPath (not the file system).
  3. Loads Test.properties into ResourceBundle testProperties.
  4. Sets the testDataDirectory property using the testDataDirectory entry from Test.properties.
  5. Override standard values for numberOfTestThreads, numberOfIterations, and numberOfIterations from values in Test.properties.

Method Detail

suite

public static junit.framework.Test suite()
The suite method runs all the tests


setUp

public void setUp()
           throws java.lang.Exception
This method is called before a test is executed.

Overrides:
setUp in class OSESBTestCase
Throws:
java.lang.Exception

tearDown

public void tearDown()
              throws java.lang.Exception
This method is called after a test is executed.

Overrides:
tearDown in class OSESBTestCase
Throws:
java.lang.Exception

main

public static void main(java.lang.String[] args)
The main method runs all the tests in the text ui


testPooledSAXParserValidatingUsingEntityResolver

public void testPooledSAXParserValidatingUsingEntityResolver()
                                                      throws java.lang.Exception
Test validating PooledSAXParser with an org.xml.sax.EntityResolver to resolve schema declarations to locations in the configured instance of the XML repository..

Throws:
java.lang.Exception

testPooledSAXParserValidatingUsingSchemaSource

public void testPooledSAXParserValidatingUsingSchemaSource()
                                                    throws java.lang.Exception
Test validating PooledSAXParser using jaxp v1.2-style validation, where the schema locations are set using parser properties.

Throws:
java.lang.Exception