CVS: plexus-components/formproc/src/test/org/apache/plexus/formproc DefaultFormProcServiceTest.java,NONE,1.1 formproc.xml,NONE,1.1 example-form.xml,NONE,1.1 DefaultFormProcServiceTest.xml,NONE,1.1 formproc-include.xml,NONE,1.1

[email protected] Tue, 20 May 2003 18:31:12 -0500
Newsgroups gmane.comp.java.plexus.devel
Message-ID <[email protected]>
Update of /cvsroot/plexus/plexus-components/formproc/src/test/org/apache/plexus/formproc
In directory eng.werken.com:/tmp/cvs-serv9939/formproc/src/test/org/apache/plexus/formproc

Added Files:
	DefaultFormProcServiceTest.java formproc.xml example-form.xml 
	DefaultFormProcServiceTest.xml formproc-include.xml 
Log Message:
A formproc component.  Includes a template helper tool.  If 
interested in using this, find my on IRC and I'll tell you how things
work (but only until I write some docs).

--- NEW FILE: DefaultFormProcServiceTest.java ---
package org.apache.plexus.formproc;

import java.util.ArrayList;
import java.util.List;

import org.apache.plexus.PlexusTestCase;
import org.formproc.Form;
import org.formproc.FormData;
import org.formproc.FormManager;
import org.formproc.FormResult;

/**
 * TODO Document DefaultFormProcServiceTest
 * 
 * @author <a href="mailto:[email protected]">Dan Diephouse</a>
 * @since May 15, 2003
 */
public class DefaultFormProcServiceTest
    extends PlexusTestCase
{
    public DefaultFormProcServiceTest(String name)
    {
        super(name);
    }

    public void testService() throws Exception
    {
        FormProcService service = (FormProcService) getComponent( FormProcService.ROLE );
        
        FormManager man = service.getFormManager();
        
        List values = new ArrayList();
        values.add( new FormData("firstName", "Dan"));
        values.add( new FormData("lastName", "Diephouse"));
        values.add( new FormData("age", "21"));
        values.add( new FormData("skill", "Obfuscator"));
        
        Form f = new Form( );
        f.setName( "test" );
        man.configure( f );
        
        FormResult result = f.process( values );
        
        if ( !result.isValid() )
        {
            System.out.println( result.getErrorOrMessage( "firstName") );
            System.out.println( result.getOriginalValue( "firstName") );
            System.out.println( result.getErrorOrMessage( "lastName") );
            System.out.println( result.getOriginalValue( "lastName") );
            System.out.println( result.getErrorOrMessage( "skill") );
            System.out.println( result.getOriginalValue( "skill") );
            fail( "Form wasn't valid." );
        }
    }
}

--- NEW FILE: formproc.xml ---
<?xml version="1.0" encoding="ISO-8859-1"?>

<!-- Configuration file for a formproc FormManager -->
<config>

	<!-- map validator types to implementation classes -->
	<validator-map type="script" classname="org.formproc.validation.ScriptValidator">
		<property name="script-root" value=""/>
		<property name="script-root-type" value="classpath"/>
	</validator-map>
	<validator-map type="expression" classname="org.formproc.validation.REValidator"/>
	<validator-map type="rule" classname="org.formproc.validation.RuleValidator"/>
	<validator-map type="group" classname="org.formproc.validation.ValidatorGroup"/>

	<!-- define shared validators -->
	<shared-validator name="required">
		<validator type="expression">
			<pattern>.{1,}</pattern>
			<error lang="en">The field is required.</error>
			<error lang="fr">Exig�e</error>
		</validator>
	</shared-validator>
	
	<!-- include other configuration files -->
	<include loader="com.anthonyeden.lib.resource.ClassPathResourceLoader" path="org/apache/plexus/formproc/formproc-include.xml" monitor="true"/>

	<!-- define forms -->
	<form name="test" loader="com.anthonyeden.lib.resource.ClassPathResourceLoader" path="org/apache/plexus/formproc/example-form.xml" monitor="true"/>

</config>

--- NEW FILE: example-form.xml ---
<?xml version="1.0" encoding="ISO-8859-1"?>

<form>

	<name>example</name>
	
	<storer classname="org.formproc.store.MapStorer"/>

	<element name="firstName">
		<validator type="shared" name="required">
			<error>First name required.</error>
			<error lang="fr">Le prenom valide a exigé.</error>
		</validator>
		<message>Required</message>
	</element>
	
	<element name="lastName">
		<validator type="shared" name="required">
			<error>Last name required required.</error>
			<error lang="fr">Le nom valide a exigé.</error>
		</validator>
		<message>Required</message>
	</element>
	
	<element name="age" optional="true">
		<validator type="shared" name="age"/>
		<message>Optional.  If specified, a valid age required.</message>
		<message lang="fr">Optional.  L'âge valide a exigé.</message>
		<converter classname="org.formproc.conversion.IntegerConverter"/>
	</element>
	
	<element name="skill">
		<validator type="shared" name="required">
			<error>Skill required</error>
			<error lang="fr">Fr: Skill Required</error>
		</validator>
		<message>Required</message>
	</element>

</form>

--- NEW FILE: DefaultFormProcServiceTest.xml ---
<plexus>
  <components>
    <component>
      <logger>test</logger>
      <role>org.apache.plexus.formproc.FormProcService</role>
      <implementation>org.apache.plexus.formproc.DefaultFormProcService</implementation>
    
      <configuration/>
    </component>
  </components>
</plexus>

--- NEW FILE: formproc-include.xml ---
<?xml version="1.0" encoding="ISO-8859-1"?>

<!-- Configuration file for a formproc FormManager -->
<config>

	<shared-validator name="age">
		<validator type="group">
			<validator type="rule">
				<rule>org.formproc.example.IsIntRule</rule>
				<error>Valid number required</error>
				<error lang="fr">L'âge valide a exigé.</error>
			</validator>
			<validator type="expression">
				<pattern>[1-9][0-9]*</pattern>
				<error>Age must be 1 or greater</error>
			</validator>
		</validator>
	</shared-validator>

</config>