[ONOS-4718] Initial implementation of LISP control msg deserializer
- Add LispLocatorRecord interface along with
DefaultLispLocatorRecord class and unit test class
- Add deserialization logic for four LISP control message classes
and two auxiliary classes
- Add ByteOperator utility to ease the bit access and manipulation
for byte data type
Change-Id: I68edf6877a0ebb52260296fc556e0690b795a845
diff --git a/protocols/lisp/msg/src/test/java/org/onosproject/lisp/msg/protocols/DefaultLispLocatorRecordTest.java b/protocols/lisp/msg/src/test/java/org/onosproject/lisp/msg/protocols/DefaultLispLocatorRecordTest.java
new file mode 100644
index 0000000..7b99612
--- /dev/null
+++ b/protocols/lisp/msg/src/test/java/org/onosproject/lisp/msg/protocols/DefaultLispLocatorRecordTest.java
@@ -0,0 +1,96 @@
+/*
+ * Copyright 2016-present Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.onosproject.lisp.msg.protocols;
+
+import com.google.common.testing.EqualsTester;
+import org.junit.Before;
+import org.junit.Test;
+
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.is;
+
+/**
+ * Unit tests for DefaultLispLocatorRecord class.
+ */
+public final class DefaultLispLocatorRecordTest {
+
+ private LispLocatorRecord record1;
+ private LispLocatorRecord sameAsRecord1;
+ private LispLocatorRecord record2;
+
+ @Before
+ public void setup() {
+
+ LispLocatorRecord.LocatorRecordBuilder builder1 =
+ new DefaultLispLocatorRecord.DefaultLocatorRecordBuilder();
+
+ record1 = builder1
+ .withPriority((byte) 0x01)
+ .withWeight((byte) 0x01)
+ .withMulticastPriority((byte) 0x01)
+ .withMulticastWeight((byte) 0x01)
+ .withLocalLocator(true)
+ .withRlocProbed(false)
+ .withRouted(true)
+ .build();
+
+ LispLocatorRecord.LocatorRecordBuilder builder2 =
+ new DefaultLispLocatorRecord.DefaultLocatorRecordBuilder();
+
+ sameAsRecord1 = builder2
+ .withPriority((byte) 0x01)
+ .withWeight((byte) 0x01)
+ .withMulticastPriority((byte) 0x01)
+ .withMulticastWeight((byte) 0x01)
+ .withLocalLocator(true)
+ .withRlocProbed(false)
+ .withRouted(true)
+ .build();
+
+ LispLocatorRecord.LocatorRecordBuilder builder3 =
+ new DefaultLispLocatorRecord.DefaultLocatorRecordBuilder();
+
+ record2 = builder3
+ .withPriority((byte) 0x02)
+ .withWeight((byte) 0x02)
+ .withMulticastPriority((byte) 0x02)
+ .withMulticastWeight((byte) 0x02)
+ .withLocalLocator(false)
+ .withRlocProbed(true)
+ .withRouted(false)
+ .build();
+ }
+
+ @Test
+ public void testEquality() {
+ new EqualsTester()
+ .addEqualityGroup(record1, sameAsRecord1)
+ .addEqualityGroup(record2).testEquals();
+ }
+
+ @Test
+ public void testConstruction() {
+ DefaultLispLocatorRecord record = (DefaultLispLocatorRecord) record1;
+
+ assertThat(record.getPriority(), is((byte) 0x01));
+ assertThat(record.getWeight(), is((byte) 0x01));
+ assertThat(record.getMulticastPriority(), is((byte) 0x01));
+ assertThat(record.getMulticastWeight(), is((byte) 0x01));
+ assertThat(record.isLocalLocator(), is(true));
+ assertThat(record.isRlocProbed(), is(false));
+ assertThat(record.isRouted(), is(true));
+ }
+}
diff --git a/protocols/lisp/msg/src/test/java/org/onosproject/lisp/msg/protocols/DefaultLispMapNotifyTest.java b/protocols/lisp/msg/src/test/java/org/onosproject/lisp/msg/protocols/DefaultLispMapNotifyTest.java
index 219d6ab..26d8ff0 100644
--- a/protocols/lisp/msg/src/test/java/org/onosproject/lisp/msg/protocols/DefaultLispMapNotifyTest.java
+++ b/protocols/lisp/msg/src/test/java/org/onosproject/lisp/msg/protocols/DefaultLispMapNotifyTest.java
@@ -25,7 +25,7 @@
/**
* Unit tests for DefaultLispMapNotify class.
*/
-public class DefaultLispMapNotifyTest {
+public final class DefaultLispMapNotifyTest {
private LispMapNotify notify1;
private LispMapNotify sameAsNotify1;
diff --git a/protocols/lisp/msg/src/test/java/org/onosproject/lisp/msg/protocols/DefaultLispMapRecordTest.java b/protocols/lisp/msg/src/test/java/org/onosproject/lisp/msg/protocols/DefaultLispMapRecordTest.java
index 78af45d..1c85b11 100644
--- a/protocols/lisp/msg/src/test/java/org/onosproject/lisp/msg/protocols/DefaultLispMapRecordTest.java
+++ b/protocols/lisp/msg/src/test/java/org/onosproject/lisp/msg/protocols/DefaultLispMapRecordTest.java
@@ -25,7 +25,7 @@
/**
* Unit tests for DefaultLispMapRecord class.
*/
-public class DefaultLispMapRecordTest {
+public final class DefaultLispMapRecordTest {
private LispMapRecord record1;
private LispMapRecord sameAsRecord1;
diff --git a/protocols/lisp/msg/src/test/java/org/onosproject/lisp/msg/protocols/DefaultLispMapRegisterTest.java b/protocols/lisp/msg/src/test/java/org/onosproject/lisp/msg/protocols/DefaultLispMapRegisterTest.java
index 940345c..1b0a5a4 100644
--- a/protocols/lisp/msg/src/test/java/org/onosproject/lisp/msg/protocols/DefaultLispMapRegisterTest.java
+++ b/protocols/lisp/msg/src/test/java/org/onosproject/lisp/msg/protocols/DefaultLispMapRegisterTest.java
@@ -25,7 +25,7 @@
/**
* Unit tests for DefaultLispMapRegister class.
*/
-public class DefaultLispMapRegisterTest {
+public final class DefaultLispMapRegisterTest {
private LispMapRegister register1;
private LispMapRegister sameAsRegister1;
diff --git a/protocols/lisp/msg/src/test/java/org/onosproject/lisp/msg/protocols/DefaultLispMapReplyTest.java b/protocols/lisp/msg/src/test/java/org/onosproject/lisp/msg/protocols/DefaultLispMapReplyTest.java
index e078cd9..7b530d2 100644
--- a/protocols/lisp/msg/src/test/java/org/onosproject/lisp/msg/protocols/DefaultLispMapReplyTest.java
+++ b/protocols/lisp/msg/src/test/java/org/onosproject/lisp/msg/protocols/DefaultLispMapReplyTest.java
@@ -25,7 +25,7 @@
/**
* Unit tests for DefaultLispMapReply class.
*/
-public class DefaultLispMapReplyTest {
+public final class DefaultLispMapReplyTest {
private LispMapReply reply1;
private LispMapReply sameAsReply1;
diff --git a/protocols/lisp/msg/src/test/java/org/onosproject/lisp/msg/protocols/DefaultLispMapRequestTest.java b/protocols/lisp/msg/src/test/java/org/onosproject/lisp/msg/protocols/DefaultLispMapRequestTest.java
index 13fafc8..155c6a6 100644
--- a/protocols/lisp/msg/src/test/java/org/onosproject/lisp/msg/protocols/DefaultLispMapRequestTest.java
+++ b/protocols/lisp/msg/src/test/java/org/onosproject/lisp/msg/protocols/DefaultLispMapRequestTest.java
@@ -25,7 +25,7 @@
/**
* Unit tests for DefaultLispMapRequest class.
*/
-public class DefaultLispMapRequestTest {
+public final class DefaultLispMapRequestTest {
private LispMapRequest request1;
private LispMapRequest sameAsRequest1;