1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.myfaces.tobago.component;
21
22 import org.apache.myfaces.tobago.internal.config.AbstractTobagoTestBase;
23 import org.apache.myfaces.tobago.layout.OrderBy;
24 import org.junit.jupiter.api.Assertions;
25 import org.junit.jupiter.api.BeforeEach;
26 import org.junit.jupiter.api.Test;
27
28 import javax.faces.application.FacesMessage;
29 import javax.faces.context.FacesContext;
30 import java.util.List;
31
32 public class UIMessagesUnitTest extends AbstractTobagoTestBase {
33
34 @Override
35 @BeforeEach
36 public void setUp() throws Exception {
37 super.setUp();
38 final FacesContext facesContext = getFacesContext();
39 facesContext.addMessage("id0", new FacesMessage(FacesMessage.SEVERITY_INFO, "test", "a test"));
40 facesContext.addMessage("id0", new FacesMessage(FacesMessage.SEVERITY_WARN, "test", "a test"));
41 facesContext.addMessage("id1", new FacesMessage(FacesMessage.SEVERITY_ERROR, "test", "a test"));
42 facesContext.addMessage("id1", new FacesMessage(FacesMessage.SEVERITY_FATAL, "test", "a test"));
43 facesContext.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_FATAL, "test", "a test"));
44 }
45
46 @Test
47 public void testCreateMessageListAll() {
48
49 final UIMessages component = new UIMessages();
50 final List<UIMessages.Item> messages = component.createMessageList(getFacesContext());
51
52 Assertions.assertEquals(5, messages.size());
53 }
54
55 @Test
56 public void testCreateMessageListGlobalOnly() {
57
58 final UIMessages component = new UIMessages();
59 component.setGlobalOnly(true);
60 final List<UIMessages.Item> messages = component.createMessageList(getFacesContext());
61
62 Assertions.assertEquals(1, messages.size());
63 }
64
65 @Test
66 public void testCreateMessageListForId0() {
67
68 final UIMessages component = new UIMessages();
69 component.setFor("id0");
70 final List<UIMessages.Item> messages = component.createMessageList(getFacesContext());
71
72 Assertions.assertEquals(2, messages.size());
73 }
74
75 @Test
76 public void testCreateMessageListInfoToWarn() {
77
78 final UIMessages component = new UIMessages();
79 component.setMaxSeverity(FacesMessage.SEVERITY_WARN);
80 final List<UIMessages.Item> messages = component.createMessageList(getFacesContext());
81
82 Assertions.assertEquals(2, messages.size());
83 }
84
85 @Test
86 public void testCreateMessageListWarnToError() {
87
88 final UIMessages component = new UIMessages();
89 component.setMinSeverity(FacesMessage.SEVERITY_WARN);
90 component.setMaxSeverity(FacesMessage.SEVERITY_ERROR);
91 final List<UIMessages.Item> messages = component.createMessageList(getFacesContext());
92
93 Assertions.assertEquals(2, messages.size());
94 }
95
96 @Test
97 public void testCreateMessageListErrorToFatal() {
98
99 final UIMessages component = new UIMessages();
100 component.setMinSeverity(FacesMessage.SEVERITY_ERROR);
101 final List<UIMessages.Item> messages = component.createMessageList(getFacesContext());
102
103 Assertions.assertEquals(3, messages.size());
104 }
105
106 @Test
107 public void testCreateMessageListMaxNumber() {
108
109 final UIMessages component = new UIMessages();
110
111 component.setMaxNumber(3);
112 List<UIMessages.Item> messages = component.createMessageList(getFacesContext());
113 Assertions.assertEquals(3, messages.size());
114
115 component.setMaxNumber(30000);
116 messages = component.createMessageList(getFacesContext());
117 Assertions.assertEquals(5, messages.size());
118 }
119
120 @Test
121 public void testCreateMessageListOrderBySeverity() {
122
123 final UIMessages component = new UIMessages();
124 component.setOrderBy(OrderBy.severity);
125 final List<UIMessages.Item> messages = component.createMessageList(getFacesContext());
126
127 int mustShrink = FacesMessage.SEVERITY_FATAL.getOrdinal();
128 for (final UIMessages.Item message : messages) {
129 final int newValue = message.getFacesMessage().getSeverity().getOrdinal();
130 Assertions.assertTrue(mustShrink >= newValue);
131 mustShrink = newValue;
132 }
133 }
134 }