001    package org.springframework.richclient.form;
002    
003    import junit.framework.TestCase;
004    import org.springframework.binding.form.HierarchicalFormModel;
005    import org.springframework.binding.form.ValidatingFormModel;
006    import org.springframework.binding.form.support.DefaultFormModel;
007    
008    /**
009     * Unit tests for {@link FormModelHelper}
010     */
011    public class FormModelHelperTests extends TestCase {
012    
013        public void testGetChild() throws Exception {
014            // test the edge conditions first
015            try {
016                FormModelHelper.getChild(null, "");
017                fail("Should have thrown an IllegalArgumentException");
018            }
019            catch (IllegalArgumentException exp) {
020                // should have happened
021            }
022    
023            try {
024                FormModelHelper.getChild(new DefaultFormModel(), null);
025                fail("Should have thrown an IllegalArgumentException");
026            }
027            catch (IllegalArgumentException exp) {
028                // should have happened
029            }
030    
031            HierarchicalFormModel parentModel = new DefaultFormModel();
032            assertNull(FormModelHelper.getChild(parentModel, "testChildName"));
033    
034            final ValidatingFormModel childFormModel = FormModelHelper.createFormModel(new Object(), "testChildName");
035            parentModel.addChild(childFormModel);
036    
037            assertNotNull(FormModelHelper.getChild(parentModel, "testChildName"));
038            assertNull(FormModelHelper.getChild(parentModel, "bogusChildName"));
039        }
040    
041    }