dgraham     2002/10/20 11:59:23

  Modified:    src/test/org/apache/struts/action TestActionMessages.java
  Log:
  Added test for add(ActionMessages)
  
  Revision  Changes    Path
  1.2       +197 -172  
jakarta-struts/src/test/org/apache/struts/action/TestActionMessages.java
  
  Index: TestActionMessages.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-struts/src/test/org/apache/struts/action/TestActionMessages.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- TestActionMessages.java   22 Jun 2002 20:50:36 -0000      1.1
  +++ TestActionMessages.java   20 Oct 2002 18:59:23 -0000      1.2
  @@ -1,173 +1,198 @@
  -/*
  - * The Apache Software License, Version 1.1
  - *
  - * Copyright (c) 1999-2002 The Apache Software Foundation.  All rights
  - * reserved.
  - *
  - * Redistribution and use in source and binary forms, with or without
  - * modification, are permitted provided that the following conditions
  - * are met:
  - *
  - * 1. Redistributions of source code must retain the above copyright
  - *    notice, this list of conditions and the following disclaimer.
  - *
  - * 2. Redistributions in binary form must reproduce the above copyright
  - *    notice, this list of conditions and the following disclaimer in
  - *    the documentation and/or other materials provided with the
  - *    distribution.
  - *
  - * 3. The end-user documentation included with the redistribution, if
  - *    any, must include the following acknowlegement:
  - *       "This product includes software developed by the
  - *        Apache Software Foundation (http://www.apache.org/)."
  - *    Alternately, this acknowlegement may appear in the software itself,
  - *    if and wherever such third-party acknowlegements normally appear.
  - *
  - * 4. The names "The Jakarta Project", "Struts", and "Apache Software
  - *    Foundation" must not be used to endorse or promote products derived
  - *    from this software without prior written permission. For written
  - *    permission, please contact [EMAIL PROTECTED]
  - *
  - * 5. Products derived from this software may not be called "Apache"
  - *    nor may "Apache" appear in their names without prior written
  - *    permission of the Apache Group.
  - *
  - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  - * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  - * SUCH DAMAGE.
  - * ====================================================================
  - *
  - * This software consists of voluntary contributions made by many
  - * individuals on behalf of the Apache Software Foundation.  For more
  - * information on the Apache Software Foundation, please see
  - * <http://www.apache.org/>.
  - *
  - */
  -
  -package org.apache.struts.action;
  -
  -import junit.framework.*;
  -import java.util.Iterator;
  -
  -/**
  - * Unit tests for the <code>org.apache.struts.action.ActionMessages</code> class.
  - *
  - * @author Dominique Plante
  - * @version $Revision$ $Date$
  - */
  -
  -public class TestActionMessages extends TestCase
  -{
  -     protected ActionMessages aMsgs = null;
  -     protected ActionMessages anMsgs = null;
  -     protected ActionMessage msg1 = null;
  -     protected ActionMessage msg2 = null;
  -     protected ActionMessage msg3 = null;
  -     protected ActionMessage msg4 = null;
  -     protected ActionMessage msg5 = null;
  -
  -    /**
  -     * Defines the testcase name for JUnit.
  -     *
  -     * @param theName the testcase's name.
  -     */
  -     public TestActionMessages(String theName)       
  -     {
  -             super(theName);
  -     }
  -
  -    /**
  -     * Start the tests.
  -     *
  -     * @param theArgs the arguments. Not used
  -     */
  -    public static void main(String[] theArgs)
  -    {
  -        junit.awtui.TestRunner.main(new String[] 
{TestActionMessages.class.getName()});
  -    }
  -
  -    /**
  -     * @return a test suite (<code>TestSuite</code>) that includes all methods
  -     *         starting with "test"
  -     */
  -    public static Test suite()
  -    {
  -        // All methods starting with "test" will be executed in the test suite.
  -        return new TestSuite(TestActionMessages.class);
  -    }
  -
  -     public void setUp()
  -     {
  -             aMsgs = new ActionMessages();
  -             anMsgs = new ActionMessages();
  -             Object [] objs1 = new Object [] { "a", "b", "c", "d", "e" };
  -             Object [] objs2 = new Object [] { "f", "g", "h", "i", "j" };
  -             msg1 = new ActionMessage("aMessage", objs1);
  -             msg2 = new ActionMessage("anMessage", objs2);
  -             msg3 = new ActionMessage("msg3", "value1");
  -             msg4 = new ActionMessage("msg4", "value2");
  -             msg5 = new ActionMessage("msg5", "value3", "value4");
  -     }
  -
  -     public void tearDown()
  -     {
  -             aMsgs = null;
  -     }
  -     public void testEmpty()
  -     {
  -             assertTrue("aMsgs is not empty!", aMsgs.empty());
  -     }
  -
  -     public void testNotEmpty()
  -     {
  -             aMsgs.add("myProp", msg1);
  -             assertTrue("aMsgs is empty!", aMsgs.empty()== false);
  -     }
  -
  -     public void testSizeWithOneProperty()
  -     {
  -             aMsgs.add("myProp", msg1);
  -             aMsgs.add("myProp", msg2);
  -             assertTrue("number of meesages is not 2", aMsgs.size("myProp") == 2);
  -     }
  -
  -     public void testSizeWithManyProperties()
  -     {
  -             aMsgs.add("myProp1", msg1);
  -             aMsgs.add("myProp2", msg2);
  -             aMsgs.add("myProp3", msg3);
  -             aMsgs.add("myProp3", msg4);
  -             aMsgs.add("myProp4", msg5);
  -             assertTrue("number of messages for myProp1 is not 1", 
aMsgs.size("myProp1") == 1);
  -             assertTrue("number of messages", aMsgs.size() == 5);
  -     }
  -     public void testSizeAndEmptyAfterClear()
  -     {
  -             testSizeWithOneProperty();
  -             aMsgs.clear();
  -             testEmpty();
  -             assertTrue("number of meesages is not 0", aMsgs.size("myProp") == 0);
  -     }
  -
  -     public void testGetWithNoProperty()
  -     {
  -             Iterator it = aMsgs.get("myProp");
  -             assertTrue("iterator is not empty!", it.hasNext() == false);
  -     }
  -
  -     public void testGetForAProperty()
  -     {
  -             testSizeWithOneProperty();
  -             Iterator it = aMsgs.get("myProp");
  -             assertTrue("iterator is empty!", it.hasNext() == true);
  -     }
  +/*
  + * The Apache Software License, Version 1.1
  + *
  + * Copyright (c) 1999-2002 The Apache Software Foundation.  All rights
  + * reserved.
  + *
  + * Redistribution and use in source and binary forms, with or without
  + * modification, are permitted provided that the following conditions
  + * are met:
  + *
  + * 1. Redistributions of source code must retain the above copyright
  + *    notice, this list of conditions and the following disclaimer.
  + *
  + * 2. Redistributions in binary form must reproduce the above copyright
  + *    notice, this list of conditions and the following disclaimer in
  + *    the documentation and/or other materials provided with the
  + *    distribution.
  + *
  + * 3. The end-user documentation included with the redistribution, if
  + *    any, must include the following acknowlegement:
  + *       "This product includes software developed by the
  + *        Apache Software Foundation (http://www.apache.org/)."
  + *    Alternately, this acknowlegement may appear in the software itself,
  + *    if and wherever such third-party acknowlegements normally appear.
  + *
  + * 4. The names "The Jakarta Project", "Struts", and "Apache Software
  + *    Foundation" must not be used to endorse or promote products derived
  + *    from this software without prior written permission. For written
  + *    permission, please contact [EMAIL PROTECTED]
  + *
  + * 5. Products derived from this software may not be called "Apache"
  + *    nor may "Apache" appear in their names without prior written
  + *    permission of the Apache Group.
  + *
  + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  + * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  + * SUCH DAMAGE.
  + * ====================================================================
  + *
  + * This software consists of voluntary contributions made by many
  + * individuals on behalf of the Apache Software Foundation.  For more
  + * information on the Apache Software Foundation, please see
  + * <http://www.apache.org/>.
  + *
  + */
  +
  +package org.apache.struts.action;
  +
  +import junit.framework.*;
  +import java.util.Iterator;
  +
  +/**
  + * Unit tests for the <code>org.apache.struts.action.ActionMessages</code> class.
  + *
  + * @author Dominique Plante
  + * @author David Graham
  + * @version $Revision$ $Date$
  + */
  +
  +public class TestActionMessages extends TestCase {
  +     protected ActionMessages aMsgs = null;
  +     protected ActionMessages anMsgs = null;
  +     protected ActionMessage msg1 = null;
  +     protected ActionMessage msg2 = null;
  +     protected ActionMessage msg3 = null;
  +     protected ActionMessage msg4 = null;
  +     protected ActionMessage msg5 = null;
  +
  +     /**
  +      * Defines the testcase name for JUnit.
  +      *
  +      * @param theName the testcase's name.
  +      */
  +     public TestActionMessages(String theName) {
  +             super(theName);
  +     }
  +
  +     /**
  +      * Start the tests.
  +      *
  +      * @param theArgs the arguments. Not used
  +      */
  +     public static void main(String[] theArgs) {
  +             junit.awtui.TestRunner.main(new String[] { 
TestActionMessages.class.getName()});
  +     }
  +
  +     /**
  +      * @return a test suite (<code>TestSuite</code>) that includes all methods
  +      *         starting with "test"
  +      */
  +     public static Test suite() {
  +             // All methods starting with "test" will be executed in the test suite.
  +             return new TestSuite(TestActionMessages.class);
  +     }
  +
  +     public void setUp() {
  +             aMsgs = new ActionMessages();
  +             anMsgs = new ActionMessages();
  +             Object[] objs1 = new Object[] { "a", "b", "c", "d", "e" };
  +             Object[] objs2 = new Object[] { "f", "g", "h", "i", "j" };
  +             msg1 = new ActionMessage("aMessage", objs1);
  +             msg2 = new ActionMessage("anMessage", objs2);
  +             msg3 = new ActionMessage("msg3", "value1");
  +             msg4 = new ActionMessage("msg4", "value2");
  +             msg5 = new ActionMessage("msg5", "value3", "value4");
  +     }
  +
  +     public void tearDown() {
  +             aMsgs = null;
  +     }
  +
  +     public void testEmpty() {
  +             assertTrue("aMsgs is not empty!", aMsgs.empty());
  +     }
  +
  +     public void testNotEmpty() {
  +             aMsgs.add("myProp", msg1);
  +             assertTrue("aMsgs is empty!", aMsgs.empty() == false);
  +     }
  +
  +     public void testSizeWithOneProperty() {
  +             aMsgs.add("myProp", msg1);
  +             aMsgs.add("myProp", msg2);
  +             assertTrue("number of mesages is not 2", aMsgs.size("myProp") == 2);
  +     }
  +
  +     public void testSizeWithManyProperties() {
  +             aMsgs.add("myProp1", msg1);
  +             aMsgs.add("myProp2", msg2);
  +             aMsgs.add("myProp3", msg3);
  +             aMsgs.add("myProp3", msg4);
  +             aMsgs.add("myProp4", msg5);
  +             assertTrue("number of messages for myProp1 is not 1", 
aMsgs.size("myProp1") == 1);
  +             assertTrue("number of messages", aMsgs.size() == 5);
  +     }
  +
  +     public void testSizeAndEmptyAfterClear() {
  +             testSizeWithOneProperty();
  +             aMsgs.clear();
  +             testEmpty();
  +             assertTrue("number of meesages is not 0", aMsgs.size("myProp") == 0);
  +     }
  +
  +     public void testGetWithNoProperty() {
  +             Iterator it = aMsgs.get("myProp");
  +             assertTrue("iterator is not empty!", it.hasNext() == false);
  +     }
  +
  +     public void testGetForAProperty() {
  +             testSizeWithOneProperty();
  +             Iterator it = aMsgs.get("myProp");
  +             assertTrue("iterator is empty!", it.hasNext() == true);
  +     }
  +
  +     /**
  +      * Tests adding an ActionMessages object to an ActionMessages object.
  +      */
  +     public void testAddMessages() {
  +             ActionMessage msg1 = new ActionMessage("key");
  +             ActionMessage msg2 = new ActionMessage("key2");
  +             ActionMessage msg3 = new ActionMessage("key3");
  +             ActionMessages msgs = new ActionMessages();
  +             ActionMessages add = new ActionMessages();
  +
  +             msgs.add("prop1", msg1);
  +             add.add("prop1", msg2);
  +             add.add("prop3", msg3);
  +
  +             msgs.add(add);
  +             assertTrue(msgs.size() == 3);
  +             assertTrue(msgs.size("prop1") == 2);
  +
  +             // test message order
  +             Iterator props = msgs.get();
  +             int count = 1;
  +             while (props.hasNext()) {
  +                     ActionMessage msg = (ActionMessage) props.next();
  +                     if (count == 1) {
  +                             assertTrue(msg.getKey().equals("key"));
  +                     } else if (count == 2) {
  +                             assertTrue(msg.getKey().equals("key2"));
  +                     } else {
  +                             assertTrue(msg.getKey().equals("key3"));
  +                     }
  +
  +                     count++;
  +             }
  +     }
   }
  
  
  

--
To unsubscribe, e-mail:   <mailto:struts-dev-unsubscribe@;jakarta.apache.org>
For additional commands, e-mail: <mailto:struts-dev-help@;jakarta.apache.org>

Reply via email to