whitlock    2002/10/18 07:20:05

  Modified:    java/doc run.htm
  Log:
  Added unit test description
  
  Revision  Changes    Path
  1.2       +70 -2     xml-axis-wsif/java/doc/run.htm
  
  Index: run.htm
  ===================================================================
  RCS file: /home/cvs/xml-axis-wsif/java/doc/run.htm,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- run.htm   14 Oct 2002 16:47:53 -0000      1.1
  +++ run.htm   18 Oct 2002 14:20:05 -0000      1.2
  @@ -13,9 +13,77 @@
   
   <h2>Tests</h2>
   <p>
  -TBW: general information about tests, junit and how to run them
  +WSIF has a number of unit tests found in the tests directory. These use Junit 
(currently Junit 3.7).
  +WSIF unit tests are loosely themed and test function in multiple providers. For 
instance 
  +jms.JmsTest tests jms:address, jms:property and jms:propertyValue tags across the 
SoapJms, 
  +AxisJms and NativeJms providers. You can either run a specific unit test or run all 
of them by 
  +running util.WSIFTestRunner. wsif.test.properties has 
  +wsif.test.components=ejb=on,jms=on,remotewsdl=on,jndi=on,fix=on,async=on 
  +which allows you to switch off areas across all unit tests. So because I rarely 
change the EJB provider, 
  +I run with ejb=off so when I run WSIFTestRunner none of the EJB tests get run. This 
can be dangerous 
  +and it is generally better to run all the unit tests. Individual unit tests can 
call 
  +TestUtilities.areWeTesting("ejb") for instance. There are various listeners needed 
to run the unit 
  +tests (JMS2HTTPBridge, JMSAsyncListener, NativeJMSRequestListener) and unit tests 
automatically start 
  +and stop the listeners that they need. All the tests need to find WSDL and other 
files on the 
  +local filesystem. This is done by looking for the WSIF src, samples and tests 
directories under
  +the directory specified by the wsif.path property in wsif.test.properties. So I 
have wsif.path=c:\\wsif.
  +The setup required to run the unit tests is based on the various providers being 
used.
  +</p>
  +<p>
  +For Soap and Axis over Http, find all files called DeploymentDescriptor.xml in the 
samples and tests
  +directories and deploy them to your favourite web server. The web server must be 
running on your 
  +localhost using port 8080. In the future localhost:8080 should be a property loaded 
from 
  +wsif.test.propeerties. The level of soap or axis used on your 
  +server does not have to be the same as the level used by WSIF. I use soap 2.2 on 
tomcat so I issue
  +java org.apache.soap.server.ServiceManagerClient 
http://localhost:8080/soap/servlet/rpcrouter deploy 
"samples\services\addressbook\DeploymentDescriptor.xml"
  +</p>
  +<p>
  +There is no setup to do to run tests under the Java provider.
  +</p>
  +<p>
  +To run tests using the EJB provider, ... todo ???
  +</p>
  +<p>
  +There are three providers that are enabled for Jms : Soap, Axis and NativeJms. 
Asynchronous support is 
  +currently only supported over Jms, so to test out async you need Jms. Obviously you 
need a Jms 
  +implementation. WSIF uses JNDI to lookup Jms queues and queue connnection 
factories. Topics are 
  +not supported at the moment. The batch files samples\wsifjmssetup.bat and 
samples\wsifjmstidy.bat create 
  +and delete the JNDI definitions for the Jms queues and queue connection factory 
needed to run the samples 
  +and some of the unit tests. I use IBM MQSeries as my Jms implementation so the 
batch files 
  +samples\wsifmqsetup.bat and samples\wsifmqtidy.bat create and delete the MQSeries 
queues needed to 
  +run the samples and some of the unit tests. The batch files 
tests\wsiftestjmssetup.bat and tests\wsiftestmqsetup.bat create the 
  +JNDI definitions and the MQSeries queues needed to run the unit tests. No code in 
WSIF or in the unit
  +tests is MQ-specific, except for these mq batch files and WSIFJMSFinderForMq. The 
unit tests also
  +assume the local queue manager is being used. The unit tests also assume that the 
JNDI database is on
  +the filesystem in \JNDI-Directory.
  +</p>
  +<p>
  +WSIF provides a JMS2HTTPBridge which takes soap messages from a Jms queue, routes 
them to a url and sends
  +the response message back to a replyTo queue. The JMS2HTTPBridge is intended as a 
test tool only.
  +So unit tests that test SoapJms and AxisJms start the JMS2HTTPBridge automatically. 
NativeJms requests
  +are served by the NativeJMSRequestListener which implements the backend service for 
our unit tests.
  +</p>
  +<p>
  +Specifying remotewsdl=on in wsif.test.components will enable the tests in the wsdl 
package to be run. These
  +tests test out loading wsdl from a url, from a jar file and test out imports. So 
you need 
  +wsdl\ClassLoaderTest.jar on your classpath, and 
http://localhost:8080/wsdl/AddressBook.wsdl needs
  +to be available.
  +</p>
  +<p>
  +The intention is for all unit tests to be run by WSIFTestRunner so everyone runs 
them all automatically.
  +Unfortunately there are a few tests which cannot be run in this way (or rather I 
could not make them 
  +run automatically). An example of this is the translated.messages tests, because 
these need to set the
  +locale, and I could not reset the locale multiple times in the same test.
  +</p>
  +<p>
  +The intention is for everyone to make sure that all the unit tests are kept working 
all the time, so
  +no regressions find their way in. If you add in new code (or even fixes) into WSIF, 
please add in new
  +unit tests, or extend existing tests to cover the new code you've added. Otherwise 
tomorrow someone
  +may unknowingly break your code. If you add in new unit tests please add them to 
WSIFTestRunner so 
  +that everyone will automatically run them as well. I guess when you make a change 
that requires a 
  +service to be redeployed or a queue definition to be added or changed, please 
notify everyone on 
  +axis-dev so that everyone can update their setup.
   </p>
  -
   
   <h2>Samples</h2>
   <p>
  
  
  


Reply via email to