/* (c) 2014 Open Source Geospatial Foundation - all rights reserved * (c) 2001 - 2013 OpenPlans * This code is licensed under the GPL 2.0 license, available at the root * application directory. */ package org.geoserver.platform.exception; import static junit.framework.Assert.assertEquals; import java.util.Locale; import org.junit.Test; public class GeoServerExceptionsTest { @Test public void test() throws Exception { GeoServerException e = new TestException().id("hi"); assertEquals("hello", GeoServerExceptions.localize(e)); } @Test public void testLocale() throws Exception { GeoServerException e = new TestException().id("hi"); assertEquals("bonjour", GeoServerExceptions.localize(e, Locale.FRENCH)); } @Test public void testUnknownLocale() throws Exception { GeoServerException e = new TestException().id("hi"); assertEquals("hello", GeoServerExceptions.localize(e, Locale.GERMAN)); } @Test public void testWithArgs() throws Exception { GeoServerException e = new TestException().id("hey").args("neo"); assertEquals("hello neo", GeoServerExceptions.localize(e)); assertEquals("bonjour neo", GeoServerExceptions.localize(e, Locale.FRENCH)); } @Test public void testWithNewDefault() throws Exception { Locale old = Locale.getDefault(); Locale.setDefault(Locale.FRENCH); try { assertEquals("bonjour", GeoServerExceptions.localize(new TestException().id("hi"))); } finally { Locale.setDefault(old); } } // class TestResourceBundleLoader implements ResourceBundleLoader { // // Map<String,Map<String,Properties>> keys; // // TestResourceBundleLoader() { // keys = new HashMap(); // // Properties p = new Properties(); // p.put("TestException.hi", "hello"); // p.put("TestException.hey", "hello {0}"); // // Map map = new HashMap(); // map.put(TestException.class.getSimpleName(), p); // keys.put(Locale.ENGLISH.getLanguage(), map); // // p = new Properties(); // p.put("TestException.hi", "bonjour"); // p.put("TestException.hey", "bonjour {0}"); // // map = new HashMap(); // map.put(TestException.class.getSimpleName(), p); // keys.put(Locale.FRENCH.getLanguage(), map); // } // // @Override // public ResourceBundle load(String baseName, Locale locale, // ClassLoader classLoader) throws IOException { // // Map<String,Properties> map = keys.get(locale.getLanguage()); // if (map == null) { // return null; // } // // Properties p = map.get(baseName); // if (p == null) { // return null; // } // // ByteArrayOutputStream bout = new ByteArrayOutputStream(); // p.store(bout, null); // // return new PropertyResourceBundle(new ByteArrayInputStream(bout.toByteArray())); // } // // } }