/*
* JBoss, Home of Professional Open Source.
*
* See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing.
*
* See the AUTHORS.txt file distributed with this work for a full listing of individual contributors.
*/
package org.teiid.core.designer.util;
import java.util.Arrays;
import java.util.List;
import java.util.ResourceBundle;
import junit.extensions.TestSetup;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import org.teiid.core.designer.CoreModelerPlugin;
/**
* TestPluginUtilImpl
*/
public class TestPluginUtilImpl extends TestCase {
public static final String PLUGIN_ID = CoreModelerPlugin.PLUGIN_ID;
public static final String I18N_NAME = TestPluginUtilImpl.class.getPackage().getName() + ".testResourceBundleUtil"; //$NON-NLS-1$
public static String KEY1 = "key1"; //$NON-NLS-1$
public static String KEY2 = "key2"; //$NON-NLS-1$
public static String KEY_WITH_ONE_PARAM = "key_with_one_param"; //$NON-NLS-1$
public static String KEY_WITH_TWO_PARAMS = "key_with_two_params"; //$NON-NLS-1$
public static String KEY_FOR_DOUBLE_QUOTES = "key_for_string_with_double_quotes"; //$NON-NLS-1$
public static String ACTUAL_FOR_KEY1 = "This is the string for key1"; //$NON-NLS-1$
public static String ACTUAL_FOR_KEY2 = "This is the string for key2"; //$NON-NLS-1$
public static String ACTUAL_FOR_KEY_FOR_DOUBLE_QUOTES = "This is the 'string' that contains double quotes: "; //$NON-NLS-1$
public static final Object PARAM1 = new Integer(1);
public static final Object PARAM2 = "Param2"; //$NON-NLS-1$
public static final Object PARAM3 = new Character('c');
public static final List LIST_WITH_ONE_PARAM = Arrays.asList(new Object[] {PARAM1});
public static final List LIST_WITH_TWO_PARAMS = Arrays.asList(new Object[] {PARAM1, PARAM2});
public static final List LIST_WITH_THREE_PARAMS = Arrays.asList(new Object[] {PARAM1, PARAM2, PARAM3});
public static final List LIST_WITH_TWO_COMPLEX_PARAMS = Arrays.asList(new Object[] {KEY1, PARAM2});
public static final Object OBJECT_WITH_TWO_PARAMS = new Object[] {PARAM1, PARAM2};
public static final Object[] OBJECT_ARRAY_WITH_TWO_PARAMS = new Object[] {PARAM1, PARAM2};
private PluginUtilImpl util;
/**
* Constructor for TestPluginUtilImpl.
*
* @param name
*/
public TestPluginUtilImpl( String name ) {
super(name);
}
/*
* @see TestCase#setUp()
*/
@Override
protected void setUp() throws Exception {
super.setUp();
util = new PluginUtilImpl(PLUGIN_ID, I18N_NAME, ResourceBundle.getBundle(I18N_NAME));
}
/*
* @see TestCase#tearDown()
*/
@Override
protected void tearDown() throws Exception {
super.tearDown();
}
/**
* Test suite, with one-time setup.
*/
public static Test suite() {
TestSuite suite = new TestSuite("TestPluginUtilImpl"); //$NON-NLS-1$
suite.addTestSuite(TestPluginUtilImpl.class);
// One-time setup and teardown
return new TestSetup(suite) {
@Override
public void setUp() {
}
@Override
public void tearDown() {
}
};
}
// =========================================================================
// H E L P E R M E T H O D S
// =========================================================================
public void helpTestGetString( final String key,
final String expected ) {
final String actual = util.getString(key);
if (actual == null && expected == null) {
return;
}
if ((actual != null && !actual.equals(expected)) || (expected != null && !expected.equals(actual))) {
fail("Expected compare to return \"" + expected + //$NON-NLS-1$
"\" but actual was \"" + actual + //$NON-NLS-1$
"\""); //$NON-NLS-1$
}
}
public void helpTestGetString( final String key,
final List params,
final String expected ) {
final String actual = util.getString(key, params);
if (actual == null && expected == null) {
return;
}
if ((actual != null && !actual.equals(expected)) || (expected != null && !expected.equals(actual))) {
fail("Expected compare to return \"" + expected + //$NON-NLS-1$
"\" but actual was \"" + actual + //$NON-NLS-1$
"\""); //$NON-NLS-1$
}
}
public void helpTestGetString( final String key,
final Object params,
final String expected ) {
final String actual = util.getString(key, params);
if (actual == null && expected == null) {
return;
}
if ((actual != null && !actual.equals(expected)) || (expected != null && !expected.equals(actual))) {
fail("Expected compare to return \"" + expected + //$NON-NLS-1$
"\" but actual was \"" + actual + //$NON-NLS-1$
"\""); //$NON-NLS-1$
}
}
// =========================================================================
// T E S T C A S E S
// =========================================================================
public void testGetStringWithNullKey() {
helpTestGetString(null, "<No message available>"); //$NON-NLS-1$
}
public void testGetStringWithNullKeyAndNullList() {
helpTestGetString(null, (List)null, "<No message available>"); //$NON-NLS-1$
}
public void testGetStringWithKey1AndNullList() {
helpTestGetString(KEY1, null, ACTUAL_FOR_KEY1);
}
public void testGetStringWithKey2AndNullList() {
helpTestGetString(KEY2, null, ACTUAL_FOR_KEY2);
}
public void testGetStringWithDoubleQuotesAndListOfOneParam() {
helpTestGetString(KEY_FOR_DOUBLE_QUOTES, LIST_WITH_ONE_PARAM, ACTUAL_FOR_KEY_FOR_DOUBLE_QUOTES + "'" + //$NON-NLS-1$
PARAM1 + "'"); //$NON-NLS-1$
}
public void testGetStringWithKey3AndNullList() {
helpTestGetString(KEY_WITH_ONE_PARAM, null, "This string has 1 parameter: {0}"); //$NON-NLS-1$
}
public void testGetStringWithKey4AndNullList() {
helpTestGetString(KEY_WITH_TWO_PARAMS, null, "This string has 2 parameters: {0} and {1}"); //$NON-NLS-1$
}
public void testGetStringWithKey3AndListOfOneParam() {
helpTestGetString(KEY_WITH_ONE_PARAM, LIST_WITH_ONE_PARAM, "This string has 1 parameter: " + PARAM1); //$NON-NLS-1$
}
public void testGetStringWithKey4AndListOfOneParam() {
helpTestGetString(KEY_WITH_TWO_PARAMS, LIST_WITH_ONE_PARAM, "This string has 2 parameters: " + PARAM1 + //$NON-NLS-1$
" and {1}"); //$NON-NLS-1$
}
public void testGetStringWithKey4AndListOfTwoParams() {
helpTestGetString(KEY_WITH_TWO_PARAMS, LIST_WITH_TWO_PARAMS, "This string has 2 parameters: " + PARAM1 + //$NON-NLS-1$
" and " + PARAM2); //$NON-NLS-1$
}
public void testGetStringWithKey4AndListOfTooManyParams() {
helpTestGetString(KEY_WITH_TWO_PARAMS, LIST_WITH_THREE_PARAMS, "This string has 2 parameters: " + PARAM1 + //$NON-NLS-1$
" and " + PARAM2); //$NON-NLS-1$
}
/**
* This method tests that the getString does <i>not</i> localize parameters before insertion.
*/
public void testGetStringWithKey4AndListOfTwoComplexParams() {
helpTestGetString(KEY_WITH_TWO_PARAMS, LIST_WITH_TWO_COMPLEX_PARAMS, "This string has 2 parameters: " + KEY1 + //$NON-NLS-1$
" and " + PARAM2); //$NON-NLS-1$
}
public void testGetStringWithArrayAsObject() {
helpTestGetString(KEY_WITH_TWO_PARAMS, OBJECT_WITH_TWO_PARAMS, "This string has 2 parameters: " + PARAM1 + //$NON-NLS-1$
" and " + PARAM2); //$NON-NLS-1$
}
public void testGetStringWithArrayAsObjectArray() {
helpTestGetString(KEY_WITH_TWO_PARAMS, OBJECT_ARRAY_WITH_TWO_PARAMS, "This string has 2 parameters: " + PARAM1 + //$NON-NLS-1$
" and " + PARAM2); //$NON-NLS-1$
}
}