/** * */ package com.captaindebug; import java.util.Locale; import java.util.ResourceBundle; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * Sample static class that uses a resource bundle, which is a class with static * methods that we're going to mock. * * Note how this doesn't use DI, making it more difficult to test than normal. * * @author RogerHughes * */ public class UsesResourceBundle { private static Logger logger = LoggerFactory.getLogger(UsesResourceBundle.class); private ResourceBundle bundle; public String getResourceString(String key) { if (isNull(bundle)) { // Lazy load of the resource bundle Locale locale = getLocale(); if (isNotNull(locale)) { this.bundle = ResourceBundle.getBundle("SomeBundleName", locale); } else { handleError(); } } return bundle.getString(key); } private boolean isNull(Object obj) { return obj == null; } private Locale getLocale() { return Locale.ENGLISH; } private boolean isNotNull(Object obj) { return obj != null; } private void handleError() { String msg = "Failed to retrieve the locale for this page"; logger.error(msg); throw new RuntimeException(msg); } }