<?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"
    xmlns:v="jelly:validate">

<!-- test RelaxNG --> 

<test:case name="validateRelaxNG">

<v:verifier uri="address.rng" var="addressSchema"/>

<v:assertValid verifier="${addressSchema}">
  <addressBook>
    <card>
      <name>John Smith</name>
      <email>js@example.com</email>
    </card>
    <card>
      <name>Fred Bloggs</name>
      <email>fb@example.net</email>
    </card>
  </addressBook>
</v:assertValid>
  
</test:case>


<test:case name="invalidateRelaxNG">

<v:verifier uri="address.rng" var="addressSchema"/>

<j:catch var="exception">
<v:assertValid var="flag" verifier="${addressSchema}">
  <addressBook>
    <card>
      <email>js@example.com</email>
    </card>
    <card>
      <name>Fred Bloggs</name>
    </card>
    <card>
      <wrongname>Fred Bloggs</wrongname>
    </card>
    <card>
    </card>
  </addressBook>
</v:assertValid>
</j:catch>

<test:assert test="${!flag}">The document should not be valid</test:assert>
<test:assert test="${exception != null}">An exception should have been thrown</test:assert>
The exception was ${exception.message}
  
</test:case>


<!-- test DTDs --> 
<test:case name="validateDTD">

<v:verifier uri="address.dtd" var="addressSchema"/>

<v:assertValid verifier="${addressSchema}">
  <addressBook>
    <card>
      <name>John Smith</name>
      <email>js@example.com</email>
    </card>
    <card>
      <name>Fred Bloggs</name>
      <email>fb@example.net</email>
    </card>
  </addressBook>
</v:assertValid>
  
</test:case>


<test:case name="invalidateDTD">

<v:verifier uri="address.dtd" var="addressSchema"/>

<j:catch var="exception">
<v:assertValid var="flag" verifier="${addressSchema}">
  <addressBook>
    <card>
      <email>js@example.com</email>
    </card>
    <card>
      <name>Fred Bloggs</name>
    </card>
    <card>
      <wrongname>Fred Bloggs</wrongname>
    </card>
    <card>
    </card>
  </addressBook>
</v:assertValid>
</j:catch>

<test:assert test="${!flag}">The document should not be valid</test:assert>
<test:assert test="${exception != null}">An exception should have been thrown</test:assert>
The exception was ${exception.message}
  
</test:case>
   
</test:suite>
