73308f54e60e4cdb893e8b02955497e8f45b5893jeff.schenk/*
73308f54e60e4cdb893e8b02955497e8f45b5893jeff.schenk * CDDL HEADER START
73308f54e60e4cdb893e8b02955497e8f45b5893jeff.schenk *
73308f54e60e4cdb893e8b02955497e8f45b5893jeff.schenk * The contents of this file are subject to the terms of the
73308f54e60e4cdb893e8b02955497e8f45b5893jeff.schenk * Common Development and Distribution License, Version 1.0 only
73308f54e60e4cdb893e8b02955497e8f45b5893jeff.schenk * (the "License"). You may not use this file except in compliance
73308f54e60e4cdb893e8b02955497e8f45b5893jeff.schenk * with the License.
73308f54e60e4cdb893e8b02955497e8f45b5893jeff.schenk *
73308f54e60e4cdb893e8b02955497e8f45b5893jeff.schenk * You can obtain a copy of the license at legal-notices/CDDLv1_0.txt
73308f54e60e4cdb893e8b02955497e8f45b5893jeff.schenk * or http://forgerock.org/license/CDDLv1.0.html.
73308f54e60e4cdb893e8b02955497e8f45b5893jeff.schenk * See the License for the specific language governing permissions
73308f54e60e4cdb893e8b02955497e8f45b5893jeff.schenk * and limitations under the License.
73308f54e60e4cdb893e8b02955497e8f45b5893jeff.schenk *
73308f54e60e4cdb893e8b02955497e8f45b5893jeff.schenk * When distributing Covered Code, include this CDDL HEADER in each
73308f54e60e4cdb893e8b02955497e8f45b5893jeff.schenk * file and include the License file at legal-notices/CDDLv1_0.txt.
73308f54e60e4cdb893e8b02955497e8f45b5893jeff.schenk * If applicable, add the following below this CDDL HEADER, with the
73308f54e60e4cdb893e8b02955497e8f45b5893jeff.schenk * fields enclosed by brackets "[]" replaced with your own identifying
73308f54e60e4cdb893e8b02955497e8f45b5893jeff.schenk * information:
73308f54e60e4cdb893e8b02955497e8f45b5893jeff.schenk * Portions Copyright [yyyy] [name of copyright owner]
73308f54e60e4cdb893e8b02955497e8f45b5893jeff.schenk *
73308f54e60e4cdb893e8b02955497e8f45b5893jeff.schenk * CDDL HEADER END
73308f54e60e4cdb893e8b02955497e8f45b5893jeff.schenk *
73308f54e60e4cdb893e8b02955497e8f45b5893jeff.schenk *
73308f54e60e4cdb893e8b02955497e8f45b5893jeff.schenk * Copyright 2007-2008 Sun Microsystems, Inc.
73308f54e60e4cdb893e8b02955497e8f45b5893jeff.schenk */
73308f54e60e4cdb893e8b02955497e8f45b5893jeff.schenk
fb98811412f1a61efdc30b38091bf4708148a806Allan Fosterpackage org.opends.messages;
4c0f084e476c05989eb702c500a763ef09ba044ejeff.schenk
fb98811412f1a61efdc30b38091bf4708148a806Allan Fosterimport static org.testng.Assert.*;
fb98811412f1a61efdc30b38091bf4708148a806Allan Fosterimport org.testng.annotations.BeforeClass;
6e153e9671eb382c49354ab856404a71477cce58jeff.schenkimport org.testng.annotations.DataProvider;
fb98811412f1a61efdc30b38091bf4708148a806Allan Fosterimport org.testng.annotations.Test;
fb98811412f1a61efdc30b38091bf4708148a806Allan Foster
fb98811412f1a61efdc30b38091bf4708148a806Allan Fosterimport java.io.IOException;
fb98811412f1a61efdc30b38091bf4708148a806Allan Fosterimport java.util.Locale;
fb98811412f1a61efdc30b38091bf4708148a806Allan Foster
fb98811412f1a61efdc30b38091bf4708148a806Allan Foster/**
fb98811412f1a61efdc30b38091bf4708148a806Allan Foster * Message Tester.
fb98811412f1a61efdc30b38091bf4708148a806Allan Foster */
fb98811412f1a61efdc30b38091bf4708148a806Allan Fosterpublic class MessageBuilderTest extends MessagesTestCase {
fb98811412f1a61efdc30b38091bf4708148a806Allan Foster
fb98811412f1a61efdc30b38091bf4708148a806Allan Foster @BeforeClass
fb98811412f1a61efdc30b38091bf4708148a806Allan Foster public void setUp() throws IOException {
fb98811412f1a61efdc30b38091bf4708148a806Allan Foster createDummyLocalizedCoreMessagesFile();
fb98811412f1a61efdc30b38091bf4708148a806Allan Foster }
fb98811412f1a61efdc30b38091bf4708148a806Allan Foster
fb98811412f1a61efdc30b38091bf4708148a806Allan Foster
fb98811412f1a61efdc30b38091bf4708148a806Allan Foster @DataProvider(name = "toMessageData")
fb98811412f1a61efdc30b38091bf4708148a806Allan Foster public Object[][] toMessageData() {
fb98811412f1a61efdc30b38091bf4708148a806Allan Foster return new Object[][]{
fb98811412f1a61efdc30b38091bf4708148a806Allan Foster
fb98811412f1a61efdc30b38091bf4708148a806Allan Foster // All strings
fb98811412f1a61efdc30b38091bf4708148a806Allan Foster { new CharSequence[] {
fb98811412f1a61efdc30b38091bf4708148a806Allan Foster "Once", " upon", " a", " time." },
fb98811412f1a61efdc30b38091bf4708148a806Allan Foster "Once upon a time." },
fb98811412f1a61efdc30b38091bf4708148a806Allan Foster
fb98811412f1a61efdc30b38091bf4708148a806Allan Foster // All messages
fb98811412f1a61efdc30b38091bf4708148a806Allan Foster { new CharSequence[] {
fb98811412f1a61efdc30b38091bf4708148a806Allan Foster Message.raw("Once"),
fb98811412f1a61efdc30b38091bf4708148a806Allan Foster Message.raw(" upon"),
fb98811412f1a61efdc30b38091bf4708148a806Allan Foster Message.raw(" a"),
73308f54e60e4cdb893e8b02955497e8f45b5893jeff.schenk Message.raw(" time.") },
fb98811412f1a61efdc30b38091bf4708148a806Allan Foster "Once upon a time." },
fb98811412f1a61efdc30b38091bf4708148a806Allan Foster
fb98811412f1a61efdc30b38091bf4708148a806Allan Foster // Mix of strings and messages
fb98811412f1a61efdc30b38091bf4708148a806Allan Foster { new CharSequence[] {
fb98811412f1a61efdc30b38091bf4708148a806Allan Foster Message.raw("Once"),
fb98811412f1a61efdc30b38091bf4708148a806Allan Foster " upon",
fb98811412f1a61efdc30b38091bf4708148a806Allan Foster Message.raw(" a"),
fb98811412f1a61efdc30b38091bf4708148a806Allan Foster " time." },
fb98811412f1a61efdc30b38091bf4708148a806Allan Foster "Once upon a time." },
fb98811412f1a61efdc30b38091bf4708148a806Allan Foster
fb98811412f1a61efdc30b38091bf4708148a806Allan Foster // Lots of messages
fb98811412f1a61efdc30b38091bf4708148a806Allan Foster { new CharSequence[] {
fb98811412f1a61efdc30b38091bf4708148a806Allan Foster Message.raw("North"),
fb98811412f1a61efdc30b38091bf4708148a806Allan Foster Message.raw(" America"),
fb98811412f1a61efdc30b38091bf4708148a806Allan Foster Message.raw(" is"),
fb98811412f1a61efdc30b38091bf4708148a806Allan Foster Message.raw(" divided"),
fb98811412f1a61efdc30b38091bf4708148a806Allan Foster Message.raw(" into"),
fb98811412f1a61efdc30b38091bf4708148a806Allan Foster Message.raw(" two"),
fb98811412f1a61efdc30b38091bf4708148a806Allan Foster Message.raw(" vast"),
fb98811412f1a61efdc30b38091bf4708148a806Allan Foster Message.raw(" regions,"),
fb98811412f1a61efdc30b38091bf4708148a806Allan Foster Message.raw(" one"),
fb98811412f1a61efdc30b38091bf4708148a806Allan Foster Message.raw(" inclining"),
fb98811412f1a61efdc30b38091bf4708148a806Allan Foster Message.raw(" towards"),
fb98811412f1a61efdc30b38091bf4708148a806Allan Foster Message.raw(" the"),
fb98811412f1a61efdc30b38091bf4708148a806Allan Foster Message.raw(" Pole,"),
fb98811412f1a61efdc30b38091bf4708148a806Allan Foster Message.raw(" the"),
fb98811412f1a61efdc30b38091bf4708148a806Allan Foster Message.raw(" other"),
fb98811412f1a61efdc30b38091bf4708148a806Allan Foster Message.raw(" towards"),
73308f54e60e4cdb893e8b02955497e8f45b5893jeff.schenk Message.raw(" the"),
73308f54e60e4cdb893e8b02955497e8f45b5893jeff.schenk Message.raw(" Equator--Valley"),
73308f54e60e4cdb893e8b02955497e8f45b5893jeff.schenk Message.raw(" of"),
73308f54e60e4cdb893e8b02955497e8f45b5893jeff.schenk Message.raw(" the"),
73308f54e60e4cdb893e8b02955497e8f45b5893jeff.schenk Message.raw(" Mississippi--Traces"),
73308f54e60e4cdb893e8b02955497e8f45b5893jeff.schenk Message.raw(" found"),
73308f54e60e4cdb893e8b02955497e8f45b5893jeff.schenk Message.raw(" there"),
73308f54e60e4cdb893e8b02955497e8f45b5893jeff.schenk Message.raw(" of"),
73308f54e60e4cdb893e8b02955497e8f45b5893jeff.schenk Message.raw(" the"),
73308f54e60e4cdb893e8b02955497e8f45b5893jeff.schenk Message.raw(" revolutions"),
73308f54e60e4cdb893e8b02955497e8f45b5893jeff.schenk Message.raw(" of"),
73308f54e60e4cdb893e8b02955497e8f45b5893jeff.schenk Message.raw(" the"),
73308f54e60e4cdb893e8b02955497e8f45b5893jeff.schenk Message.raw(" globe"),
fb98811412f1a61efdc30b38091bf4708148a806Allan Foster Message.raw(" --Shore"),
Message.raw(" of"),
Message.raw(" the"),
Message.raw(" Atlantic"),
Message.raw(" Ocean,"),
Message.raw(" on"),
Message.raw(" which"),
Message.raw(" the"),
Message.raw(" English"),
Message.raw(" colonies"),
Message.raw(" were"),
Message.raw(" founded--Different"),
Message.raw(" aspects"),
Message.raw(" of"),
Message.raw(" North"),
Message.raw(" and"),
Message.raw(" of"),
Message.raw(" South"),
Message.raw(" America"),
Message.raw(" at"),
Message.raw(" the"),
Message.raw(" time"),
Message.raw(" of"),
Message.raw(" their"),
Message.raw(" discovery--Forests"),
Message.raw(" of"),
Message.raw(" North"),
Message.raw(" America"),
Message.raw(" --Prairies--Wandering"),
Message.raw(" tribes"),
Message.raw(" of"),
Message.raw(" natives--Their"),
Message.raw(" outward"),
Message.raw(" appearance,"),
Message.raw(" customs,"),
Message.raw(" and"),
Message.raw(" languages--Traces"),
Message.raw(" of"),
Message.raw(" an"),
Message.raw(" unknown"),
Message.raw(" people.") },
"North America is divided into two vast regions, one inclining towards the Pole," +
" the other towards the Equator--Valley of the Mississippi--Traces found there of" +
" the revolutions of the globe --Shore of the Atlantic Ocean, on which the English" +
" colonies were founded--Different aspects of North and of South America at the" +
" time of their discovery--Forests of North America --Prairies--Wandering tribes" +
" of natives--Their outward appearance, customs, and languages--Traces of an" +
" unknown people."
}
};
}
@Test (dataProvider = "toMessageData")
public void testToMessage(CharSequence[] content, String result)
{
MessageBuilder mb = new MessageBuilder();
for (CharSequence c : content) {
mb.append(c);
}
Message m = mb.toMessage();
assertTrue(result.equals(m.toString()));
}
@DataProvider(name = "toMessageData1")
public Object[][] toMessageData1() {
return new Object[][]{
// default locale
{ new CharSequence[] {
CoreMessages.ERR_ADD_CANNOT_ADD_ROOT_DSE.get(),
CoreMessages.ERR_ABANDON_OP_NO_SUCH_OPERATION.get(1) },
Locale.getDefault(),
CoreMessages.ERR_ADD_CANNOT_ADD_ROOT_DSE.get().toString() +
CoreMessages.ERR_ABANDON_OP_NO_SUCH_OPERATION.get(1).toString() },
{ new CharSequence[] {
CoreMessages.ERR_ADD_CANNOT_ADD_ROOT_DSE.get(),
CoreMessages.ERR_ABANDON_OP_NO_SUCH_OPERATION.get(1) },
TEST_LOCALE,
CoreMessages.ERR_ADD_CANNOT_ADD_ROOT_DSE.get().toString(TEST_LOCALE) +
CoreMessages.ERR_ABANDON_OP_NO_SUCH_OPERATION.get(1).toString(TEST_LOCALE) }
};
}
@Test (dataProvider = "toMessageData1")
public void testToMessage1(CharSequence[] content, Locale locale, String result)
{
MessageBuilder mb = new MessageBuilder();
for (CharSequence c : content) {
mb.append(c);
}
Message m = mb.toMessage();
assertTrue(result.equals(m.toString(locale)));
}
@DataProvider(name = "toMessageData2")
public Object[][] toMessageData2() {
return new Object[][] {
{
CoreMessages.ERR_ADD_CANNOT_ADD_ROOT_DSE.get(),
CoreMessages.ERR_ABANDON_OP_NO_SUCH_OPERATION.get(1),
CoreMessages.ERR_ADD_CANNOT_ADD_ROOT_DSE.getCategory(),
CoreMessages.ERR_ADD_CANNOT_ADD_ROOT_DSE.getSeverity()
},
{
Message.raw(Category.JEB, Severity.FATAL_ERROR, "test message"),
CoreMessages.ERR_ABANDON_OP_NO_SUCH_OPERATION.get(1),
Category.JEB,
Severity.FATAL_ERROR
},
{
Message.raw("test message"),
CoreMessages.ERR_ABANDON_OP_NO_SUCH_OPERATION.get(1),
Category.USER_DEFINED,
Severity.INFORMATION
}
};
}
@Test(dataProvider = "toMessageData2")
public void testToMessage2(Message m1, Message m2, Category c, Severity s) {
MessageBuilder mb = new MessageBuilder();
mb.append(m1);
mb.append(m2);
Message m = mb.toMessage();
assertEquals(m.getDescriptor().getCategory(), c);
assertEquals(m.getDescriptor().getSeverity(), s);
}
}