@Test @Ignore //TODO: This test fails for some reason public void getPresentationLocales_shouldReturnAtLeastOneLocaleIfNoLocalesDefinedInDatabaseYet() { assertTrue(adminService.getPresentationLocales().size() > 0); }
@Test public void getPresentationLocales_shouldNotReturnMoreLocalesThanMessageSourceServiceLocales() { assertFalse(adminService.getPresentationLocales().size() > Context .getMessageSourceService().getLocales().size()); }
@Test public void getPresentationLocales_shouldReturnAllCountryLocalesIfLanguageLocaleAndNoCountryLocalesAreSpecifiedInAllowedList() { adminService.saveGlobalProperty( new GlobalProperty(OpenmrsConstants.GLOBAL_PROPERTY_LOCALE_ALLOWED_LIST, "en_GB, es")); List<Locale> locales = new ArrayList<>(); locales.add(new Locale("pl", "PL")); locales.add(new Locale("en")); locales.add(new Locale("es")); locales.add(new Locale("es", "CL")); locales.add(new Locale("es", "SN")); MutableResourceBundleMessageSource mutableResourceBundleMessageSource = Mockito .mock(MutableResourceBundleMessageSource.class); Mockito.when(mutableResourceBundleMessageSource.getLocales()).thenReturn(locales); MutableMessageSource mutableMessageSource = Context.getMessageSourceService().getActiveMessageSource(); Context.getMessageSourceService().setActiveMessageSource(mutableResourceBundleMessageSource); Set<Locale> presentationLocales = adminService.getPresentationLocales(); Context.getMessageSourceService().setActiveMessageSource(mutableMessageSource); assertEquals(3, presentationLocales.size()); assertTrue("es_CL", presentationLocales.contains(new Locale("es", "CL"))); assertTrue("es_SN", presentationLocales.contains(new Locale("es", "SN"))); assertTrue("en", presentationLocales.contains(new Locale("en"))); }
@Test public void getPresentationLocales_shouldReturnOnlyCountryLocaleIfBothCountryLocaleAndLanguageLocaleAreSpecifiedInAllowedList() { adminService.saveGlobalProperty( new GlobalProperty(OpenmrsConstants.GLOBAL_PROPERTY_LOCALE_ALLOWED_LIST, "en_GB, es, es_CL")); List<Locale> locales = new ArrayList<>(); locales.add(new Locale("pl", "PL")); locales.add(new Locale("en")); locales.add(new Locale("es")); locales.add(new Locale("es", "CL")); MutableResourceBundleMessageSource mutableResourceBundleMessageSource = Mockito .mock(MutableResourceBundleMessageSource.class); Mockito.when(mutableResourceBundleMessageSource.getLocales()).thenReturn(locales); MutableMessageSource mutableMessageSource = Context.getMessageSourceService().getActiveMessageSource(); Context.getMessageSourceService().setActiveMessageSource(mutableResourceBundleMessageSource); Set<Locale> presentationLocales = adminService.getPresentationLocales(); Context.getMessageSourceService().setActiveMessageSource(mutableMessageSource); assertEquals(2, presentationLocales.size()); assertTrue("en", presentationLocales.contains(new Locale("en"))); assertTrue("es_CL", presentationLocales.contains(new Locale("es", "CL"))); }
@Test public void getPresentationLocales_shouldReturnLanguageLocaleIfCountryLocaleIsSpecifiedInAllowedListButCountryLocaleMessageFileIsMissing() { adminService.saveGlobalProperty( new GlobalProperty(OpenmrsConstants.GLOBAL_PROPERTY_LOCALE_ALLOWED_LIST, "en_GB, es_CL")); List<Locale> locales = new ArrayList<>(); locales.add(new Locale("pl", "PL")); locales.add(new Locale("en")); locales.add(new Locale("es")); MutableResourceBundleMessageSource mutableResourceBundleMessageSource = Mockito .mock(MutableResourceBundleMessageSource.class); Mockito.when(mutableResourceBundleMessageSource.getLocales()).thenReturn(locales); MutableMessageSource mutableMessageSource = Context.getMessageSourceService().getActiveMessageSource(); Context.getMessageSourceService().setActiveMessageSource(mutableResourceBundleMessageSource); Set<Locale> presentationLocales = adminService.getPresentationLocales(); Context.getMessageSourceService().setActiveMessageSource(mutableMessageSource); assertEquals(2, presentationLocales.size()); assertTrue("en", presentationLocales.contains(new Locale("en"))); assertTrue("es", presentationLocales.contains(new Locale("es"))); }
Context.getMessageSourceService().setActiveMessageSource(mutableResourceBundleMessageSource); List<Locale> presentationLocales = new ArrayList<>(adminService.getPresentationLocales());
@Test public void getPresentationLocales_shouldReturnLanguageLocaleIfItIsSpecifiedInAllowedListAndThereAreNoCountryLocaleMessageFilesAvailable() { adminService.saveGlobalProperty( new GlobalProperty(OpenmrsConstants.GLOBAL_PROPERTY_LOCALE_ALLOWED_LIST, "en_GB, es")); List<Locale> locales = new ArrayList<>(); locales.add(new Locale("pl", "PL")); locales.add(new Locale("en")); locales.add(new Locale("es")); MutableResourceBundleMessageSource mutableResourceBundleMessageSource = Mockito .mock(MutableResourceBundleMessageSource.class); Mockito.when(mutableResourceBundleMessageSource.getLocales()).thenReturn(locales); MutableMessageSource mutableMessageSource = Context.getMessageSourceService().getActiveMessageSource(); Context.getMessageSourceService().setActiveMessageSource(mutableResourceBundleMessageSource); Set<Locale> presentationLocales = adminService.getPresentationLocales(); Context.getMessageSourceService().setActiveMessageSource(mutableMessageSource); assertEquals(2, presentationLocales.size()); assertTrue("en", presentationLocales.contains(new Locale("en"))); assertTrue("es", presentationLocales.contains(new Locale("es"))); }