<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
 distributed with this work for additional information
 regarding copyright ownership.  The ASF licenses this file
 to you 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.
-->
<input-data xmlns="http://turbine.apache.org/schema/intake/4.0"
    basePackage="org.apache.fulcrum.intake.test." 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://turbine.apache.org/schema/intake/4.0 intake.xsd">
    <group name="LoginGroup" key="loginGroupKey" mapToObject="LoginForm">
      <field name="Username" key="loginUsernameKey" type="String"
      mapToProperty="Username">
      </field>
    </group>

    <group name="LoginIfcGroup" key="loginIfcGroupKey" mapToObject="LoginFormInterface">
        <field name="Username" key="loginUsernameKey" type="String"
            mapToProperty="Username">
        </field>
    </group>

	<group name="BooleanTest" key="bt">
		<field name="EmptyBooleanTestField" key="ebtf" type="boolean"/>
		<field name="BooleanTestField" key="btf" type="boolean">
			<rule value="false" name="required">ValidValue</rule>
		</field>
		<field name="RequiredBooleanTestField" key="rbtf" type="boolean">
			<rule value="true" name="required">ValidValue</rule>
		</field>
		<field name="TestCustomTypeField" key="tctf" type="custom"
			fieldClass="org.apache.fulcrum.intake.test.MyField" />
	</group>

    <group name="NumberTest" key="nt">
        <field name="EmptyIntegerTestField" key="eitf" type="int"/>
        <field name="MultiIntegerTestField" key="mitf" type="int" multiValued="true" />
        <field name="EmptyLongTestField" key="eltf" type="long"/>
        <field name="EmptyShortTestField" key="estf" type="short"/>
        <field name="EmptyFloatTestField" key="eftf" type="float"/>
        <field name="EmptyDoubleTestField" key="edtf" type="double"/>
        <field name="EmptyBigDecimalTestField" key="ebdtf" type="BigDecimal"/>
        <field name="NumberTestField" key="ntf" type="int">
            <rule name="invalidNumber" value="">Not a number</rule>
        </field>
    </group>
    
    <group name="ValidationTest" key="vt">
        <field name="StringTestField" key="stf" type="String">
            <rule name="required" value="true">Required</rule>
            <rule name="minLength" value="2">Too short</rule>
            <rule name="maxLength" value="10">Too long</rule>
            <rule name="mask" value="[A-Z]+">Uppercase letters only</rule>
        </field>
        <field name="BooleanTestField" key="btf" type="boolean">
                <rule name="required" value="true">Required</rule>
        </field>
        <field name="BigDecimalTestField" key="bdtf" type="BigDecimal">
                <rule name="required" value="true">Required</rule>
                <rule name="invalidNumber" value="">Not a number</rule>
                <rule name="minValue" value="3.0">Too small</rule>
                <rule name="maxValue" value="30.4">Too big</rule>
        </field>
        <field name="IntegerTestField" key="itf" type="int">
                <rule name="required" value="true">Required</rule>
                <rule name="invalidNumber" value="">Not a number</rule>
                <rule name="minValue" value="3">Too small</rule>
                <rule name="maxValue" value="30">Too big</rule>
        </field>
            <field name="IntegerToTestField" key="ittf" type="int" validator="IntegerRangeValidator">
                <rule name="required" value="true">Required</rule>
                <rule name="invalidNumber" value="">Not a number</rule>
                <rule name="greater-than" value="IntegerTestField">To-int must be greater than From-int</rule>
            </field>
        <field name="FloatTestField" key="ftf" type="float">
                <rule name="required" value="true">Required</rule>
                <rule name="invalidNumber" value="">Not a number</rule>
                <rule name="minValue" value="3.0">Too small</rule>
                <rule name="maxValue" value="30.4">Too big</rule>
            </field>
        <field name="FileItemTestField" key="fitf" type="FileItem">
                <rule name="required" value="true">Required</rule>
            </field>
        <field name="DateStringTestField" key="dstf" type="DateString">
                <rule name="required" value="true">Required</rule>
                <rule name="format" value="MM/dd/yyyy">Bad format</rule>
                <rule name="format1" value="dd.MM.yyyy">Bad format</rule>
                <rule name="flexible" value="true" />
            </field>
          <field name="DateToTestField" key="dttf" type="DateString" validator="DateRangeValidator">
                <rule name="required" value="true">Required</rule>
                <rule name="format" value="MM/dd/yyyy">Bad format</rule>
              <rule name="greater-than" value="DateStringTestField">To-Date must be greater than From-Date</rule>
          </field>
        <field name="DoubleTestField" key="dtf" type="double">
                <rule name="required" value="true">Required</rule>
                <rule name="invalidNumber" value="">Not a number</rule>
                <rule name="minValue" value="3.0">Too small</rule>
                <rule name="maxValue" value="30.4">Too big</rule>
            </field>
        <field name="ShortTestField" key="shtf" type="short">
                <rule name="required" value="true">Required</rule>
                <rule name="invalidNumber" value="">Not a number</rule>
                <rule name="minValue" value="3">Too small</rule>
                <rule name="maxValue" value="30">Too big</rule>
            </field>
        <field name="LongTestField" key="ltf" type="long">
                <rule name="required" value="true">Required</rule>
                <rule name="invalidNumber" value="">Not a number</rule>
                <rule name="minValue" value="3">Too small</rule>
                <rule name="maxValue" value="30">Too big</rule>
            </field>
        <field name="CustomTestField" key="ctf" type="custom" 
		    fieldClass="org.apache.fulcrum.intake.test.MyField">
            <rule name="required" value="true">Required</rule>
        </field>
    </group>
    
</input-data>
