| | |
| | | |
| | | import org.testng.annotations.*; |
| | | import org.opends.server.DirectoryServerTestCase; |
| | | import org.opends.server.TestCaseUtils; |
| | | import static org.testng.Assert.*; |
| | | |
| | | import java.util.Locale; |
| | | import java.util.Properties; |
| | | import java.util.ResourceBundle; |
| | | import java.io.File; |
| | | import java.io.IOException; |
| | | import java.io.FileOutputStream; |
| | | |
| | | /** |
| | | * Message Tester. |
| | | */ |
| | | public class MessageTest extends DirectoryServerTestCase { |
| | | |
| | | //@BeforeClass |
| | | public void setUp() { |
| | | /** Locale for accessing a pseudo localized test messages file. */ |
| | | private static final Locale TEST_LOCALE = Locale.CHINA; |
| | | |
| | | /** Message to appear in pseudo localized test messages file. */ |
| | | private static final String TEST_MSG = "XXX"; |
| | | |
| | | @BeforeClass |
| | | public void setUp() throws IOException { |
| | | createDummyLocalizedCoreMessagesFile(); |
| | | } |
| | | |
| | | @DataProvider(name = "rawData") |
| | |
| | | {"Hel%nlo", "Hel\nlo", new Object[]{}}, |
| | | {"Hel%Dlo", "Hel%Dlo", new Object[]{}}, |
| | | {"Hel%Dlo", "Hel%Dlo", new Object[]{ "abc"}}, |
| | | |
| | | // %d and String arg mismatch |
| | | {"Hel%dlo", "Hel%dlo", new Object[]{ "abc"}}, |
| | | }; |
| | | } |
| | | |
| | |
| | | @Test(dataProvider = "rawData") |
| | | public void testRaw(String fmt, String result, Object... args) { |
| | | Message message = Message.raw(fmt, args); |
| | | assert (message.toString().equals(result)); |
| | | assert (message.toString(Locale.CHINESE).equals(result)); |
| | | assertTrue(message.toString().equals(result)); |
| | | assertTrue(message.toString(TEST_LOCALE).equals(result)); |
| | | } |
| | | |
| | | @Test(dataProvider = "rawData1") |
| | | public void testRaw1(String fmt, Category c, Severity s, |
| | | String result, Object... args) { |
| | | Message message = Message.raw(c, s, fmt, args); |
| | | assert (message.toString().equals(result)); |
| | | assert (message.toString(Locale.CHINESE).equals(result)); |
| | | assertTrue(message.toString().equals(result)); |
| | | assertTrue(message.toString(TEST_LOCALE).equals(result)); |
| | | } |
| | | |
| | | //@Test |
| | | public void testToString() { |
| | | //TODO: Test goes here... |
| | | assert false : "testToString not implemented."; |
| | | @DataProvider(name = "messages") |
| | | public Object[][] getMessages() { |
| | | return new Object[][] |
| | | { |
| | | { Message.raw("Hi Ho") }, |
| | | { Message.raw("Hi Ho %n") }, |
| | | { Message.raw("Hi Ho %%") }, |
| | | { Message.raw("Hi Ho %s", new Object[]{null}) }, |
| | | { Message.raw("Hi Ho", "Hum") }, |
| | | { Message.raw("Hi Ho %s", "Hum") }, |
| | | { Message.raw("Hi Ho %d", "Hum") }, |
| | | { Message.raw("Hi Ho %c", "Hum") }, |
| | | { Message.raw("Hi Ho %d", "Hum") }, |
| | | { CoreMessages.ERR_ADD_CANNOT_ADD_ROOT_DSE.get() }, |
| | | { CoreMessages.ERR_ABANDON_OP_NO_SUCH_OPERATION.get(1) }, |
| | | { CoreMessages.ERR_ABANDON_OP_NO_SUCH_OPERATION.get(null) }, |
| | | { CoreMessages.ERR_ADD_CANNOT_ADD_ROOT_DSE.get() } |
| | | }; |
| | | } |
| | | |
| | | //@Test |
| | | public void testToString1() { |
| | | //TODO: Test goes here... |
| | | assert false : "testToString1 not implemented."; |
| | | @DataProvider(name = "localizableMessages") |
| | | public Object[][] getLocalizableMessages() { |
| | | return new Object[][] |
| | | { |
| | | { CoreMessages.ERR_ADD_CANNOT_ADD_ROOT_DSE.get() }, |
| | | { CoreMessages.ERR_ABANDON_OP_NO_SUCH_OPERATION.get(1) }, |
| | | { CoreMessages.ERR_ABANDON_OP_NO_SUCH_OPERATION.get(null) }, |
| | | { CoreMessages.ERR_ADD_CANNOT_ADD_ROOT_DSE.get() } |
| | | }; |
| | | } |
| | | |
| | | @Test(dataProvider = "messages") |
| | | public void testToString(Message msg) { |
| | | assertNotNull(msg.toString()); |
| | | } |
| | | |
| | | @Test(dataProvider = "localizableMessages") |
| | | public void testToString1(Message msg) throws IOException { |
| | | assertEquals(msg.toString(TEST_LOCALE), TEST_MSG); |
| | | } |
| | | |
| | | @Test(dataProvider = "rawData1") |
| | |
| | | assert(desc2.getSeverity().equals(Severity.INFORMATION)); |
| | | } |
| | | |
| | | private void createDummyLocalizedCoreMessagesFile() throws IOException { |
| | | Properties corePseudoI18nMsgs = new Properties(); |
| | | ResourceBundle coreDefaultMsgs = ResourceBundle.getBundle("messages/core"); |
| | | for (Object key : coreDefaultMsgs.keySet()) { |
| | | corePseudoI18nMsgs.put(key, TEST_MSG); |
| | | } |
| | | File buildRoot = new File(System.getProperty(TestCaseUtils.PROPERTY_BUILD_ROOT)); |
| | | File corePseudoI18nMsgsFile = new File(buildRoot, |
| | | "build" + File.separator + "unit-tests" + |
| | | File.separator + "classes" + |
| | | File.separator + "messages" + |
| | | File.separator + "core_" + TEST_LOCALE.getLanguage() + |
| | | ".properties"); |
| | | if (!corePseudoI18nMsgsFile.getParentFile().exists()) { |
| | | corePseudoI18nMsgsFile.getParentFile().mkdirs(); |
| | | } |
| | | corePseudoI18nMsgs.store(new FileOutputStream(corePseudoI18nMsgsFile), ""); |
| | | } |
| | | |
| | | } |