Packet class unit tests
Added unit tests for DefaultInboundPacket, DefaultOutboundPacket,
and DefaultPacketContext.
Made DefaultInboundPacket and DefaultOutboundPacket proper immutable classes
Added equals() and hashCode() to DefaultOutboundPacket
Change-Id: Ibb1199a5282743ccaf0844c0b7ccfcc4cb13f52e
diff --git a/core/api/src/main/java/org/onlab/onos/net/packet/DefaultOutboundPacket.java b/core/api/src/main/java/org/onlab/onos/net/packet/DefaultOutboundPacket.java
index 01ecf96..624f0d8 100644
--- a/core/api/src/main/java/org/onlab/onos/net/packet/DefaultOutboundPacket.java
+++ b/core/api/src/main/java/org/onlab/onos/net/packet/DefaultOutboundPacket.java
@@ -16,6 +16,7 @@
package org.onlab.onos.net.packet;
import java.nio.ByteBuffer;
+import java.util.Objects;
import org.onlab.onos.net.DeviceId;
import org.onlab.onos.net.flow.TrafficTreatment;
@@ -25,7 +26,7 @@
/**
* Default implementation of an immutable outbound packet.
*/
-public class DefaultOutboundPacket implements OutboundPacket {
+public final class DefaultOutboundPacket implements OutboundPacket {
private final DeviceId sendThrough;
private final TrafficTreatment treatment;
private final ByteBuffer data;
@@ -61,6 +62,24 @@
}
@Override
+ public int hashCode() {
+ return Objects.hash(sendThrough, treatment, data);
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (obj instanceof OutboundPacket) {
+ final DefaultOutboundPacket other = (DefaultOutboundPacket) obj;
+ return Objects.equals(this.sendThrough, other.sendThrough) &&
+ Objects.equals(this.treatment, other.treatment) &&
+ Objects.equals(this.data, other.data);
+ }
+ return false;
+ }
+ @Override
public String toString() {
return MoreObjects.toStringHelper(this)
.add("sendThrough", sendThrough)