1   /*
2    * Copyright 2004-2010 the Seasar Foundation and the Others.
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    *     http://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
13   * either express or implied. See the License for the specific language
14   * governing permissions and limitations under the License.
15   */
16  
17  package org.seasar.cubby.controller.impl;
18  
19  import static org.junit.Assert.assertEquals;
20  
21  import java.util.Enumeration;
22  import java.util.Locale;
23  import java.util.Map;
24  import java.util.ResourceBundle;
25  
26  import org.junit.Test;
27  import org.seasar.cubby.controller.MessagesBehaviour;
28  
29  public class DefaultMessagesBehaviourTest {
30  
31  	@Test
32  	public void defaultBaseName() {
33  		DefaultMessagesBehaviour behaviour = new DefaultMessagesBehaviour();
34  		assertEquals(DefaultMessagesBehaviour.DEFAULT_RESOURCE_NAME, behaviour
35  				.getBaseName());
36  	}
37  
38  	@Test
39  	public void baseName() {
40  		DefaultMessagesBehaviour behaviour = new DefaultMessagesBehaviour();
41  		String customBaseName = "base";
42  		behaviour.setBaseName(customBaseName);
43  		assertEquals(customBaseName, behaviour.getBaseName());
44  	}
45  
46  	@Test
47  	public void getBundleWithDefaultLocale() {
48  		Locale defaultLocale = Locale.getDefault();
49  		Locale.setDefault(Locale.JAPANESE);
50  		MessagesBehaviour behaviour = new DefaultMessagesBehaviour();
51  		ResourceBundle bundle = behaviour.getBundle(null);
52  		assertEquals("{0}は{1}以下選択してください。", bundle
53  				.getString("valid.arrayMaxSize"));
54  		Locale.setDefault(defaultLocale);
55  		assertEquals(Locale.JAPANESE, bundle.getLocale());
56  	}
57  
58  	@Test
59  	public void getBundleWithJapaneseLocale() {
60  		MessagesBehaviour behaviour = new DefaultMessagesBehaviour();
61  		ResourceBundle bundle = behaviour.getBundle(Locale.JAPANESE);
62  		assertEquals("{0}は{1}以下選択してください。", bundle
63  				.getString("valid.arrayMaxSize"));
64  		assertEquals(Locale.JAPANESE, bundle.getLocale());
65  	}
66  
67  	@Test
68  	public void getBundleWithEnglishLocale() {
69  		MessagesBehaviour behaviour = new DefaultMessagesBehaviour();
70  		ResourceBundle bundle = behaviour.getBundle(Locale.ENGLISH);
71  		assertEquals("{0} : selects <= {1}.", bundle
72  				.getString("valid.arrayMaxSize"));
73  		assertEquals(Locale.ENGLISH, bundle.getLocale());
74  	}
75  
76  	@Test
77  	public void testToMap() {
78  		MessagesBehaviour behaviour = new DefaultMessagesBehaviour();
79  		ResourceBundle bundle = behaviour.getBundle(Locale.ENGLISH);
80  		Map<String, Object> map = behaviour.toMap(bundle);
81  		int bundleSize = 0;
82  		for (Enumeration<String> keys = bundle.getKeys(); keys
83  				.hasMoreElements();) {
84  			String key = keys.nextElement();
85  			assertEquals(bundle.getObject(key), map.get(key));
86  			bundleSize++;
87  		}
88  		assertEquals(bundleSize, map.size());
89  
90  	}
91  
92  }