Add MeasurableFace API
TODO add to MockFace
diff --git a/src/main/java/com/intel/jndn/mock/MeasurableFace.java b/src/main/java/com/intel/jndn/mock/MeasurableFace.java
new file mode 100644
index 0000000..c08fae8
--- /dev/null
+++ b/src/main/java/com/intel/jndn/mock/MeasurableFace.java
@@ -0,0 +1,16 @@
+package com.intel.jndn.mock;
+
+import net.named_data.jndn.Data;
+import net.named_data.jndn.Interest;
+
+import java.util.Collection;
+
+/**
+ * @author Andrew Brown, andrew.brown@intel.com
+ */
+public interface MeasurableFace {
+ Collection<Interest> sentInterests();
+ Collection<Data> sentDatas();
+ Collection<Interest> receivedInterests();
+ Collection<Data> receivedDatas();
+}
diff --git a/src/main/java/com/intel/jndn/mock/MockForwarder.java b/src/main/java/com/intel/jndn/mock/MockForwarder.java
index dffc321..0b6b95d 100644
--- a/src/main/java/com/intel/jndn/mock/MockForwarder.java
+++ b/src/main/java/com/intel/jndn/mock/MockForwarder.java
@@ -10,11 +10,18 @@
import net.named_data.jndn.ForwardingFlags;
import net.named_data.jndn.Interest;
import net.named_data.jndn.Name;
+import net.named_data.jndn.OnData;
+import net.named_data.jndn.OnNetworkNack;
+import net.named_data.jndn.OnTimeout;
+import net.named_data.jndn.encoding.WireFormat;
import net.named_data.jndn.security.KeyChain;
import net.named_data.jndn.security.SecurityException;
import net.named_data.jndn.transport.Transport;
+import java.io.IOException;
+import java.util.ArrayList;
import java.util.Collection;
+import java.util.Collections;
import java.util.logging.Logger;
/**
@@ -140,7 +147,12 @@
fib.add(registrationEntry);
}
- private class MockForwarderFace extends Face {
+ private class MockForwarderFace extends Face implements MeasurableFace {
+ Collection<Interest> sentInterests = new ArrayList<>();
+ Collection<Data> sentDatas = new ArrayList<>();
+ Collection<Interest> receivedInterests = new ArrayList<>();
+ Collection<Data> receivedDatas = new ArrayList<>();
+
MockForwarderFace() {
super(new MockTransport(), null);
MockTransport transport = (MockTransport) node_.getTransport();
@@ -150,5 +162,39 @@
Transport getTransport() {
return node_.getTransport();
}
+
+ @Override
+ public long expressInterest(Interest interest, OnData onData, OnTimeout onTimeout,
+ OnNetworkNack onNetworkNack, WireFormat wireFormat) throws IOException {
+ sentInterests.add(interest);
+ return super.expressInterest(interest, onData, onTimeout, onNetworkNack, wireFormat);
+ }
+
+ @Override
+ public long expressInterest(Name name, Interest interestTemplate, OnData onData, OnTimeout onTimeout,
+ OnNetworkNack onNetworkNack, WireFormat wireFormat) throws IOException {
+ sentInterests.add(getInterestCopy(name, interestTemplate));
+ return super.expressInterest(name, interestTemplate, onData, onTimeout, onNetworkNack, wireFormat);
+ }
+
+ @Override
+ public Collection<Interest> sentInterests() {
+ return Collections.unmodifiableCollection(sentInterests);
+ }
+
+ @Override
+ public Collection<Data> sentDatas() {
+ return Collections.unmodifiableCollection(sentDatas);
+ }
+
+ @Override
+ public Collection<Interest> receivedInterests() {
+ return Collections.unmodifiableCollection(receivedInterests);
+ }
+
+ @Override
+ public Collection<Data> receivedDatas() {
+ return Collections.unmodifiableCollection(receivedDatas);
+ }
}
}