blob: 8abab0c22f6e6b740affa903b6fdc57749f6424e [file] [log] [blame]
<project name="unitTest" default="runUnitTests">
<description>
This file runs what we have termed the "unit tests". They are not unit tests in a true sense of the word rather they run a set of
tests against a "mock server". This is a Java program that given a request will return back a given response file. Thus this system is useful for
testing where we do not have an actual service written but have the tcp monitor request and response files. From these we can write a test quickly and easily and place it into
the unit test suite which avoids us having to create a large number of potentially complex services when time might not allow this.
This system is essentially the same as the fv suite except for the fact that the endpoint is not
a server but the mock-server. In order to run this system several things have to be set up in advance e.g.
the response files. For more inforamtion about set up of a new test please read the document ws-axis/c/tests/auto_build/UnitTest_Readme.txt.
In order to run the already created unit tests please run Ant against this build file giving the same properties as you do for
the fv suite in order for the suite to find your libraries. NOTE: This system does not handle ssl tests.
</description>
<import file="./test.xml"/>
<target name="runUnitTests" depends="checkEnvironment">
<antcall target="unitTestClient">
<param name="unit.test.list" value="${basedir}/tests/auto_build/testcases/unitTest.list"/>
</antcall>
</target>
<target name="unitTestClient" depends="addSamplesToUnitTests">
<description>
This target calls the fv suite as usual except for the fact that unit test flags
and properties are switched on.
This means that the client is being used against a fake server and the unitTest.list file is used
instead of any *test.list* property set by the user
</description>
<!-- ******************************************************************************************** -->
<!-- In order to run the system in mockserver (unittest) mode we have to override some properties -->
<!-- override the test.list if it's already been set -->
<!-- replace all of test.list's backslashes slashes as this ruins the proper regex -->
<propertyregex property="test.list" override="true" input="${test.list}" regexp="\\" replace="/"/>
<propertyregex property="test.list" override="true" input="${test.list}" regexp=".*" replace=""/>
<!-- have to replace all the single backslashes in unit.test.list so that the replace works OK -->
<propertyregex property="unit.test.list" override="true" input="${unit.test.list}" regexp="\\" replace="/"/>
<propertyregex property="test.list" override="true" input="${test.list}" regexp=".*" replace="${unit.test.list}" defaultValue="${unit.test.list}"/>
<!-- dir.testproperties must be set to the correct tree -->
<!-- replace all of dir.testproperties backslashes slashes as this ruins the proper regex -->
<propertyregex property="dir.testproperties" override="true" input="${dir.testproperties}" regexp="\\" replace="/"/>
<propertyregex property="dir.testproperties" override="true" input="${dir.testproperties}" regexp=".*" replace=""/>
<!-- have to replace all the single backslashes in unit.test.list so that the replace works OK -->
<!-- <propertyregex property="unit.test.list" override="true" input="${unit.test.list}" regexp="\\" replace="/"/> -->
<propertyregex property="dir.testproperties" override="true" input="never find this" regexp="a" replace="${basedir}/tests/auto_build/testcases/tests" defaultValue="${basedir}/tests/auto_build/testcases/tests"/>
<echo message="${dir.testproperties} DIRTESTPROPS"/>
<!-- ******************************************************************************************** -->
<!-- replace any previously set up mockserver with value true -->
<propertyregex property="mockServer" override="true" input="${mockServer}" regexp="false" replace="true" defaultValue="true"/>
<!-- now call the fv suite as usual -->
<antcall target="testSuite" inheritall="true"/>
</target>
<target name="addSamplesToUnitTests">
<description>
We expose several samples but three in particular. Calculator, testHandler and echoStringHeaderHandler. However, we should make sure that these are
tested on a daily basis. This target copies those tests from the source tree into the samples tree ready for unit test to run. I have added these to the unit tests here but they should also be run as services too.
</description>
<!-- copy over the calculator sample client to the clients test directory -->
<copy file="${basedir}/samples/client/calculator/Client.cpp" tofile="${dir.autotests}/client/cpp/CalculatorClient.cpp"/>
</target>
<target name="checkEnvironment" depends="initialize">
<echo message="Please ensure that you have set xmlParserLibraryName = ${xerces.xmlParserLibraryName} an XMLParser home depending on what your parser is"/>
</target>
</project>