Fix code style issues
Fix e-mails in JavaDoc
Fix visibility warnings in MockForwarder
Add test ensuring public methods should be public.
Simplify logic of PitImpl
Remove redundant code: unused imports, unnecessary casts
Bump gradle version
Fix code analysis issues
Disable checkstyle code analysis; TODO configure to IntelliJ-style settings and re-enable
Add new logging statements
diff --git a/src/main/java/com/intel/jndn/mock/MockFace.java b/src/main/java/com/intel/jndn/mock/MockFace.java
index 16ffd52..dc1661a 100644
--- a/src/main/java/com/intel/jndn/mock/MockFace.java
+++ b/src/main/java/com/intel/jndn/mock/MockFace.java
@@ -36,8 +36,8 @@
/**
* A client-side face for unit testing.
*
- * @author Alexander Afanasyev, <aa@cs.ucla.edu>
- * @author Andrew Brown <andrew.brown@intel.com>
+ * @author Alexander Afanasyev, aa@cs.ucla.edu
+ * @author Andrew Brown, andrew.brown@intel.com
*/
public class MockFace extends Face {
/**
@@ -163,7 +163,7 @@
*
* @throws SecurityException should not be thrown by this test class
*/
- public MockFace() throws SecurityException {
+ public MockFace() {
this(DEFAULT_OPTIONS);
}
diff --git a/src/main/java/com/intel/jndn/mock/MockForwarder.java b/src/main/java/com/intel/jndn/mock/MockForwarder.java
index f2f2316..11ea73e 100644
--- a/src/main/java/com/intel/jndn/mock/MockForwarder.java
+++ b/src/main/java/com/intel/jndn/mock/MockForwarder.java
@@ -23,13 +23,9 @@
import net.named_data.jndn.Face;
import net.named_data.jndn.ForwardingFlags;
import net.named_data.jndn.Interest;
-import net.named_data.jndn.InterestFilter;
import net.named_data.jndn.Name;
import net.named_data.jndn.OnData;
-import net.named_data.jndn.OnInterestCallback;
import net.named_data.jndn.OnNetworkNack;
-import net.named_data.jndn.OnRegisterFailed;
-import net.named_data.jndn.OnRegisterSuccess;
import net.named_data.jndn.OnTimeout;
import net.named_data.jndn.encoding.WireFormat;
import net.named_data.jndn.security.KeyChain;
@@ -43,6 +39,9 @@
import java.util.logging.Logger;
/**
+ * A mock forwarder for use in testing applications without network IO. It does not fully implement NFD functionality
+ * but currently does allow registering prefixes (to receive sent interests) and limited forwarding flag support.
+ *
* @author Andrew Brown, andrew.brown@intel.com
*/
public class MockForwarder {
@@ -53,7 +52,7 @@
private final Pit pit = new PitImpl();
/**
- * Forwarding information base API; use this for recording FIB entries
+ * Forwarding information base API; use this for recording FIB entries.
*/
public interface Fib {
/**
@@ -70,7 +69,7 @@
}
/**
- * Entry in the FIB; use this for forwarding interest packets
+ * Entry in the FIB; use this for forwarding interest packets.
*/
public interface FibEntry {
/**
@@ -91,7 +90,7 @@
}
/**
- * Pending interest table API; use this for recording incoming interests
+ * Pending interest table API; use this for recording incoming interests.
*/
public interface Pit {
/**
@@ -113,7 +112,7 @@
}
/**
- * Entry in the PIT; use this for forwarding data packets
+ * Entry in the PIT; use this for forwarding data packets.
*/
public interface PitEntry {
/**
@@ -136,6 +135,15 @@
* Mock-specific API for recording the source and destination of incoming interests
*/
public interface OnInterestReceived {
+ /**
+ * Called when the mock forwarder receives incoming interests from a face; see {@link #register(Name,
+ * OnInterestReceived, ForwardingFlags)}.
+ *
+ * @param interest the incoming interest
+ * @param destinationTransport the transport that sent the interest; necessary for the forwarder to be able to
+ * register prefixes (TODO in the future this should also be a {@link Face}, perhaps rename as remoteFace).
+ * @param sourceFace the face receiving the interest; use {@link Face#putData(Data)} to reply
+ */
void in(Interest interest, Transport destinationTransport, Face sourceFace);
}
@@ -155,7 +163,7 @@
public Face connect() {
MockForwarderFace face = new MockForwarderFace();
face.setCommandSigningInfo(keyChain, certName);
- LOGGER.info("Connected face with: " + face.getTransport());
+ LOGGER.info("Connected new face using transport: " + face.getTransport());
return face;
}
@@ -163,13 +171,14 @@
Face registrationFace = this.connect();
FibEntry registrationEntry = new LocalFibEntry(prefix, callback, registrationFace, flags);
fib.add(registrationEntry);
+ LOGGER.info("Registered new prefix to receive interests: " + prefix);
}
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<>();
+ final Collection<Interest> sentInterests = new ArrayList<>();
+ final Collection<Data> sentDatas = new ArrayList<>();
+ final Collection<Interest> receivedInterests = new ArrayList<>();
+ final Collection<Data> receivedDatas = new ArrayList<>();
MockForwarderFace() {
super(new MockTransport(), null);
diff --git a/src/main/java/com/intel/jndn/mock/MockKeyChain.java b/src/main/java/com/intel/jndn/mock/MockKeyChain.java
index 7adc270..30710e1 100644
--- a/src/main/java/com/intel/jndn/mock/MockKeyChain.java
+++ b/src/main/java/com/intel/jndn/mock/MockKeyChain.java
@@ -26,7 +26,7 @@
/**
* Create an in-memory key chain for use in NDN-related tests.
*
- * @author Andrew Brown <andrew.brown@intel.com>
+ * @author Andrew Brown, andrew.brown@intel.com
*/
public final class MockKeyChain {
/**
diff --git a/src/main/java/com/intel/jndn/mock/MockTransport.java b/src/main/java/com/intel/jndn/mock/MockTransport.java
index da891d3..7e788a0 100644
--- a/src/main/java/com/intel/jndn/mock/MockTransport.java
+++ b/src/main/java/com/intel/jndn/mock/MockTransport.java
@@ -28,8 +28,8 @@
* Non-public class for handling data buffering in NDN unit tests; works in
* conjunction with {@link MockFace}.
*
- * @author Alexander Afanasyev, <aa@cs.ucla.edu>
- * @author Andrew Brown <andrew.brown@intel.com>
+ * @author Alexander Afanasyev, aa@cs.ucla.edu
+ * @author Andrew Brown, andrew.brown@intel.com
*/
public class MockTransport extends Transport {
private OnSendBlockSignal onSendBlock;
diff --git a/src/main/java/com/intel/jndn/mock/forwarder/PitEntryImpl.java b/src/main/java/com/intel/jndn/mock/forwarder/PitEntryImpl.java
index 2c54957..d5e3a5b 100644
--- a/src/main/java/com/intel/jndn/mock/forwarder/PitEntryImpl.java
+++ b/src/main/java/com/intel/jndn/mock/forwarder/PitEntryImpl.java
@@ -27,7 +27,7 @@
final class PitEntryImpl implements MockForwarder.PitEntry {
private static final Logger LOGGER = Logger.getLogger(PitEntryImpl.class.getName());
- public final Interest interest;
+ private final Interest interest;
private final MockTransport transport;
private boolean satisfied = false;
diff --git a/src/main/java/com/intel/jndn/mock/forwarder/PitImpl.java b/src/main/java/com/intel/jndn/mock/forwarder/PitImpl.java
index f867ac8..81eb15f 100644
--- a/src/main/java/com/intel/jndn/mock/forwarder/PitImpl.java
+++ b/src/main/java/com/intel/jndn/mock/forwarder/PitImpl.java
@@ -24,6 +24,8 @@
import java.util.concurrent.ConcurrentHashMap;
/**
+ * Naive implementation of a pending interest table
+ *
* @author Andrew Brown, andrew.brown@intel.com
*/
public class PitImpl implements MockForwarder.Pit {
@@ -52,16 +54,6 @@
public boolean has(Interest interest) {
List<MockForwarder.PitEntry> entries = pit.get(interest.getName());
-
- // TODO simplify
- if (entries != null && entries.size() > 0) {
- return true;
-// for(int i = 0; i < entries.size(); i++){
-// if(entries.get(i).interest.equals(interest)){
-// return true;
-// }
-// }
- }
- return false;
+ return entries != null && !entries.isEmpty();
}
}
diff --git a/src/test/java/com/intel/jndn/mock/MockFaceTest.java b/src/test/java/com/intel/jndn/mock/MockFaceTest.java
index 554f937..015da4b 100644
--- a/src/test/java/com/intel/jndn/mock/MockFaceTest.java
+++ b/src/test/java/com/intel/jndn/mock/MockFaceTest.java
@@ -168,8 +168,7 @@
@Test
public void testThatTransportConnectsOnPrefixRegistration() throws IOException, SecurityException {
assertFalse(face.getTransport().getIsConnected());
- face.registerPrefix(new Name("/fake/prefix"), (OnInterestCallback) null, (OnRegisterFailed) null,
- (OnRegisterSuccess) null);
+ face.registerPrefix(new Name("/fake/prefix"), null, null, (OnRegisterSuccess) null);
assertTrue(face.getTransport().getIsConnected());
}
@@ -182,7 +181,7 @@
final State state = new State();
// connect callback
- face.registerPrefix(new Name("/fake/prefix"), (OnInterestCallback) null, new OnRegisterFailed() {
+ face.registerPrefix(new Name("/fake/prefix"), null, new OnRegisterFailed() {
@Override
public void onRegisterFailed(final Name prefix) {
state.regFailed = true;
diff --git a/src/test/java/com/intel/jndn/mock/MockForwarderTest.java b/src/test/java/com/intel/jndn/mock/MockForwarderTest.java
index 36bb7a8..6bf09ab 100644
--- a/src/test/java/com/intel/jndn/mock/MockForwarderTest.java
+++ b/src/test/java/com/intel/jndn/mock/MockForwarderTest.java
@@ -24,7 +24,6 @@
import net.named_data.jndn.OnRegisterFailed;
import net.named_data.jndn.OnRegisterSuccess;
import net.named_data.jndn.OnTimeout;
-import net.named_data.jndn.security.KeyChain;
import org.junit.Test;
import java.io.IOException;
@@ -33,7 +32,8 @@
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.logging.Logger;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
/**
* @author Andrew Brown, andrew.brown@intel.com
diff --git a/src/test/java/com/intel/jndn/mock/MockKeyChainTest.java b/src/test/java/com/intel/jndn/mock/MockKeyChainTest.java
index 3d8ec6f..1448423 100644
--- a/src/test/java/com/intel/jndn/mock/MockKeyChainTest.java
+++ b/src/test/java/com/intel/jndn/mock/MockKeyChainTest.java
@@ -23,7 +23,7 @@
/**
* Test MockKeyChain.
*
- * @author Andrew Brown <andrew.brown@intel.com>
+ * @author Andrew Brown, andrew.brown@intel.com
*/
public class MockKeyChainTest {
diff --git a/src/test/java/com/intel/jndn/mock/forwarder/MockForwarderVisibilityTest.java b/src/test/java/com/intel/jndn/mock/forwarder/MockForwarderVisibilityTest.java
new file mode 100644
index 0000000..c38fa6e
--- /dev/null
+++ b/src/test/java/com/intel/jndn/mock/forwarder/MockForwarderVisibilityTest.java
@@ -0,0 +1,45 @@
+/*
+ * jndn-mock
+ * Copyright (c) 2016, Intel Corporation.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU Lesser General Public License,
+ * version 3, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT ANY
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for
+ * more details.
+ */
+
+package com.intel.jndn.mock.forwarder;
+
+import com.intel.jndn.mock.MockForwarder;
+import net.named_data.jndn.Face;
+import net.named_data.jndn.ForwardingFlags;
+import net.named_data.jndn.Interest;
+import net.named_data.jndn.Name;
+import net.named_data.jndn.transport.Transport;
+import org.junit.Test;
+
+/**
+ * Ensure MockForwarder methods are visible publicly; does not test functionality
+ *
+ * @author Andrew Brown, andrew.brown@intel.com
+ */
+public class MockForwarderVisibilityTest {
+
+ @Test
+ public void ensureVisibility() {
+ MockForwarder forwarder = new MockForwarder();
+
+ forwarder.connect();
+
+ forwarder.register(new Name("/a/b/c"), new MockForwarder.OnInterestReceived() {
+ @Override
+ public void in(Interest interest, Transport destinationTransport, Face sourceFace) {
+ // do nothing
+ }
+ }, new ForwardingFlags());
+ }
+}
\ No newline at end of file