/* * Copyright 2004-2015 the Seasar Foundation and the Others. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific language * governing permissions and limitations under the License. */ package org.seasar.framework.message; import java.util.List; import java.util.Locale; import junit.framework.TestCase; /** * @author shot * @author higa */ public class MessageResourceBundleFactoryTest extends TestCase { private static final String BASE_NAME = "SSRMessages"; private static final String PATH = BASE_NAME + ".properties"; public void tearDown() { MessageResourceBundleFactory.clear(); } /** * @throws Exception */ public void testLoadFacade() throws Exception { MessageResourceBundleFacade facade = MessageResourceBundleFactory .loadFacade(PATH); assertNotNull(facade); assertEquals("{0} not found", facade.getBundle().get("ESSR0001")); } /** * @throws Exception */ public void testGetNullableBundle() throws Exception { MessageResourceBundle bundle = MessageResourceBundleFactory .getNullableBundle(BASE_NAME, Locale.JAPANESE); assertNotNull(bundle); assertNotNull(bundle.getParent()); assertEquals("{0}が見つかりません", bundle.get("ESSR0001")); bundle = MessageResourceBundleFactory.getNullableBundle(BASE_NAME, Locale.ITALIAN); assertNotNull(bundle); assertNull(bundle.getParent()); assertEquals("{0} not found", bundle.get("ESSR0001")); } /** * @throws Exception */ public void testGetNullabelBundle2() throws Exception { String baseName = "org.seasar.framework.message.strings"; MessageResourceBundle bundle = MessageResourceBundleFactory .getNullableBundle(baseName, Locale.JAPANESE); assertNotNull(bundle); assertNotNull(bundle.getParent()); assertNull(bundle.getParent().getParent()); assertEquals("hogehoge", bundle.get("text")); bundle = MessageResourceBundleFactory.getNullableBundle(baseName, new Locale("ja", "JP")); assertNotNull(bundle); assertNotNull(bundle.getParent()); assertNotNull(bundle.getParent().getParent()); assertNull(bundle.getParent().getParent().getParent()); assertEquals("hogehogehoge", bundle.get("text")); bundle = MessageResourceBundleFactory.getNullableBundle(baseName, new Locale("ja", "JP", "WIN")); assertNotNull(bundle); assertNotNull(bundle.getParent()); assertNotNull(bundle.getParent().getParent()); assertNotNull(bundle.getParent().getParent().getParent()); assertNull(bundle.getParent().getParent().getParent().getParent()); assertEquals("hogehogehogehoge", bundle.get("text")); bundle = MessageResourceBundleFactory.getNullableBundle(baseName, new Locale("en", "US")); assertNotNull(bundle); assertNotNull(bundle.getParent()); assertNotNull(bundle.getParent().getParent()); assertNull(bundle.getParent().getParent().getParent()); assertEquals("foobar", bundle.get("text")); bundle = MessageResourceBundleFactory.getNullableBundle(baseName, new Locale("en", "UK")); assertNotNull(bundle); assertNotNull(bundle.getParent()); assertNull(bundle.getParent().getParent()); assertEquals("foo", bundle.get("text")); } /** * @throws Exception */ public void testCalcurateBundleNames() throws Exception { // 言語のみ String[] bundleNames = MessageResourceBundleFactory .calcurateBundleNames(BASE_NAME, Locale.JAPANESE); List expected = java.util.Arrays.asList( new String[]{BASE_NAME, BASE_NAME + "_ja"} ); assertEquals( expected, java.util.Arrays.asList(bundleNames) ); // 言語と国 bundleNames = MessageResourceBundleFactory .calcurateBundleNames(BASE_NAME, new Locale("ja", "JP")); expected = java.util.Arrays.asList( new String[]{BASE_NAME, BASE_NAME + "_ja", BASE_NAME + "_ja_JP"} ); assertEquals( expected, java.util.Arrays.asList(bundleNames) ); // 言語と国とバリアント bundleNames = MessageResourceBundleFactory .calcurateBundleNames(BASE_NAME, new Locale("ja", "JP", "WIN")); expected = java.util.Arrays.asList( new String[]{BASE_NAME, BASE_NAME + "_ja", BASE_NAME + "_ja_JP", BASE_NAME + "_ja_JP_WIN"} ); assertEquals( expected, java.util.Arrays.asList(bundleNames) ); // 言語とバリアント bundleNames = MessageResourceBundleFactory .calcurateBundleNames(BASE_NAME, new Locale("ja", "", "WIN")); expected = java.util.Arrays.asList( new String[]{BASE_NAME, BASE_NAME + "_ja", BASE_NAME + "_ja__WIN"} ); assertEquals( expected, java.util.Arrays.asList(bundleNames) ); // 国とバリアント bundleNames = MessageResourceBundleFactory .calcurateBundleNames(BASE_NAME, new Locale("", "JP", "WIN")); expected = java.util.Arrays.asList( new String[]{BASE_NAME, BASE_NAME + "__JP", BASE_NAME + "__JP_WIN"} ); assertEquals( expected, java.util.Arrays.asList(bundleNames) ); // 国のみ bundleNames = MessageResourceBundleFactory .calcurateBundleNames(BASE_NAME, new Locale("", "JP")); expected = java.util.Arrays.asList( new String[]{BASE_NAME, BASE_NAME + "__JP"} ); assertEquals( expected, java.util.Arrays.asList(bundleNames) ); // バリアントのみ bundleNames = MessageResourceBundleFactory .calcurateBundleNames(BASE_NAME, new Locale("", "", "WIN")); expected = java.util.Arrays.asList( new String[]{BASE_NAME, BASE_NAME + "___WIN"} ); assertEquals( expected, java.util.Arrays.asList(bundleNames) ); } }