Improve test coverage

Change-Id: Ib3c220638790ea02ad7285916fc98320ecada31b
diff --git a/src/main/java/com/intel/jndn/management/Nfdc.java b/src/main/java/com/intel/jndn/management/Nfdc.java
index 807ef90..aba6c4f 100644
--- a/src/main/java/com/intel/jndn/management/Nfdc.java
+++ b/src/main/java/com/intel/jndn/management/Nfdc.java
@@ -13,30 +13,29 @@
  */
 package com.intel.jndn.management;
 
+import com.intel.jndn.management.enums.LocalControlHeader;
 import com.intel.jndn.management.enums.RouteOrigin;
 import com.intel.jndn.management.helpers.FetchHelper;
 import com.intel.jndn.management.helpers.StatusDatasetHelper;
 import com.intel.jndn.management.types.FaceStatus;
 import com.intel.jndn.management.types.FibEntry;
 import com.intel.jndn.management.types.ForwarderStatus;
-import com.intel.jndn.management.enums.LocalControlHeader;
 import com.intel.jndn.management.types.RibEntry;
 import com.intel.jndn.management.types.StrategyChoice;
+import net.named_data.jndn.ControlParameters;
+import net.named_data.jndn.ControlResponse;
+import net.named_data.jndn.Data;
+import net.named_data.jndn.Face;
+import net.named_data.jndn.ForwardingFlags;
+import net.named_data.jndn.Interest;
+import net.named_data.jndn.KeyLocator;
+import net.named_data.jndn.Name;
+import net.named_data.jndn.encoding.EncodingException;
+import net.named_data.jndn.security.SecurityException;
 
 import java.io.IOException;
 import java.util.List;
 
-import net.named_data.jndn.ControlResponse;
-import net.named_data.jndn.Data;
-import net.named_data.jndn.Interest;
-import net.named_data.jndn.Name;
-import net.named_data.jndn.KeyLocator;
-import net.named_data.jndn.Face;
-import net.named_data.jndn.ControlParameters;
-import net.named_data.jndn.ForwardingFlags;
-import net.named_data.jndn.encoding.EncodingException;
-import net.named_data.jndn.security.SecurityException;
-
 /**
  * Helper class for interacting with an NDN forwarder daemon; see
  * <a href="http://redmine.named-data.net/projects/nfd/wiki/Management">NFD Management</a>
@@ -125,7 +124,8 @@
     try {
       List<Data> segments = FetchHelper.getSegmentedData(face, new Name("/localhost/nfd/rib/list"));
       return StatusDatasetHelper.wireDecode(segments, RibEntry.class);
-    } catch (IOException e) {
+    } catch (ArrayIndexOutOfBoundsException | IOException e) {
+      // TODO: remove ArrayIndexOutOfBoundsException after fixing bug in MockFace
       throw new ManagementException(e.getMessage(), e);
     }
   }
@@ -554,7 +554,7 @@
     // forwarder must have command signing info set
     try {
       face.makeCommandInterest(interest);
-    } catch (SecurityException e) {
+    } catch (NullPointerException | SecurityException e) {
       throw new IllegalArgumentException("Failed to make command interest; ensure command signing info is set on the " +
         "face.", e);
     }
diff --git a/src/main/java/com/intel/jndn/management/helpers/FetchHelper.java b/src/main/java/com/intel/jndn/management/helpers/FetchHelper.java
index 7670771..2b92a54 100644
--- a/src/main/java/com/intel/jndn/management/helpers/FetchHelper.java
+++ b/src/main/java/com/intel/jndn/management/helpers/FetchHelper.java
@@ -121,7 +121,7 @@
 
     try {
       data.getName().get(SEGMENT_NAME_COMPONENT_OFFSET).toSegment();
-    } catch (EncodingException e) {
+    } catch (ArrayIndexOutOfBoundsException | EncodingException e) {
       throw new IOException("Retrieved data does not have segment number as the last name component", e);
     }
     if (data.getName().size() != prefix.size() + 2) {
diff --git a/src/main/java/com/intel/jndn/management/types/FaceStatus.java b/src/main/java/com/intel/jndn/management/types/FaceStatus.java
index d7550cc..b531c97 100644
--- a/src/main/java/com/intel/jndn/management/types/FaceStatus.java
+++ b/src/main/java/com/intel/jndn/management/types/FaceStatus.java
@@ -431,4 +431,34 @@
     this.outBytes = outBytes;
     return this;
   }
+
+  @Override
+  public String toString() {
+    StringBuilder ret = new StringBuilder();
+
+    ret.append("FaceStatus(")
+       .append("FaceID: ").append(getFaceId()).append(",\n")
+       .append("RemoteUri: ").append(getRemoteUri()).append(",\n")
+       .append("LocalUri: ").append(getLocalUri()).append(",\n");
+
+    if (hasExpirationPeriod()) {
+      ret.append("ExpirationPeriod: ").append(getExpirationPeriod()).append(" milliseconds,\n");
+    } else {
+      ret.append("ExpirationPeriod: infinite,\n");
+    }
+
+    ret.append("FaceScope: ").append(getFaceScope()).append(",\n")
+       .append("FacePersistency: ").append(getFacePersistency()).append(",\n")
+       .append("LinkType: ").append(getLinkType()).append(",\n")
+       .append("Counters: { Interests: {in: ").append(getNInInterests()).append(", ")
+       .append("out: ").append(getNOutInterests()).append("},\n")
+       .append("            Data: {in: ").append(getNInDatas()).append(", ")
+       .append("out: ").append(getNOutDatas()).append("},\n")
+       .append("            Nack: {in: ").append(getNInNacks()).append(", ")
+       .append("out: ").append(getNOutNacks()).append("},\n")
+       .append("            bytes: {in: ").append(getNInBytes()).append(", ")
+       .append("out: ").append(getNOutBytes()).append("} }\n")
+       .append(")");
+    return ret.toString();
+  }
 }