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();
+ }
}