JAL-3528 unit tests added for failed lookup, Javadoc
authorgmungoc <g.m.carstairs@dundee.ac.uk>
Mon, 9 Mar 2020 14:54:16 +0000 (14:54 +0000)
committergmungoc <g.m.carstairs@dundee.ac.uk>
Mon, 9 Mar 2020 14:54:16 +0000 (14:54 +0000)
src/jalview/util/MessageManager.java
test/jalview/util/MessageManagerTest.java [new file with mode: 0644]

index 25e10c3..4359506 100644 (file)
@@ -35,7 +35,6 @@ import java.util.logging.Logger;
  */
 public class MessageManager
 {
-
   private static ResourceBundle rb;
 
   private static Logger log = Logger
@@ -72,6 +71,13 @@ public class MessageManager
 
   }
 
+  /**
+   * Returns the resource bundle text for the given key, or if not found, the
+   * key prefixed by "[missing key]"
+   * 
+   * @param key
+   * @return
+   */
   public static String getString(String key)
   {
     String value = "[missing key] " + key;
@@ -90,6 +96,15 @@ public class MessageManager
     return loc;
   }
 
+  /**
+   * Returns the resource bundle text for the given key, with tokens {@code {0},
+   * {1} etc replaced by the supplied parameters. If the key is not found,
+   * returns the key and values prefixed by "[missing key]"
+   * 
+   * @param key
+   * 
+   * @return
+   */
   public static String formatMessage(String key, Object... params)
   {
     try
@@ -98,8 +113,6 @@ public class MessageManager
     } catch (Exception e)
     {
       log.warning("I18N missing: " + loc + "\t" + key);
-      // e.printStackTrace();
-
     }
     String value = "[missing key] " + key + "";
     for (Object p : params)
@@ -109,17 +122,31 @@ public class MessageManager
     return value;
   }
 
+  /**
+   * Returns the resource bundle text for the given key, with tokens {@code {0},
+   * {1} etc replaced by the supplied parameters. If the key is not found,
+   * returns the key and values prefixed by "[missing key]"
+   * 
+   * @param key
+   * 
+   * @return
+   */
   public static String formatMessage(String key, String[] params)
   {
     return formatMessage(key, (Object[]) params);
   }
 
   /**
-   * lookup and return a key given a root and a human-readable(ish) name that
-   * when combined might resolve to an i18n string. If the key doesn't resolve,
-   * then name is returned.if the key doesn't exist. Use this for
-   * programatically constructed keys that have have a human readable
-   * alternative used in the program (e.g. BLOSUM62 and label.score_blosum62)
+   * Returns resource bundle text given a root and a human-readable(ish) name
+   * that when combined might resolve to an i18n string. {@code name} is forced
+   * to lower case, with any spaces removed, and concatenated to {@code keyroot}
+   * to form a lookup key.
+   * <p>
+   * If the key doesn't resolve, then {@code name} is returned.
+   * <p>
+   * Use this for programmatically constructed keys that might have a human
+   * readable alternative used in the program (e.g. BLOSUM62 and
+   * label.score_blosum62).
    * 
    * @param keyroot
    * @param name
diff --git a/test/jalview/util/MessageManagerTest.java b/test/jalview/util/MessageManagerTest.java
new file mode 100644 (file)
index 0000000..68fd51b
--- /dev/null
@@ -0,0 +1,31 @@
+package jalview.util;
+
+import static org.testng.Assert.assertEquals;
+
+import org.testng.annotations.Test;
+
+public class MessageManagerTest
+{
+  @Test(groups = "Functional")
+  public void testFormatMessage_invalid()
+  {
+    String msg = MessageManager.formatMessage("label.rubbish", "goodbye",
+            "world");
+    assertEquals(msg, "[missing key] label.rubbish 'goodbye' 'world'");
+  }
+
+  @Test(groups = "Functional")
+  public void testGetString_invalid()
+  {
+    String msg = MessageManager.getString("label.rubbish");
+    assertEquals(msg, "[missing key] label.rubbish");
+  }
+
+  @Test(groups = "Functional")
+  public void testGetStringOrReturn()
+  {
+    String msg = MessageManager.getStringOrReturn("label.rubbish",
+            "rubbishdefault");
+    assertEquals(msg, "rubbishdefault");
+  }
+}