    1   /*
    2    * $Id: MessagesMapTestCase.java 471754 2006-11-06 14:55:09Z husted $
    3    *
    4    * Licensed to the Apache Software Foundation (ASF) under one
    5    * or more contributor license agreements.  See the NOTICE file
    6    * distributed with this work for additional information
    7    * regarding copyright ownership.  The ASF licenses this file
    8    * to you under the Apache License, Version 2.0 (the
    9    * "License"); you may not use this file except in compliance
    10   * with the License.  You may obtain a copy of the License at
    11   *
    12   *  http://www.apache.org/licenses/LICENSE-2.0
    13   *
    14   * Unless required by applicable law or agreed to in writing,
    15   * software distributed under the License is distributed on an
    16   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    17   * KIND, either express or implied.  See the License for the
    18   * specific language governing permissions and limitations
    19   * under the License.
    20   */
    21
    22  package org.apache.struts.faces.util;
    23
    24
    25  import java.util.Collections;
    26  import java.util.Locale;
    27
    28  import junit.framework.Test;
    29  import junit.framework.TestCase;
    30  import junit.framework.TestSuite;
    31
    32  import org.apache.struts.util.MessageResources;
    33
    34
    35  /**
    36   * <p>Unit tests for <code>MessagesMap</code>.</p>
    37   */
    38
    39  public class MessagesMapTestCase extends TestCase {
    40
    41
    42      // ------------------------------------------------------ Instance Variables
    43
    44
    45      /**
    46       * <p>The <code>MessagesMap</code> instance to be tested.</p>
    47       */
    48      protected MessagesMap map = null;
    49
    50
    51      /**
    52       * <p>The <code>MessageResources</code> instance containing the messages
    53       * used for testing.</p>
    54       */
    55      protected MessageResources resources = null;
    56
    57
    58      // ------------------------------------------------------------ Constructors
    59
    60
    61      /**
    62       * <p>Construct a new instance of this test case.</p>
    63       *
    64       * @param name Name of the test case
    65       */
    66      public MessagesMapTestCase(String name) {
    67
    68          super(name);
    69
    70      }
    71
    72
    73      // ---------------------------------------------------- Overall Test Methods
    74
    75
    76      /**
    77       * <p>Set up instance variables required by this test case.</p>
    78       */
    79      public void setUp() throws Exception {
    80
    81          resources =
    82              MessageResources.getMessageResources
    83              ("org.apache.struts.faces.util.Bundle");
    84          map = new MessagesMap(resources, Locale.getDefault());
    85
    86      }
    87
    88
    89      /**
    90       * <p>Return the tests included in this test suite.</p>
    91       */
    92      public static Test suite() {
    93
    94          return new TestSuite(MessagesMapTestCase.class);
    95
    96      }
    97
    98
    99      /**
    100      * <p>Tear down instance variables required by this test case.</p>
    101      */
    102     public void teaDown() throws Exception {
    103
    104         map = null;
    105         resources = null;
    106
    107     }
    108
    109
    110     // -------------------------------------------------- Individal Test Methods
    111
    112
    113     /**
    114      * <p>Test the <code>containsKey()</code> method.</p>
    115      */
    116     public void testContainsKey() throws Exception {
    117
    118         // Positive tests
    119         assertTrue(map.containsKey("foo"));
    120         assertTrue(map.containsKey("bar"));
    121         assertTrue(map.containsKey("baz"));
    122
    123         // Negative tests
    124         assertTrue(!map.containsKey("bop"));
    125
    126     }
    127
    128
    129     /**
    130      * <p>Test the <code>get()</code> method.</p>
    131      */
    132     public void testGet() throws Exception {
    133
    134         // Positive tests
    135         assertEquals("This is foo", (String) map.get("foo"));
    136         assertEquals("And this is bar", (String) map.get("bar"));
    137         assertEquals("We also have baz", (String) map.get("baz"));
    138
    139         // Negative tests
    140         assertNull(map.get("bop"));
    141
    142     }
    143
    144
    145     /**
    146      * <p>Test a pristine instance, and all unsupported methods.</p>
    147      */
    148     public void testPristine() throws Exception {
    149
    150         // clear()
    151         try {
    152             map.clear();
    153             fail("clear() should have thrown UnsupportedOperationException");
    154         } catch (UnsupportedOperationException e) {
    155             ; // Expected result
    156         }
    157
    158         // containsValue()
    159         try {
    160             map.containsValue("foo");
    161             fail("containsValue() should have thrown UnsupportedOperationException");
    162         } catch (UnsupportedOperationException e) {
    163             ; // Expected result
    164         }
    165
    166         // entrySet()
    167         try {
    168             map.entrySet();
    169             fail("entrySet() should have thrown UnsupportedOperationException");
    170         } catch (UnsupportedOperationException e) {
    171             ; // Expected result
    172         }
    173
    174         // keySet()
    175         try {
    176             map.keySet();
    177             fail("keySet() should have thrown UnsupportedOperationException");
    178         } catch (UnsupportedOperationException e) {
    179             ; // Expected result
    180         }
    181
    182         // put()
    183         try {
    184             map.put("foo", "bar");
    185             fail("put() should have thrown UnsupportedOperationException");
    186         } catch (UnsupportedOperationException e) {
    187             ; // Expected result
    188         }
    189
    190         // putAll()
    191         try {
    192             map.putAll(Collections.EMPTY_MAP);
    193             fail("putAll() should have thrown UnsupportedOperationException");
    194         } catch (UnsupportedOperationException e) {
    195             ; // Expected result
    196         }
    197
    198         // remove()
    199         try {
    200             map.remove("foo");
    201             fail("remove() should have thrown UnsupportedOperationException");
    202         } catch (UnsupportedOperationException e) {
    203             ; // Expected result
    204         }
    205
    206         // size()
    207         try {
    208             map.size();
    209             fail("size() should have thrown UnsupportedOperationException");
    210         } catch (UnsupportedOperationException e) {
    211             ; // Expected result
    212         }
    213
    214         // size()
    215         try {
    216             map.values();
    217             fail("values() should have thrown UnsupportedOperationException");
    218         } catch (UnsupportedOperationException e) {
    219             ; // Expected result
    220         }
    221
    222     }
    223
    224
    225 }