1   
2   /*
3    * DefaultMessageTest.java
4    * Created on 5 Март 2006 г., 9:51
5    */
6   
7   package org.weda.message;
8   
9   import java.util.Locale;
10  import junit.framework.TestCase;
11  import org.weda.message.impl.MessageImpl;
12  import org.weda.message.impl.MessageEntryImpl;
13  
14  /**
15   *
16   * @author Mikhail Titov
17   */
18  public class MessageImplTest extends TestCase {
19      
20      public MessageImplTest(String name) {
21          super(name);
22      }
23      
24      public void test() throws Exception {
25          MessageImpl message = new MessageImpl();
26          message.setKey("message");
27          message.addMessageEntry(
28                  createEntry("тестовое сообщение", "ru", "RU"));
29          message.addMessageEntry(
30                  createEntry("test message UZ", "uz", null));
31          message.addMessageEntry(
32                  createEntry("test message", "en", null));
33          message.addMessageEntry(
34                  createEntry("test message US", "en", "US"));
35          message.init();
36          checkMessage(message);
37      }
38      
39      public void test_defaultMessage() throws Exception {
40          MessageImpl message = new MessageImpl();
41          message.setDefaultMessage("default message");
42          message.setKey("message2");
43          message.init();
44          checkDefaultMessage(message);
45      }
46      
47      public void test_missingMessage() throws Exception {
48          MessageImpl message = new MessageImpl();
49          message.setKey("message3");
50          message.init();
51          checkMissingMessage(message);
52      }
53      
54      public void _test_showLanguagesAndCountries() {
55          System.out.println("Languages: ");
56          for (String language: Locale.getISOLanguages())
57              System.out.println("  "+language);
58          System.out.println("Countries: ");
59          for (String country: Locale.getISOCountries())
60              System.out.println("  "+country);
61      }
62      
63      private MessageEntry createEntry(
64              String message, String language, String country)
65      {
66          MessageEntryImpl entry = new MessageEntryImpl();
67          entry.setMessage(message);
68          entry.setLanguage(language);
69          entry.setCountry(country);
70          return entry;
71      }
72      
73      public void checkDefaultMessage(Message message) throws Exception {
74          Locale locale = new Locale("ru");
75          assertEquals("default message", message.getLocalizedMessage(locale));
76      }
77      
78      public void checkMissingMessage(Message message) throws Exception {
79          Locale locale = new Locale("ru");
80          assertEquals(
81                  "["+message.getKey().toUpperCase()+"]"
82                  , message.getLocalizedMessage(locale));
83      }
84      
85      public void checkMessage(Message message) throws Exception {
86          Locale locale = new Locale("ru", "RU");
87          assertEquals(
88                  "тестовое сообщение", message.getLocalizedMessage(locale));
89          locale = new Locale("ru");
90          assertEquals("", locale.getCountry());
91          assertEquals(
92                  "тестовое сообщение", message.getLocalizedMessage(locale));
93          locale = new Locale("en");
94          assertEquals(
95                  "test message", message.getLocalizedMessage(locale));
96          locale = new Locale("en", "US");
97          assertEquals(
98                  "test message US", message.getLocalizedMessage(locale));
99          locale = new Locale("uz");
100         assertEquals(
101                 "test message UZ", message.getLocalizedMessage(locale));
102     }
103     
104 }