View Javadoc

1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *   http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   */
19  
20  package javax.faces.application;
21  
22  import junit.framework.TestCase;
23  
24  import javax.faces.application.FacesMessage.Severity;
25  import java.io.ByteArrayInputStream;
26  import java.io.ByteArrayOutputStream;
27  import java.io.ObjectInputStream;
28  import java.io.ObjectOutputStream;
29  import java.util.Map;
30  
31  public class FacesMessageTest extends TestCase
32  {
33  
34      public static void main(String[] args)
35      {
36          junit.textui.TestRunner.run(FacesMessageTest.class);
37      }
38  
39      public FacesMessageTest(String name)
40      {
41          super(name);
42      }
43  
44      @Override
45      protected void setUp() throws Exception
46      {
47          super.setUp();
48      }
49  
50      @Override
51      protected void tearDown() throws Exception
52      {
53          super.tearDown();
54      }
55  
56      /*
57       * Test method for 'javax.faces.application.FacesMessage.FacesMessage()'
58       */
59      public void testFacesMessage()
60      {
61          FacesMessage msg = new FacesMessage();
62          assertEquals(msg.getSeverity(), FacesMessage.SEVERITY_INFO);
63          assertNull(msg.getSummary());
64          assertNull(msg.getDetail());
65      }
66  
67      /*
68       * Test method for 'javax.faces.application.FacesMessage.FacesMessage(String)'
69       */
70      public void testFacesMessageString()
71      {
72          String summary = "summary";
73          FacesMessage msg = new FacesMessage(summary);
74          assertEquals(msg.getSeverity(), FacesMessage.SEVERITY_INFO);
75          assertEquals(msg.getSummary(), summary);
76          assertEquals(msg.getDetail(), summary);
77      }
78  
79      /*
80       * Test method for 'javax.faces.application.FacesMessage.FacesMessage(String, String)'
81       */
82      public void testFacesMessageStringString()
83      {
84          String summary = "summary";
85          String detail = "detail";
86          FacesMessage msg = new FacesMessage(summary, detail);
87          assertEquals(msg.getSeverity(), FacesMessage.SEVERITY_INFO);
88          assertEquals(msg.getSummary(), summary);
89          assertEquals(msg.getDetail(), detail);
90      }
91  
92      /*
93       * Test method for 'javax.faces.application.FacesMessage.FacesMessage(Severity, String, String)'
94       */
95      public void testFacesMessageSeverityStringString()
96      {
97          String summary = "summary";
98          String detail = "detail";
99          FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_ERROR, summary, detail);
100         assertEquals(msg.getSeverity(), FacesMessage.SEVERITY_ERROR);
101         assertEquals(msg.getSummary(), summary);
102         assertEquals(msg.getDetail(), detail);
103     }
104 
105     /*
106      * Test method for 'javax.faces.application.FacesMessage.FacesMessage(Severity, String, String)'
107      */
108     public void testFacesMessageNullSeverityStringString()
109     {
110         String summary = "summary";
111         String detail = "detail";
112         try
113         {
114             new FacesMessage(null, summary, detail);
115             fail("Should have thrown an exception");
116         }
117         catch (NullPointerException e)
118         {
119         }
120     }
121 
122     /*
123      * Test method for 'javax.faces.application.FacesMessage.setSeverity(Severity)'
124      */
125     public void testSetSeverity()
126     {
127         FacesMessage msg = new FacesMessage();
128         assertEquals(msg.getSeverity(), FacesMessage.SEVERITY_INFO);
129         msg.setSeverity(FacesMessage.SEVERITY_FATAL);
130         assertEquals(msg.getSeverity(), FacesMessage.SEVERITY_FATAL);
131     }
132 
133     /*
134      * Test method for 'javax.faces.application.FacesMessage.setSeverity(Severity)'
135      */
136     public void testSetNullSeverity()
137     {
138         FacesMessage msg = new FacesMessage();
139         try
140         {
141             msg.setSeverity(null);
142             fail("Should have thrown an exception");
143         }
144         catch (NullPointerException e)
145         {
146         }
147     }
148 
149     /*
150      * Test method for 'javax.faces.application.FacesMessage.setSummary(String)'
151      */
152     public void testSetSummary()
153     {
154         FacesMessage msg = new FacesMessage();
155         String summary = "summary";
156         msg.setSummary(summary);
157         assertEquals(msg.getSummary(), summary);
158         assertEquals(msg.getDetail(), summary);
159     }
160 
161     /*
162      * Test method for 'javax.faces.application.FacesMessage.setDetail(String)'
163      */
164     public void testSetDetail()
165     {
166         FacesMessage msg = new FacesMessage();
167         String detail = "detail";
168         msg.setDetail(detail);
169         assertEquals(msg.getSummary(), null);
170         assertEquals(msg.getDetail(), detail);
171     }
172 
173     public void testSeverityOrdering()
174     {
175         // make sure they are ordered correctly from least to worst
176         assertTrue(0 > FacesMessage.SEVERITY_INFO.compareTo(FacesMessage.SEVERITY_WARN));
177         assertTrue(0 > FacesMessage.SEVERITY_WARN.compareTo(FacesMessage.SEVERITY_ERROR));
178         assertTrue(0 > FacesMessage.SEVERITY_ERROR.compareTo(FacesMessage.SEVERITY_FATAL));
179         // make sure they are ordered correctly from worts to least
180         assertTrue(0 < FacesMessage.SEVERITY_FATAL.compareTo(FacesMessage.SEVERITY_ERROR));
181         assertTrue(0 < FacesMessage.SEVERITY_ERROR.compareTo(FacesMessage.SEVERITY_WARN));
182         assertTrue(0 < FacesMessage.SEVERITY_WARN.compareTo(FacesMessage.SEVERITY_INFO));
183     }
184 
185     public void testSeverityEquality()
186     {
187         // make sure they all respond as equals when they should
188         assertEquals(0, FacesMessage.SEVERITY_INFO.compareTo(FacesMessage.SEVERITY_INFO));
189         assertEquals(0, FacesMessage.SEVERITY_WARN.compareTo(FacesMessage.SEVERITY_WARN));
190         assertEquals(0, FacesMessage.SEVERITY_ERROR.compareTo(FacesMessage.SEVERITY_ERROR));
191         assertEquals(0, FacesMessage.SEVERITY_FATAL.compareTo(FacesMessage.SEVERITY_FATAL));
192     }
193 
194     public void testSeverityValues()
195     {
196         // JSF spec requires this list to be sorted by ordinal
197         for (int i = 0, sz = FacesMessage.VALUES.size(); i < sz; i++)
198         {
199             FacesMessage.Severity severity = (Severity) FacesMessage.VALUES.get(i);
200             assertEquals(i + 1, severity.getOrdinal());
201         }
202     }
203 
204     @SuppressWarnings("unchecked")
205     public void testSeverityValuesMap()
206     {
207         Map<String, FacesMessage.Severity> severityMap = (Map<String, FacesMessage.Severity>) FacesMessage.VALUES_MAP;
208 
209         for (Map.Entry<String, FacesMessage.Severity> e : severityMap.entrySet())
210         {
211             assertEquals(e.getKey(), e.getValue().toString());
212         }
213     }
214 
215     public void testSerialization() throws Exception
216     {
217         final String summary = "summary";
218         final String detail = "detail";
219         FacesMessage msg = new FacesMessage(summary, detail);
220 
221         // check if properties are set correctly
222         assertEquals(msg.getSeverity(), FacesMessage.SEVERITY_INFO);
223         assertEquals(msg.getSummary(), summary);
224         assertEquals(msg.getDetail(), detail);
225 
226         // serialize instance
227         ByteArrayOutputStream baos = new ByteArrayOutputStream();
228         ObjectOutputStream out = new ObjectOutputStream(baos);
229         out.writeObject(msg);
230         out.close();
231 
232         // deserialize instance
233         ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(baos.toByteArray()));
234         FacesMessage deserialized = (FacesMessage) in.readObject();
235 
236         // FacesMessage properties must equal!
237         assertSame(msg.getSeverity(), deserialized.getSeverity());
238         assertEquals(msg.getSummary(), deserialized.getSummary());
239         assertEquals(msg.getDetail(), deserialized.getDetail());
240     }
241 
242 }