package com.processpuzzle.internalization.control;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import java.util.Iterator;
import java.util.Map;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.mockito.MockitoAnnotations;
import org.mockito.Mock;
import com.processpuzzle.application.configuration.domain.ApplicationContextFactory;
import com.processpuzzle.application.configuration.domain.ProcessPuzzleContext;
import com.processpuzzle.application.configuration.domain.ProcessPuzzleContextTest;
import com.processpuzzle.application.configuration.domain.PropertyKeys;
import com.processpuzzle.application.domain.Application;
import com.processpuzzle.internalization.domain.NoneExistingResourceKeyException;
import com.processpuzzle.internalization.domain.ProcessPuzzleLocale;
import com.processpuzzle.internalization.domain.XMLResourceBundle;
import com.processpuzzle.user_session.domain.UserRequestManager;
public class InternalizationHelperTest {
private ProcessPuzzleContext config = null;
private final String WEBTIER_CONFIGURATION = "configuration.webtier_configuration.properties";
@Mock
private Application application;
@Before
protected void setUp() throws Exception {
MockitoAnnotations.initMocks( ProcessPuzzleContextTest.class );
config = ApplicationContextFactory.create( application, WEBTIER_CONFIGURATION );
config.setUp( Application.Action.start );
}
@Test
public final void testI18Config() {
ProcessPuzzleContext applicationContext = UserRequestManager.getInstance().getApplicationContext();
assertNotNull( applicationContext.getProperty( PropertyKeys.INTERNALIZATION_AVAILABLE_LOCALES.getXPathKey() ) );
assertNotNull( applicationContext.getProperty( PropertyKeys.INTERNALIZATION_DEFAULT_LOCALE.getXPathKey() ) );
assertEquals( "hu, HU", applicationContext.getProperty( PropertyKeys.INTERNALIZATION_DEFAULT_LOCALE.getXPathKey() ) );
assertEquals( "hu|en", applicationContext.getProperty( PropertyKeys.INTERNALIZATION_AVAILABLE_LOCALES.getXPathKey() ) );
}
@Test
public final void testAvailableResourceBundles() throws NoneExistingResourceKeyException {
Map<ProcessPuzzleLocale, XMLResourceBundle> resourceBundles = config.getInternalizationContext().getResourceBundles();
for( Iterator<ProcessPuzzleLocale> iter = resourceBundles.keySet().iterator(); iter.hasNext(); ){
String bundleKey = (String) iter.next().toString();
assertTrue( bundleKey.matches( "en|hu" ) );
if( bundleKey.equals( "hu" ) ){
XMLResourceBundle bundle = resourceBundles.get( new ProcessPuzzleLocale( "hu" ) );
String text = bundle.getText( "testKey" );
assertEquals( "Teszt érték", text );
}else if( bundleKey.equals( "en" ) ){
XMLResourceBundle bundle = resourceBundles.get( new ProcessPuzzleLocale( "en" ) );
String text = bundle.getText( "testKey" );
assertEquals( "Test value", text );
}
}
}
@After
protected void tearDown() throws Exception {
// TODO Auto-generated method stub
}
}