blob: b6634199c335b346984bb48928ce474e325153f4 [file] [log] [blame]
<?xml version="1.0"?>
<!--
Copyright 2002,2004 The Apache Software Foundation.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<test:suite xmlns:j="jelly:core"
xmlns:test="jelly:junit">
<test:case name="assertTests">
<test:assert test="${2 == 2}">This should never fail</test:assert>
<j:catch var="ex">
<test:assert test="${2 != 2}">This should always fail</test:assert>
</j:catch>
<test:assert test="${ex != null}">We should have created an exception</test:assert>
The exception was: ${ex.message}
</test:case>
<test:case name="failTests">
<j:catch var="ex">
<test:fail>This should always fail</test:fail>
</j:catch>
<test:assert test="${ex != null}">We should have created an exception</test:assert>
The exception was: ${ex.message}
<j:catch var="ex">
<test:fail message="This should always fail"/>
</j:catch>
<test:assert test="${ex != null}">We should have created an exception</test:assert>
The exception was: ${ex.message}
</test:case>
<test:case name="assertEqualTests">
<j:set var="foo" value="abc"/>
<test:assertEquals actual="${foo}" expected="abc">This should never fail</test:assertEquals>
<j:catch var="ex">
<test:assertEquals actual="${foo}" expected="def">This should always fail</test:assertEquals>
</j:catch>
<test:assert test="${ex != null}">We should have created an exception</test:assert>
The exception was: ${ex.message}
</test:case>
<test:case name="assertThrowsTests">
<!-- test using var attribute -->
<test:assertThrows var="ex">
<test:fail message="This exeption should be exported"/>
</test:assertThrows>
<test:assert test="${ex != null}">No exception exported</test:assert>
<!-- test using superclass of expected throwable -->
<test:assertThrows expected="java.lang.Error">
<test:fail message="This should always fail"/>
</test:assertThrows>
<!-- test using non exception class -->
<test:assertThrows expected="java.lang.Class">
<test:fail message="This should always fail"/>
</test:assertThrows>
<!-- test using undefined class -->
<test:assertThrows expected="java.lang.ClassNotFoundException">
<test:assertThrows expected="foo.bar.Baz">
<test:fail message="This should always fail"/>
</test:assertThrows>
</test:assertThrows>
<!-- test using other exception class -->
<j:catch var="ex">
<test:assertThrows expected="java.io.IOException">
<test:fail message="This should always fail"/>
</test:assertThrows>
</j:catch>
<test:assert test="${ex != null}">We should have created an exception</test:assert>
<!-- test with no exception from body -->
<j:catch var="ex">
<test:assertThrows>
</test:assertThrows>
</j:catch>
<test:assert test="${ex != null}">assertThrows should fail when nothing is thrown from within it</test:assert>
<test:assert test="${ex.message.endsWith('No exception was thrown.')}"/>
<test:assertEquals actual="${ex.elementName}" expected="test:assertThrows"/>
<test:assert test="${ex.fileName != null}">fileName not set</test:assert>
<test:assert test="${ex.lineNumber gt 0}">lineNumber not set</test:assert>
<test:assert test="${ex.columnNumber gt 0}">columnNumber not set</test:assert>
</test:case>
<!--
#### uncomment when assertEquals supports type conversions
<test:case name="assertEqualsConversion">
<test:assertEquals expected="${4}" actual="${2+2}"/>
</test:case>
-->
</test:suite>