buildframework/helium/sf/java/diamonds/tests/antunit/test_diamonds.ant.xml
changeset 645 b8d81fa19e7d
parent 628 7c4a911dc066
--- a/buildframework/helium/sf/java/diamonds/tests/antunit/test_diamonds.ant.xml	Wed Sep 29 17:48:06 2010 +0100
+++ b/buildframework/helium/sf/java/diamonds/tests/antunit/test_diamonds.ant.xml	Sun Oct 10 15:22:15 2010 +0300
@@ -23,24 +23,102 @@
 <project name="test-diamonds" xmlns:au="antlib:org.apache.ant.antunit" xmlns:hlm="http://www.nokia.com/helium">
     <description>Helium Antlib diamonds unittests.</description>
 
-    
+    <taskdef name="xpathtest" classname="se.jtech.ant.xpath.XPathEvaluatorTask" onerror="ignore"/>    
+
     <import file="run-scenario.ant.xml" />
 
     <target name="test-build">
         <runScenario scenario="build" target="unittest-diamonds" />
+        <au:assertLogContains text="Diamonds build id:" />
     </target>
 
     <target name="test-build-with-invalid-address">
         <runScenario scenario="invalid-address" target="unittest-diamonds" />
-        <au:assertLogContains text="Error occured while sending mail" />
+        <au:assertLogContains text="Error sending the message: invalid.server.local" />
+        <au:assertLogContains text="Diamonds reporting will be disabled." />
     </target>
     
     <target name="test-build-with-invalid-templates">
         <runScenario scenario="invalid-templates" target="unittest-diamonds" />
+        <au:assertLogContains text="Error with invalid-ant-properties-input-file.ftl" />
+        <au:assertLogContains text="Diamonds build id:" />
     </target>
 
     <target name="test-build-with-invalid-templates-1">
-        <runScenario scenario="invalid-templates-1" failonerror="false" target="unittest-diamonds" />
+        <runScenario scenario="invalid-templates-1" target="unittest-diamonds" />
+        <au:assertLogContains text="Diamonds build id:" />
+    </target>
+    
+    <target name="test-build-without-config">
+        <runScenario scenario="build-without-config" target="unittest-diamonds" />
+        <au:assertLogContains text="Diamonds reporting is disabled, because the listener is not configured properly: required property: diamonds.host not defined" />
+    </target>
+
+    <target name="test-failing-build">
+        <au:expectfailure>
+            <runScenario scenario="failing-build" target="build" />
+        </au:expectfailure>
+        <au:assertLogContains text="BUILD FAILED" />
+        <au:assertLogContains text="diamonds:" />
+        <au:assertLogContains text="failing-target:" />
+        <property file="${test.temp.dir}/diamonds.ini" />
+        <get src="http://${diamonds.host}:${diamonds.port}${diamonds.build.id}?fmt=xml"
+             dest="${test.temp.dir}/diamonds_data.xml" 
+             usetimestamp="true" />
+        <xpathtest xmlfile="${test.temp.dir}/diamonds_data.xml">
+            <namespace uri="" prefix=""/>
+            <xpath expression="/diamonds-build/build[status='failed']"/>
+         </xpathtest>        
+        <xpathtest xmlfile="${test.temp.dir}/diamonds_data.xml">
+            <namespace uri="" prefix=""/>
+            <xpath expression="/diamonds-build/build/finished"/>
+         </xpathtest>        
+    </target>
+
+    <target name="test-signal-build">
+        <au:expectfailure>
+            <runScenario scenario="signal-build" target="build" />
+        </au:expectfailure>
+        <au:assertLogContains text="BUILD FAILED" />
+        <au:assertLogContains text="diamonds:" />
+        <au:assertLogContains text="failing-target:" />
+        <property file="${test.temp.dir}/diamonds.ini" />
+        <get src="http://${diamonds.host}:${diamonds.port}${diamonds.build.id}?fmt=xml"
+             dest="${test.temp.dir}/diamonds_data.xml" 
+             usetimestamp="true" />
+        <xpathtest xmlfile="${test.temp.dir}/diamonds_data.xml">
+            <namespace uri="" prefix=""/>
+            <xpath expression="/diamonds-build/build[status='failed']"/>
+         </xpathtest>        
+        <xpathtest xmlfile="${test.temp.dir}/diamonds_data.xml">
+            <namespace uri="" prefix=""/>
+            <xpath expression="/diamonds-build/build/finished"/>
+         </xpathtest>        
+        <xpathtest xmlfile="${test.temp.dir}/diamonds_data.xml">
+            <namespace uri="" prefix=""/>
+            <xpath expression="/diamonds-build/signals/signal[position()=1 and name='testDeferredSignalInput']"/>
+         </xpathtest>        
+        <xpathtest xmlfile="${test.temp.dir}/diamonds_data.xml">
+            <namespace uri="" prefix=""/>
+            <xpath expression="/diamonds-build/signals/signal[position()=2 and name='testNowSignalInput']"/>
+         </xpathtest>        
+    </target>
+    
+    <target name="test-target-recording">
+        <runScenario scenario="target-recording" target="build" />
+        <au:assertLogContains text="BUILD SUCCESSFUL" />
+        <au:assertLogContains text="diamonds:" />
+        <property file="${test.temp.dir}/diamonds.ini" />
+        <get src="http://${diamonds.host}:${diamonds.port}${diamonds.build.id}?fmt=xml"
+             dest="${test.temp.dir}/diamonds_data.xml" 
+             usetimestamp="true" />
+        <xpathtest xmlfile="${test.temp.dir}/diamonds_data.xml">
+            <namespace uri="" prefix=""/>
+            <xpath expression="/diamonds-build/targets/target[name='target-recording']"/>
+            <xpath expression="/diamonds-build/targets/target[name='sub-target2']"/>
+            <xpath expression="/diamonds-build/targets/target[name='sub-target3']"/>
+            <xpath expression="/diamonds-build/targets[count(target)=3]"/>
+         </xpathtest>        
     </target>
     
 </project>
\ No newline at end of file