blob: 0db1911208bc334cb4897dfab72cb385a944face [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2013 Oracle. All rights reserved.
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0, which accompanies this distribution
* and is available at http://www.eclipse.org/legal/epl-v10.html.
*
* Contributors:
* Oracle - initial API and implementation
******************************************************************************/
package org.eclipse.jpt.common.core.tests.internal.utility;
import java.util.Locale;
import junit.framework.TestCase;
import org.eclipse.jpt.common.core.internal.utility.ValidationMessageLoader;
import org.eclipse.jpt.common.utility.internal.ArrayTools;
import org.eclipse.jpt.common.utility.internal.ClassTools;
@SuppressWarnings("nls")
public class MessageLoaderTests
extends TestCase
{
public MessageLoaderTests(String name) {
super(name);
}
public void testBuildLocaleSuffixes1() {
String[] suffixes = this.buildLocaleSuffixes("en", "US", "WIN");
assertEquals(4, suffixes.length);
assertEquals(suffixes[0], "_en_US_WIN.properties");
assertEquals(suffixes[1], "_en_US.properties");
assertEquals(suffixes[2], "_en.properties");
assertEquals(suffixes[3], ".properties");
}
public void testBuildLocaleSuffixes2() {
String[] suffixes = this.buildLocaleSuffixes("en", "US", "");
assertEquals(3, suffixes.length);
assertEquals(suffixes[0], "_en_US.properties");
assertEquals(suffixes[1], "_en.properties");
assertEquals(suffixes[2], ".properties");
}
public void testBuildLocaleSuffixes3() {
String[] suffixes = this.buildLocaleSuffixes("en", "", "WIN");
assertEquals(3, suffixes.length);
assertEquals(suffixes[0], "_en__WIN.properties"); // !
assertEquals(suffixes[1], "_en.properties");
assertEquals(suffixes[2], ".properties");
}
public void testBuildLocaleSuffixes4() {
String[] suffixes = this.buildLocaleSuffixes("en", "", "");
assertEquals(2, suffixes.length);
assertEquals(suffixes[0], "_en.properties");
assertEquals(suffixes[1], ".properties");
}
public void testBuildLocaleSuffixes5() {
String[] suffixes = this.buildLocaleSuffixes("", "US", "WIN");
assertEquals(3, suffixes.length);
assertEquals(suffixes[0], "__US_WIN.properties");
assertEquals(suffixes[1], "__US.properties");
assertEquals(suffixes[2], ".properties");
}
public void testBuildLocaleSuffixes6() {
String[] suffixes = this.buildLocaleSuffixes("", "US", "");
assertEquals(2, suffixes.length);
assertEquals(suffixes[0], "__US.properties");
assertEquals(suffixes[1], ".properties");
}
public void testBuildLocaleSuffixes7() {
String[] suffixes = this.buildLocaleSuffixes("", "", "WIN");
assertEquals(2, suffixes.length);
assertEquals(suffixes[0], "___WIN.properties");
assertEquals(suffixes[1], ".properties");
}
public void testBuildLocaleSuffixes8() {
String[] suffixes = this.buildLocaleSuffixes("", "", "");
assertEquals(1, suffixes.length);
assertEquals(suffixes[0], ".properties");
}
private String[] buildLocaleSuffixes(String language, String country, String variant) {
return buildLocaleSuffixes(new Locale(language, country, variant));
}
private String[] buildLocaleSuffixes(Locale locale) {
return (String[]) ClassTools.execute(ValidationMessageLoader.class, "buildLocaleSuffixes", Locale.class, locale);
}
public void testPropertiesFileNames1() {
String[] names = this.buildPropertiesFileNames("foo");
// System.out.println(java.util.Arrays.toString(names));
Locale locale = Locale.getDefault();
// System.out.println(locale.toString()); // typically "en_US"
String language = locale.getLanguage();
String country = locale.getCountry();
String variant = locale.getVariant();
int expectedSize = 1;
if (language.length() != 0) {
expectedSize++;
}
if (country.length() != 0) {
expectedSize++;
}
if (variant.length() != 0) {
expectedSize++;
}
assertEquals(expectedSize, names.length);
String[] expected = ArrayTools.fill(new String[expectedSize], "foo");
if (expectedSize > 1) {
for (int i = 0; i < expectedSize - 1; i++) {
expected[i] = expected[i] + '_' + language;
}
}
if (expectedSize > 2) {
for (int i = 0; i < expectedSize - 2; i++) {
expected[i] = expected[i] + '_' + country;
}
}
if (expectedSize > 3) {
for (int i = 0; i < expectedSize - 3; i++) {
expected[i] = expected[i] + '_' + variant;
}
}
}
private String[] buildPropertiesFileNames(String bundleName) {
return (String[]) ClassTools.execute(ValidationMessageLoader.class, "buildPropertiesFileNames", String.class, bundleName);
}
}