1
2
3
4
5
6 package org.weda.message;
7
8 import java.util.List;
9 import java.util.Locale;
10 import org.apache.hivemind.service.ThreadLocale;
11 import org.weda.test.WedaTestCase;
12 import org.weda.message.impl.MessageCategory;
13 import org.weda.message.impl.MessageElement;
14 import org.weda.message.impl.MessagesSubset;
15
16 /**
17 *
18 * @author Mikhail Titov
19 */
20 public class MessagesImplTest extends WedaTestCase{
21
22 public MessagesImplTest(String name) throws Exception {
23 super(name);
24 }
25
26 public void test_configuration() throws Exception {
27 MessageImplTest test = new MessageImplTest("message-test");
28
29 List<MessageCategory> messages = (List<MessageCategory>)
30 registry.getConfiguration("org.weda.message.Messages");
31 assertNotNull(messages);
32 assertTrue(messages.size()>=2);
33
34 Message message = findMessageByKey("tests:test:message1", messages);
35 assertNotNull(message);
36 message.init();
37 test.checkMessage(message);
38
39 message = findMessageByKey("tests:test:message2", messages);
40 assertNotNull(message);
41 message.init();
42 test.checkDefaultMessage(message);
43
44 message = findMessageByKey("tests:test:message3", messages);
45 assertNotNull(message);
46 message.init();
47 test.checkMissingMessage(message);
48 }
49
50 public void test_service() throws Exception {
51 Messages messages = (Messages)registry.getService(MessagesRegistry.class);
52 assertNotNull(messages);
53 Locale locale = new Locale("ru", "RU");
54 ThreadLocale threadLocale =
55 (ThreadLocale)registry.getService(ThreadLocale.class);
56 threadLocale.setLocale(locale);
57 assertEquals(
58 "тестовое сообщение"
59 , messages.getMessage("tests:test:message1"));
60 assertEquals(
61 "[UNKNOWN_MESSAGE_KEY]"
62 , messages.getMessage("unknown_message_key"));
63 assertEquals(
64 "formated message 1"
65 , messages.format("tests:test:formated-message", 1));
66 assertEquals(
67 "тестовое сообщение"
68 , messages.replaceInPlace("message:tests:test:message1"));
69 assertEquals(
70 "in place test message"
71 , messages.replaceInPlace("in place test message"));
72 }
73
74 public void test_messagesSubset() throws Exception {
75 Messages messages = (Messages)registry.getService(MessagesRegistry.class);
76 Locale locale = new Locale("ru", "RU");
77 ThreadLocale threadLocale =
78 (ThreadLocale)registry.getService(ThreadLocale.class);
79 threadLocale.setLocale(locale);
80 MessagesSubset subset =
81 new MessagesSubset(messages, "test-actions");
82 MessagesSubset subset2 = new MessagesSubset(subset, "SimpleAction");
83 assertEquals("actions message", subset2.getMessage("message1"));
84 assertEquals(
85 "actions message", subset2.replaceInPlace("message:message1"));
86 assertEquals("simple action name", subset2.getMessage("name"));
87 assertEquals(
88 "simple action name", subset2.replaceInPlace("message:name"));
89 }
90
91 public void test_classElement() throws Exception {
92 Messages messages = (Messages)registry.getService(MessagesRegistry.class);
93 messages = new MessagesSubset(messages, "test-objects");
94 messages = new MessagesSubset(messages, TestObject.class.getName());
95 String message = messages.getMessage("someProperty");
96 assertNotNull(message);
97 assertEquals("test message", message);
98 }
99
100 public void test_messagesProvider() throws Exception {
101 MessagesRegistry messages =
102 (MessagesRegistry)registry.getService(MessagesRegistry.class);
103 Messages classMessages =
104 messages.getMessagesForObject(new TestObject());
105 assertNotNull(classMessages);
106 assertEquals("test message", classMessages.getMessage("someProperty"));
107 }
108
109 private Message findMessageByKey(
110 String messageKey, List<MessageCategory> config)
111 {
112 for (MessageCategory category: config)
113 for (MessageElement element: category.getMessageElements())
114 for (Message mess: element.getMessages())
115 if (messageKey.equals(
116 category.getName()+":"+element.getName()+":"
117 +mess.getKey()))
118 {
119 return mess;
120 }
121 return null;
122 }
123
124
125 }