Add unit test for LISP msg to check object equality and construction
Change-Id: I5365f7654df10f4cf157c79f098c7ce26c29a300
diff --git a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/DefaultLispMapRecord.java b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/DefaultLispMapRecord.java
index df9012a..6f00376 100644
--- a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/DefaultLispMapRecord.java
+++ b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/DefaultLispMapRecord.java
@@ -15,8 +15,11 @@
*/
package org.onosproject.lisp.msg.protocols;
+import com.google.common.base.Objects;
import org.onosproject.lisp.msg.types.LispAfiAddress;
+import static com.google.common.base.MoreObjects.toStringHelper;
+
/**
* Default implementation of LispMapRecord.
*/
@@ -88,6 +91,42 @@
return eidPrefixAfi;
}
+ @Override
+ public String toString() {
+ return toStringHelper(this)
+ .add("record TTL", recordTtl)
+ .add("locatorCount", locatorCount)
+ .add("maskLength", maskLength)
+ .add("action", action)
+ .add("authoritative", authoritative)
+ .add("mapVersionNumber", mapVersionNumber)
+ .add("EID prefix AFI address", eidPrefixAfi).toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ DefaultLispMapRecord that = (DefaultLispMapRecord) o;
+ return Objects.equal(recordTtl, that.recordTtl) &&
+ Objects.equal(locatorCount, that.locatorCount) &&
+ Objects.equal(maskLength, that.maskLength) &&
+ Objects.equal(action, that.action) &&
+ Objects.equal(authoritative, that.authoritative) &&
+ Objects.equal(mapVersionNumber, that.mapVersionNumber) &&
+ Objects.equal(eidPrefixAfi, that.eidPrefixAfi);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hashCode(recordTtl, locatorCount, maskLength, action,
+ authoritative, mapVersionNumber, eidPrefixAfi);
+ }
+
public static final class DefaultMapRecordBuilder implements MapRecordBuilder {
private int recordTtl;
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
new file mode 100644
index 0000000..219d6ab
--- /dev/null
+++ b/protocols/lisp/msg/src/test/java/org/onosproject/lisp/msg/protocols/DefaultLispMapNotifyTest.java
@@ -0,0 +1,80 @@
+/*
+ * 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 DefaultLispMapNotify class.
+ */
+public class DefaultLispMapNotifyTest {
+
+ private LispMapNotify notify1;
+ private LispMapNotify sameAsNotify1;
+ private LispMapNotify notify2;
+
+ @Before
+ public void setup() {
+
+ LispMapNotify.NotifyBuilder builder1 =
+ new DefaultLispMapNotify.DefaultNotifyBuilder();
+
+ notify1 = builder1
+ .withKeyId((short) 1)
+ .withNonce(1L)
+ .withRecordCount((byte) 0x01)
+ .build();
+
+ LispMapNotify.NotifyBuilder builder2 =
+ new DefaultLispMapNotify.DefaultNotifyBuilder();
+
+ sameAsNotify1 = builder2
+ .withKeyId((short) 1)
+ .withNonce(1L)
+ .withRecordCount((byte) 0x01)
+ .build();
+
+ LispMapNotify.NotifyBuilder builder3 =
+ new DefaultLispMapNotify.DefaultNotifyBuilder();
+
+ notify2 = builder3
+ .withKeyId((short) 2)
+ .withNonce(2L)
+ .withRecordCount((byte) 0x02)
+ .build();
+ }
+
+ @Test
+ public void testEquality() {
+ new EqualsTester()
+ .addEqualityGroup(notify1, sameAsNotify1)
+ .addEqualityGroup(notify2).testEquals();
+ }
+
+ @Test
+ public void testConstruction() {
+ DefaultLispMapNotify notify = (DefaultLispMapNotify) notify1;
+
+ assertThat(notify.getKeyId(), is((short) 1));
+ assertThat(notify.getNonce(), is(1L));
+ assertThat(notify.getRecordCount(), is((byte) 0x01));
+ }
+}
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
new file mode 100644
index 0000000..78af45d
--- /dev/null
+++ b/protocols/lisp/msg/src/test/java/org/onosproject/lisp/msg/protocols/DefaultLispMapRecordTest.java
@@ -0,0 +1,88 @@
+/*
+ * 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 DefaultLispMapRecord class.
+ */
+public class DefaultLispMapRecordTest {
+
+ private LispMapRecord record1;
+ private LispMapRecord sameAsRecord1;
+ private LispMapRecord record2;
+
+ @Before
+ public void setup() {
+
+ LispMapRecord.MapRecordBuilder builder1 =
+ new DefaultLispMapRecord.DefaultMapRecordBuilder();
+
+ record1 = builder1
+ .withRecordTtl(100)
+ .withAuthoritative(true)
+ .withLocatorCount(100)
+ .withMapVersionNumber((short) 1)
+ .withMaskLength((byte) 0x01)
+ .build();
+
+ LispMapRecord.MapRecordBuilder builder2 =
+ new DefaultLispMapRecord.DefaultMapRecordBuilder();
+
+ sameAsRecord1 = builder2
+ .withRecordTtl(100)
+ .withAuthoritative(true)
+ .withLocatorCount(100)
+ .withMapVersionNumber((short) 1)
+ .withMaskLength((byte) 0x01)
+ .build();
+
+ LispMapRecord.MapRecordBuilder builder3 =
+ new DefaultLispMapRecord.DefaultMapRecordBuilder();
+
+ record2 = builder3
+ .withRecordTtl(200)
+ .withAuthoritative(false)
+ .withLocatorCount(200)
+ .withMapVersionNumber((short) 2)
+ .withMaskLength((byte) 0x02)
+ .build();
+ }
+
+ @Test
+ public void testEquality() {
+ new EqualsTester()
+ .addEqualityGroup(record1, sameAsRecord1)
+ .addEqualityGroup(record2).testEquals();
+ }
+
+ @Test
+ public void testConstruction() {
+ DefaultLispMapRecord record = (DefaultLispMapRecord) record1;
+
+ assertThat(record.getRecordTtl(), is(100));
+ assertThat(record.isAuthoritative(), is(true));
+ assertThat(record.getLocatorCount(), is(100));
+ assertThat(record.getMapVersionNumber(), is((short) 1));
+ assertThat(record.getMaskLength(), is((byte) 0x01));
+ }
+}
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
new file mode 100644
index 0000000..940345c
--- /dev/null
+++ b/protocols/lisp/msg/src/test/java/org/onosproject/lisp/msg/protocols/DefaultLispMapRegisterTest.java
@@ -0,0 +1,88 @@
+/*
+ * 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 DefaultLispMapRegister class.
+ */
+public class DefaultLispMapRegisterTest {
+
+ private LispMapRegister register1;
+ private LispMapRegister sameAsRegister1;
+ private LispMapRegister register2;
+
+ @Before
+ public void setup() {
+
+ LispMapRegister.RegisterBuilder builder1 =
+ new DefaultLispMapRegister.DefaultRegisterBuilder();
+
+ register1 = builder1
+ .withIsProxyMapReply(true)
+ .withIsWantMapNotify(false)
+ .withKeyId((short) 1)
+ .withNonce(1L)
+ .withRecordCount((byte) 0x01)
+ .build();
+
+ LispMapRegister.RegisterBuilder builder2 =
+ new DefaultLispMapRegister.DefaultRegisterBuilder();
+
+ sameAsRegister1 = builder2
+ .withIsProxyMapReply(true)
+ .withIsWantMapNotify(false)
+ .withKeyId((short) 1)
+ .withNonce(1L)
+ .withRecordCount((byte) 0x01)
+ .build();
+
+ LispMapRegister.RegisterBuilder builder3 =
+ new DefaultLispMapRegister.DefaultRegisterBuilder();
+
+ register2 = builder3
+ .withIsProxyMapReply(true)
+ .withIsWantMapNotify(false)
+ .withKeyId((short) 2)
+ .withNonce(2L)
+ .withRecordCount((byte) 0x02)
+ .build();
+ }
+
+ @Test
+ public void testEquality() {
+ new EqualsTester()
+ .addEqualityGroup(register1, sameAsRegister1)
+ .addEqualityGroup(register2).testEquals();
+ }
+
+ @Test
+ public void testConstruction() {
+ DefaultLispMapRegister register = (DefaultLispMapRegister) register1;
+
+ assertThat(register.isProxyMapReply(), is(true));
+ assertThat(register.isWantMapNotify(), is(false));
+ assertThat(register.getKeyId(), is((short) 1));
+ assertThat(register.getNonce(), is(1L));
+ assertThat(register.getRecordCount(), is((byte) 0x01));
+ }
+}
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
new file mode 100644
index 0000000..e078cd9
--- /dev/null
+++ b/protocols/lisp/msg/src/test/java/org/onosproject/lisp/msg/protocols/DefaultLispMapReplyTest.java
@@ -0,0 +1,87 @@
+/*
+ * 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 DefaultLispMapReply class.
+ */
+public class DefaultLispMapReplyTest {
+
+ private LispMapReply reply1;
+ private LispMapReply sameAsReply1;
+ private LispMapReply reply2;
+
+ @Before
+ public void setup() {
+
+ LispMapReply.ReplyBuilder builder1 =
+ new DefaultLispMapReply.DefaultReplyBuilder();
+
+ reply1 = builder1
+ .withIsEtr(true)
+ .withIsProbe(false)
+ .withIsSecurity(true)
+ .withNonce(1L)
+ .withRecordCount((byte) 0x01)
+ .build();
+
+ LispMapReply.ReplyBuilder builder2 =
+ new DefaultLispMapReply.DefaultReplyBuilder();
+
+ sameAsReply1 = builder2
+ .withIsEtr(true)
+ .withIsProbe(false)
+ .withIsSecurity(true)
+ .withNonce(1L)
+ .withRecordCount((byte) 0x01)
+ .build();
+
+ LispMapReply.ReplyBuilder builder3 =
+ new DefaultLispMapReply.DefaultReplyBuilder();
+ reply2 = builder3
+ .withIsEtr(false)
+ .withIsProbe(true)
+ .withIsSecurity(false)
+ .withNonce(2L)
+ .withRecordCount((byte) 0x02)
+ .build();
+ }
+
+ @Test
+ public void testEquality() {
+ new EqualsTester()
+ .addEqualityGroup(reply1, sameAsReply1)
+ .addEqualityGroup(reply2).testEquals();
+ }
+
+ @Test
+ public void testConstruction() {
+ DefaultLispMapReply reply = (DefaultLispMapReply) reply1;
+
+ assertThat(reply.isEtr(), is(true));
+ assertThat(reply.isProbe(), is(false));
+ assertThat(reply.isSecurity(), is(true));
+ assertThat(reply.getNonce(), is(1L));
+ assertThat(reply.getRecordCount(), is((byte) 0x01));
+ }
+}
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
new file mode 100644
index 0000000..13fafc8
--- /dev/null
+++ b/protocols/lisp/msg/src/test/java/org/onosproject/lisp/msg/protocols/DefaultLispMapRequestTest.java
@@ -0,0 +1,100 @@
+/*
+ * 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 DefaultLispMapRequest class.
+ */
+public class DefaultLispMapRequestTest {
+
+ private LispMapRequest request1;
+ private LispMapRequest sameAsRequest1;
+ private LispMapRequest request2;
+
+ @Before
+ public void setup() {
+
+ LispMapRequest.RequestBuilder builder1 =
+ new DefaultLispMapRequest.DefaultRequestBuilder();
+
+ request1 = builder1
+ .withIsAuthoritative(true)
+ .withIsMapDataPresent(true)
+ .withIsPitr(false)
+ .withIsProbe(false)
+ .withIsSmr(true)
+ .withIsSmrInvoked(false)
+ .withNonce(1L)
+ .withRecordCount((byte) 0x01)
+ .build();
+
+ LispMapRequest.RequestBuilder builder2 =
+ new DefaultLispMapRequest.DefaultRequestBuilder();
+
+ sameAsRequest1 = builder2
+ .withIsAuthoritative(true)
+ .withIsMapDataPresent(true)
+ .withIsPitr(false)
+ .withIsProbe(false)
+ .withIsSmr(true)
+ .withIsSmrInvoked(false)
+ .withNonce(1L)
+ .withRecordCount((byte) 0x01)
+ .build();
+
+ LispMapRequest.RequestBuilder builder3 =
+ new DefaultLispMapRequest.DefaultRequestBuilder();
+
+ request2 = builder3
+ .withIsAuthoritative(false)
+ .withIsMapDataPresent(false)
+ .withIsPitr(true)
+ .withIsProbe(true)
+ .withIsSmr(false)
+ .withIsSmrInvoked(true)
+ .withNonce(2L)
+ .withRecordCount((byte) 0x02)
+ .build();
+ }
+
+ @Test
+ public void testEquality() {
+ new EqualsTester()
+ .addEqualityGroup(request1, sameAsRequest1)
+ .addEqualityGroup(request2).testEquals();
+ }
+
+ @Test
+ public void testConstruction() {
+ DefaultLispMapRequest request = (DefaultLispMapRequest) request1;
+
+ assertThat(request.isAuthoritative(), is(true));
+ assertThat(request.isMapDataPresent(), is(true));
+ assertThat(request.isPitr(), is(false));
+ assertThat(request.isProbe(), is(false));
+ assertThat(request.isSmr(), is(true));
+ assertThat(request.isSmrInvoked(), is(false));
+ assertThat(request.getNonce(), is(1L));
+ assertThat(request.getRecordCount(), is((byte) 0x01));
+ }
+}