summaryrefslogtreecommitdiffstats
path: root/lisp/lisp2vpp/src/test/java/io/fd/hc2vpp/lisp/translate/read/RemoteMappingCustomizerTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/lisp2vpp/src/test/java/io/fd/hc2vpp/lisp/translate/read/RemoteMappingCustomizerTest.java')
-rw-r--r--lisp/lisp2vpp/src/test/java/io/fd/hc2vpp/lisp/translate/read/RemoteMappingCustomizerTest.java70
1 files changed, 62 insertions, 8 deletions
diff --git a/lisp/lisp2vpp/src/test/java/io/fd/hc2vpp/lisp/translate/read/RemoteMappingCustomizerTest.java b/lisp/lisp2vpp/src/test/java/io/fd/hc2vpp/lisp/translate/read/RemoteMappingCustomizerTest.java
index 59caeb03a..d239f379b 100644
--- a/lisp/lisp2vpp/src/test/java/io/fd/hc2vpp/lisp/translate/read/RemoteMappingCustomizerTest.java
+++ b/lisp/lisp2vpp/src/test/java/io/fd/hc2vpp/lisp/translate/read/RemoteMappingCustomizerTest.java
@@ -42,6 +42,8 @@ import org.opendaylight.yang.gen.v1.urn.honeycomb.params.xml.ns.yang.eid.mapping
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.Ipv4;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.Ipv4Builder;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.Ipv4Prefix;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.Ipv4PrefixBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev170315.MapReplyAction;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev170315.MappingId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev170315.dp.subtable.grouping.RemoteMappings;
@@ -66,6 +68,9 @@ public class RemoteMappingCustomizerTest
private static final Ipv4
EID_ADDRESS = new Ipv4Builder().setIpv4(new Ipv4Address("192.168.2.1")).build();
+ private static final Ipv4Prefix
+ EID_V4_PREFIX_ADDRESS = new Ipv4PrefixBuilder().setIpv4Prefix(new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix("192.168.2.1/24")).build();
+
@Mock
private EidMappingContext eidMappingContext;
@@ -83,12 +88,11 @@ public class RemoteMappingCustomizerTest
.child(VrfSubtable.class)
.child(RemoteMappings.class)
.child(RemoteMapping.class, new RemoteMappingKey(new MappingId("remote-mapping")));
- mockMappings();
defineMapping(mappingContext,"loc-set",1,"loc-set-context");
}
- private void mockDumpDataActionZero() {
+ private void mockDumpDataAddressActionZero() {
OneEidTableDetailsReplyDump replyDump = new OneEidTableDetailsReplyDump();
OneEidTableDetails detail = new OneEidTableDetails();
detail.action = 0;
@@ -110,7 +114,29 @@ public class RemoteMappingCustomizerTest
when(api.oneLocatorDump(any())).thenReturn(future(rlocs));
}
- private void mockDumpDataActionOne() {
+ private void mockDumpDataPrefixActionZero() {
+ OneEidTableDetailsReplyDump replyDump = new OneEidTableDetailsReplyDump();
+ OneEidTableDetails detail = new OneEidTableDetails();
+ detail.action = 0;
+ detail.authoritative = 1;
+ detail.context = 4;
+ detail.eid = new byte[]{-64, -88, 2, 1};
+ detail.eidPrefixLen = 24;
+ detail.isLocal = 0;
+ detail.locatorSetIndex = -1;
+ detail.ttl = 7;
+ detail.vni = 12;
+
+ replyDump.oneEidTableDetails = ImmutableList.of(detail);
+
+ when(api.oneEidTableDump(any())).thenReturn(future(replyDump));
+
+ OneLocatorDetailsReplyDump rlocs = new OneLocatorDetailsReplyDump();
+ rlocs.oneLocatorDetails = Collections.emptyList();
+ when(api.oneLocatorDump(any())).thenReturn(future(rlocs));
+ }
+
+ private void mockDumpDataAddressActionOne() {
OneEidTableDetailsReplyDump replyDump = new OneEidTableDetailsReplyDump();
OneEidTableDetails detail = new OneEidTableDetails();
detail.action = 1;
@@ -158,19 +184,28 @@ public class RemoteMappingCustomizerTest
}
- private void mockMappings() {
+ private void mockAddressMappings() {
when(eidMappingContext.getId(any(Eid.class), any(MappingContext.class)))
.thenReturn(new MappingId("remote-mapping"));
when(eidMappingContext.containsEid(new MappingId("remote-mapping"), mappingContext)).thenReturn(true);
when(eidMappingContext.getEid(new MappingId("remote-mapping"), mappingContext))
.thenReturn(new EidBuilder().setAddress(EID_ADDRESS).build());
+ }
+
+ private void mockPrefixMappings() {
+ when(eidMappingContext.getId(any(Eid.class), any(MappingContext.class)))
+ .thenReturn(new MappingId("remote-mapping"));
+ when(eidMappingContext.containsEid(new MappingId("remote-mapping"), mappingContext)).thenReturn(true);
+ when(eidMappingContext.getEid(new MappingId("remote-mapping"), mappingContext))
+ .thenReturn(new EidBuilder().setAddress(EID_V4_PREFIX_ADDRESS).build());
}
@Test
public void readCurrentAttributesNegativeMappingOne() throws Exception {
- mockDumpDataActionOne();
+ mockAddressMappings();
+ mockDumpDataAddressActionOne();
RemoteMappingBuilder builder = new RemoteMappingBuilder();
getCustomizer().readCurrentAttributes(validId, builder, ctx);
@@ -187,7 +222,8 @@ public class RemoteMappingCustomizerTest
@Test
public void readCurrentAttributesNegativeMappingZero() throws Exception {
- mockDumpDataActionZero();
+ mockAddressMappings();
+ mockDumpDataAddressActionZero();
RemoteMappingBuilder builder = new RemoteMappingBuilder();
getCustomizer().readCurrentAttributes(validId, builder, ctx);
@@ -202,7 +238,25 @@ public class RemoteMappingCustomizerTest
}
@Test
+ public void readCurrentAttributesPrefixBasedNegativeMappingZero() throws Exception {
+ mockPrefixMappings();
+ mockDumpDataPrefixActionZero();
+ RemoteMappingBuilder builder = new RemoteMappingBuilder();
+ getCustomizer().readCurrentAttributes(validId, builder, ctx);
+
+ RemoteMapping mapping = builder.build();
+
+ assertNotNull(mapping);
+ assertEquals(true, compareAddresses(EID_V4_PREFIX_ADDRESS, mapping.getEid().getAddress()));
+ assertEquals(true, mapping.getAuthoritative().isA());
+ assertEquals(7L, mapping.getTtl().longValue());
+ assertEquals(MapReplyAction.NoAction,
+ ((NegativeMapping) mapping.getLocatorList()).getMapReply().getMapReplyAction());
+ }
+
+ @Test
public void readCurrentAttributesPositiveMapping() throws Exception {
+ mockAddressMappings();
mockDumpDataActionZeroWithRemotes();
RemoteMappingBuilder builder = new RemoteMappingBuilder();
getCustomizer().readCurrentAttributes(validId, builder, ctx);
@@ -223,10 +277,10 @@ public class RemoteMappingCustomizerTest
assertEquals(2, locator.getWeight().shortValue());
}
-
@Test
public void getAllIds() throws Exception {
- mockDumpDataActionOne();
+ mockAddressMappings();
+ mockDumpDataAddressActionOne();
final List<RemoteMappingKey> keys = getCustomizer().getAllIds(validId, ctx);
assertNotNull(keys);