001 package org.apache.myfaces.tobago.component;
002
003 /*
004 * Licensed to the Apache Software Foundation (ASF) under one or more
005 * contributor license agreements. See the NOTICE file distributed with
006 * this work for additional information regarding copyright ownership.
007 * The ASF licenses this file to You under the Apache License, Version 2.0
008 * (the "License"); you may not use this file except in compliance with
009 * the License. You may obtain a copy of the License at
010 *
011 * http://www.apache.org/licenses/LICENSE-2.0
012 *
013 * Unless required by applicable law or agreed to in writing, software
014 * distributed under the License is distributed on an "AS IS" BASIS,
015 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
016 * See the License for the specific language governing permissions and
017 * limitations under the License.
018 */
019
020 import org.apache.myfaces.tobago.internal.mock.faces.AbstractTobagoTestBase;
021 import org.junit.Assert;
022 import org.junit.Before;
023 import org.junit.Test;
024
025 import javax.faces.application.FacesMessage;
026 import javax.faces.context.FacesContext;
027 import java.util.List;
028
029 public class UIMessagesUnitTest extends AbstractTobagoTestBase {
030
031 @Before
032 public void setUp() throws Exception {
033 super.setUp();
034 FacesContext facesContext = getFacesContext();
035 facesContext.addMessage("id0", new FacesMessage(FacesMessage.SEVERITY_INFO, "test", "a test"));
036 facesContext.addMessage("id0", new FacesMessage(FacesMessage.SEVERITY_WARN, "test", "a test"));
037 facesContext.addMessage("id1", new FacesMessage(FacesMessage.SEVERITY_ERROR, "test", "a test"));
038 facesContext.addMessage("id1", new FacesMessage(FacesMessage.SEVERITY_FATAL, "test", "a test"));
039 facesContext.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_FATAL, "test", "a test"));
040 }
041
042 @Test
043 public void testCreateMessageListAll() {
044
045 UIMessages component = new UIMessages();
046 List<UIMessages.Item> messages = component.createMessageList(getFacesContext());
047
048 Assert.assertEquals(5, messages.size());
049 }
050
051 @Test
052 public void testCreateMessageListGlobalOnly() {
053
054 UIMessages component = new UIMessages();
055 component.setGlobalOnly(true);
056 List<UIMessages.Item> messages = component.createMessageList(getFacesContext());
057
058 Assert.assertEquals(1, messages.size());
059 }
060
061 @Test
062 public void testCreateMessageListForId0() {
063
064 UIMessages component = new UIMessages();
065 component.setFor("id0");
066 List<UIMessages.Item> messages = component.createMessageList(getFacesContext());
067
068 Assert.assertEquals(2, messages.size());
069 }
070
071 @Test
072 public void testCreateMessageListInfoToWarn() {
073
074 UIMessages component = new UIMessages();
075 component.setMaxSeverity(FacesMessage.SEVERITY_WARN);
076 List<UIMessages.Item> messages = component.createMessageList(getFacesContext());
077
078 Assert.assertEquals(2, messages.size());
079 }
080
081 @Test
082 public void testCreateMessageListWarnToError() {
083
084 UIMessages component = new UIMessages();
085 component.setMinSeverity(FacesMessage.SEVERITY_WARN);
086 component.setMaxSeverity(FacesMessage.SEVERITY_ERROR);
087 List<UIMessages.Item> messages = component.createMessageList(getFacesContext());
088
089 Assert.assertEquals(2, messages.size());
090 }
091
092 @Test
093 public void testCreateMessageListErrorToFatal() {
094
095 UIMessages component = new UIMessages();
096 component.setMinSeverity(FacesMessage.SEVERITY_ERROR);
097 List<UIMessages.Item> messages = component.createMessageList(getFacesContext());
098
099 Assert.assertEquals(3, messages.size());
100 }
101
102 @Test
103 public void testCreateMessageListMaxNumber() {
104
105 UIMessages component = new UIMessages();
106
107 component.setMaxNumber(3);
108 List<UIMessages.Item> messages = component.createMessageList(getFacesContext());
109 Assert.assertEquals(3, messages.size());
110
111 component.setMaxNumber(30000);
112 messages = component.createMessageList(getFacesContext());
113 Assert.assertEquals(5, messages.size());
114 }
115
116 @Test
117 public void testCreateMessageListOrderBySeverity() {
118
119 UIMessages component = new UIMessages();
120 component.setOrderBy(UIMessages.OrderBy.SEVERITY);
121 List<UIMessages.Item> messages = component.createMessageList(getFacesContext());
122
123 int mustShrink = FacesMessage.SEVERITY_FATAL.getOrdinal();
124 for (UIMessages.Item message : messages) {
125 int newValue = message.getFacesMessage().getSeverity().getOrdinal();
126 Assert.assertTrue(mustShrink >= newValue);
127 mustShrink = newValue;
128 }
129 }
130
131 @Test
132 public void testOrderByEnum() {
133 Assert.assertEquals(2, UIMessages.OrderBy.values().length);
134 Assert.assertEquals(UIMessages.OrderBy.OCCURRENCE, UIMessages.OrderBy.parse(UIMessages.OrderBy.OCCURRENCE_STRING));
135 Assert.assertEquals(UIMessages.OrderBy.SEVERITY, UIMessages.OrderBy.parse(UIMessages.OrderBy.SEVERITY_STRING));
136 }
137
138 }