package com.processpuzzle.application.configuration.domain; // TODO: Needs to be merged with InternalizationRepository ? import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.stub; import static org.mockito.Mockito.when; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import com.processpuzzle.application.domain.Application; import com.processpuzzle.sharedfixtures.domaintier.DomainTierTestConfiguration; public class LocaleLoaderTest { private static Application application; private static ProcessPuzzleContext applicationContext; private static PropertyContext propertyContext; private InternalizationContext internalizationContext; @BeforeClass public static void beforeAllTests() { application = mock( Application.class ); applicationContext = mock( ProcessPuzzleContext.class ); when( application.getContext() ).thenReturn( applicationContext ); propertyContext = new PropertyContext( application, DomainTierTestConfiguration.APPLICATION_CONFIGURATION_DESCRIPTOR_PATH); propertyContext.setUp( Application.Action.start ); when( applicationContext.getPropertyContext() ).thenReturn( propertyContext ); } @Before public void beforeEachTest() throws Exception { MeasurementContext measurementContext = new MeasurementContext( application ); measurementContext.setUp( Application.Action.start ); stub( applicationContext.getMeasurementContext() ).toReturn( measurementContext ); internalizationContext = new InternalizationContext( application ); internalizationContext.setUp( Application.Action.start ); } @After public void afterEachTest() throws Exception { internalizationContext.tearDown( Application.Action.stop ); internalizationContext = null; } @Test public void testLocaleLoader_forLocalesLoaded() { assertTrue("Hungarian language does exist.", internalizationContext.isExist("hu")); assertTrue("English language does exist.", internalizationContext.isExist("en")); assertFalse("XY language does not exist.", internalizationContext.isExist("xy")); } @Test public void testLocaleLoader_forDecimalSeparator() { assertEquals("Hungarian decimal separator is ','", ',', internalizationContext.findLocaleByLanguageAndCountry("hu", "HU").getQuantityFormat().getDecimalSeparator()); assertEquals("English decimal separator is '.'", '.', internalizationContext.findLocaleByLanguageAndCountry("en", "US").getQuantityFormat().getDecimalSeparator()); } @Test public void testLocaleLoader_forDatePattern() { assertEquals("Great Britain date format is set via XML", "dd/MM/yyyy", internalizationContext.findLocaleByLanguageAndCountry("en", "US").getDateFormat().getPattern()); } }