summaryrefslogtreecommitdiffstats
path: root/lisp/lisp2vpp/src/test/java/io/fd/hc2vpp/lisp/translate/write
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/lisp2vpp/src/test/java/io/fd/hc2vpp/lisp/translate/write')
-rw-r--r--lisp/lisp2vpp/src/test/java/io/fd/hc2vpp/lisp/translate/write/AdjacencyCustomizerTest.java90
-rwxr-xr-xlisp/lisp2vpp/src/test/java/io/fd/hc2vpp/lisp/translate/write/LocalMappingCustomizerTest.java44
-rwxr-xr-xlisp/lisp2vpp/src/test/java/io/fd/hc2vpp/lisp/translate/write/RemoteMappingCustomizerTest.java41
3 files changed, 162 insertions, 13 deletions
diff --git a/lisp/lisp2vpp/src/test/java/io/fd/hc2vpp/lisp/translate/write/AdjacencyCustomizerTest.java b/lisp/lisp2vpp/src/test/java/io/fd/hc2vpp/lisp/translate/write/AdjacencyCustomizerTest.java
index bf19ae581..1c487e3ae 100644
--- a/lisp/lisp2vpp/src/test/java/io/fd/hc2vpp/lisp/translate/write/AdjacencyCustomizerTest.java
+++ b/lisp/lisp2vpp/src/test/java/io/fd/hc2vpp/lisp/translate/write/AdjacencyCustomizerTest.java
@@ -19,7 +19,9 @@ package io.fd.hc2vpp.lisp.translate.write;
import static io.fd.hc2vpp.lisp.translate.AdjacencyData.ADDRESS_ONE;
import static io.fd.hc2vpp.lisp.translate.AdjacencyData.ADDRESS_THREE;
import static io.fd.hc2vpp.lisp.translate.AdjacencyData.LOCAL_EID_ONE;
+import static io.fd.hc2vpp.lisp.translate.AdjacencyData.LOCAL_EID_PREFIX_ONE;
import static io.fd.hc2vpp.lisp.translate.AdjacencyData.REMOTE_EID_ONE;
+import static io.fd.hc2vpp.lisp.translate.AdjacencyData.REMOTE_EID_PREFIX_ONE;
import static io.fd.hc2vpp.lisp.translate.read.dump.executor.params.MappingsDumpParams.EidType.IPV4;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
@@ -28,6 +30,7 @@ import static org.junit.Assert.fail;
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyZeroInteractions;
import static org.mockito.Mockito.when;
import io.fd.hc2vpp.common.test.write.WriterCustomizerTest;
@@ -42,10 +45,12 @@ import org.mockito.ArgumentCaptor;
import org.mockito.Captor;
import org.mockito.Mock;
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.inet.types.rev130715.Ipv4Prefix;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.InstanceIdType;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.Ipv4Afi;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.MacAfi;
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.Ipv4PrefixBuilder;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.MacBuilder;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev170315.MappingId;
@@ -81,9 +86,13 @@ public class AdjacencyCustomizerTest extends WriterCustomizerTest implements Eid
private InstanceIdentifier<Adjacency> emptyId;
private InstanceIdentifier<Adjacency> validId;
- private Adjacency emptyData;
+ private Adjacency failDataBefore;
+ private Adjacency failDataAfter;
+ private Adjacency ignoreDataBefore;
+ private Adjacency ignoreDataAfter;
private Adjacency invalidData;
private Adjacency validData;
+ private Adjacency validDataPrefixBased;
@Before
public void init() {
@@ -100,7 +109,41 @@ public class AdjacencyCustomizerTest extends WriterCustomizerTest implements Eid
.child(Adjacencies.class)
.child(Adjacency.class, new AdjacencyKey("adj-one"));
- emptyData = new AdjacencyBuilder().build();
+ failDataBefore = new AdjacencyBuilder().setLocalEid(new LocalEidBuilder()
+ .setAddress(new Ipv4PrefixBuilder()
+ .setIpv4Prefix(new Ipv4Prefix("192.168.2.1/24"))
+ .build())
+ .build()).build();
+
+ failDataAfter = new AdjacencyBuilder().setLocalEid(new LocalEidBuilder()
+ .setAddress(new Ipv4PrefixBuilder()
+ .setIpv4Prefix(new Ipv4Prefix("192.168.2.1/16"))
+ .build())
+ .build()).build();
+
+ ignoreDataBefore = new AdjacencyBuilder().setLocalEid(new LocalEidBuilder()
+ .setAddress(new Ipv4PrefixBuilder()
+ .setIpv4Prefix(new Ipv4Prefix("192.168.2.1/24"))
+ .build())
+ .build())
+ .setRemoteEid(new RemoteEidBuilder()
+ .setAddress(new Ipv4PrefixBuilder()
+ .setIpv4Prefix(new Ipv4Prefix("192.168.3.1/24"))
+ .build())
+ .build())
+ .build();
+
+ ignoreDataAfter = new AdjacencyBuilder().setLocalEid(new LocalEidBuilder()
+ .setAddress(new Ipv4PrefixBuilder()
+ .setIpv4Prefix(new Ipv4Prefix("192.168.2.0/24"))
+ .build())
+ .build())
+ .setRemoteEid(new RemoteEidBuilder()
+ .setAddress(new Ipv4PrefixBuilder()
+ .setIpv4Prefix(new Ipv4Prefix("192.168.3.4/24"))
+ .build())
+ .build())
+ .build();
invalidData = new AdjacencyBuilder().setId("ID").setLocalEid(
new LocalEidBuilder()
@@ -126,13 +169,25 @@ public class AdjacencyCustomizerTest extends WriterCustomizerTest implements Eid
.setAddressType(Ipv4Afi.class)
.setAddress(new Ipv4Builder().setIpv4(ADDRESS_THREE).build()).build()).build();
+ validDataPrefixBased = new AdjacencyBuilder()
+ .setLocalEid(new LocalEidBuilder()
+ .setAddressType(LOCAL_EID_PREFIX_ONE.getAddressType())
+ .setVirtualNetworkId(LOCAL_EID_PREFIX_ONE.getVirtualNetworkId())
+ .setAddress(LOCAL_EID_PREFIX_ONE.getAddress()).build())
+ .setRemoteEid(new RemoteEidBuilder()
+ .setVirtualNetworkId(REMOTE_EID_PREFIX_ONE.getVirtualNetworkId())
+ .setAddressType(REMOTE_EID_PREFIX_ONE.getAddressType())
+ .setAddress(REMOTE_EID_PREFIX_ONE.getAddress())
+ .build())
+ .build();
+
when(api.oneAddDelAdjacency(any())).thenReturn(future(new OneAddDelAdjacencyReply()));
}
@Test
public void writeCurrentAttributesNoKey() throws Exception {
try {
- customizer.writeCurrentAttributes(emptyId, emptyData, writeContext);
+ customizer.writeCurrentAttributes(emptyId, failDataBefore, writeContext);
} catch (NullPointerException e) {
verify(api, times(0)).oneAddDelAdjacency(any());
return;
@@ -161,7 +216,19 @@ public class AdjacencyCustomizerTest extends WriterCustomizerTest implements Eid
customizer.writeCurrentAttributes(validId, validData, writeContext);
verify(api, times(1)).oneAddDelAdjacency(requestCaptor.capture());
verifyRequest(requestCaptor.getValue(), 1, new byte[]{-64, -88, 2, 1}, 32, new byte[]{-64, -88, 2, 3},
- 32, IPV4.getValue(), 2);
+ 32, IPV4.getVppTypeBinding(), 2);
+ verify(adjacenciesMappingContext, times(1))
+ .addEidPair("adj-one", "local-eid-one", "remote-eid-one", mappingContext);
+ }
+
+ @Test
+ public void writeCurrentAttributesPrefixBased() throws Exception {
+ defineEidMapping(mappingContext, LOCAL_EID_PREFIX_ONE, new MappingId("local-eid-one"), "local-mapping-context");
+ defineEidMapping(mappingContext, REMOTE_EID_PREFIX_ONE, new MappingId("remote-eid-one"), "remote-mapping-context");
+ customizer.writeCurrentAttributes(validId, validDataPrefixBased, writeContext);
+ verify(api, times(1)).oneAddDelAdjacency(requestCaptor.capture());
+ verifyRequest(requestCaptor.getValue(), 1, new byte[]{-64, -88, 2, 1}, 24, new byte[]{-64, -88, 2, 3},
+ 16, IPV4.getVppTypeBinding(), 2);
verify(adjacenciesMappingContext, times(1))
.addEidPair("adj-one", "local-eid-one", "remote-eid-one", mappingContext);
}
@@ -196,14 +263,21 @@ public class AdjacencyCustomizerTest extends WriterCustomizerTest implements Eid
}
@Test(expected = UnsupportedOperationException.class)
- public void updateCurrentAttributes() throws Exception {
- customizer.updateCurrentAttributes(emptyId, emptyData, emptyData, writeContext);
+ public void updateCurrentAttributesFail() throws Exception {
+ customizer.updateCurrentAttributes(emptyId, failDataBefore, failDataAfter, writeContext);
+ }
+
+ @Test
+ public void updateCurrentAttributesIgnore() throws Exception {
+ // should not throw in this case
+ customizer.updateCurrentAttributes(emptyId, ignoreDataBefore, ignoreDataAfter, writeContext);
+ verifyZeroInteractions(api);
}
@Test
public void deleteCurrentAttributesNoKey() throws Exception {
try {
- customizer.deleteCurrentAttributes(emptyId, emptyData, writeContext);
+ customizer.deleteCurrentAttributes(emptyId, failDataBefore, writeContext);
} catch (NullPointerException e) {
verify(api, times(0)).oneAddDelAdjacency(any());
return;
@@ -222,7 +296,7 @@ public class AdjacencyCustomizerTest extends WriterCustomizerTest implements Eid
customizer.deleteCurrentAttributes(validId, validData, writeContext);
verify(api, times(1)).oneAddDelAdjacency(requestCaptor.capture());
verifyRequest(requestCaptor.getValue(), 0, new byte[]{-64, -88, 2, 1}, 32, new byte[]{-64, -88, 2, 3},
- 32, IPV4.getValue(), 2);
+ 32, IPV4.getVppTypeBinding(), 2);
verify(adjacenciesMappingContext, times(1)).removeForIndex("adj-one", mappingContext);
}
diff --git a/lisp/lisp2vpp/src/test/java/io/fd/hc2vpp/lisp/translate/write/LocalMappingCustomizerTest.java b/lisp/lisp2vpp/src/test/java/io/fd/hc2vpp/lisp/translate/write/LocalMappingCustomizerTest.java
index f945415a1..c49823f7a 100755
--- a/lisp/lisp2vpp/src/test/java/io/fd/hc2vpp/lisp/translate/write/LocalMappingCustomizerTest.java
+++ b/lisp/lisp2vpp/src/test/java/io/fd/hc2vpp/lisp/translate/write/LocalMappingCustomizerTest.java
@@ -24,6 +24,7 @@ import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyZeroInteractions;
import static org.mockito.Mockito.when;
import io.fd.hc2vpp.common.test.write.WriterCustomizerTest;
@@ -41,8 +42,10 @@ import org.mockito.ArgumentCaptor;
import org.mockito.Captor;
import org.mockito.Mock;
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.inet.types.rev130715.Ipv4Prefix;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.Ipv4Afi;
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.Ipv4PrefixBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev170315.HmacKeyType;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev170315.Lisp;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev170315.MappingId;
@@ -70,6 +73,12 @@ public class LocalMappingCustomizerTest extends WriterCustomizerTest implements
private InstanceIdentifier<LocalMapping> id;
private LocalMapping mapping;
private LocalMapping mappingWithHmacKey;
+
+ private LocalMapping failUpdateBefore;
+ private LocalMapping failUpdateAfter;
+ private LocalMapping ignoreUpdateBefore;
+ private LocalMapping ignoreUpdateAfter;
+
private LocalMappingCustomizer customizer;
@Override
@@ -95,6 +104,28 @@ public class LocalMappingCustomizerTest extends WriterCustomizerTest implements
.build())
.build();
+ failUpdateBefore = new LocalMappingBuilder()
+ .setEid(new EidBuilder().setAddress(new Ipv4PrefixBuilder()
+ .setIpv4Prefix(new Ipv4Prefix("192.168.2.1/24"))
+ .build()).build())
+ .build();
+ failUpdateAfter = new LocalMappingBuilder()
+ .setEid(new EidBuilder().setAddress(new Ipv4PrefixBuilder()
+ .setIpv4Prefix(new Ipv4Prefix("192.168.2.1/16"))
+ .build()).build())
+ .build();
+
+ ignoreUpdateBefore = new LocalMappingBuilder()
+ .setEid(new EidBuilder().setAddress(new Ipv4PrefixBuilder()
+ .setIpv4Prefix(new Ipv4Prefix("192.168.2.1/24"))
+ .build()).build())
+ .build();
+ ignoreUpdateAfter = new LocalMappingBuilder()
+ .setEid(new EidBuilder().setAddress(new Ipv4PrefixBuilder()
+ .setIpv4Prefix(new Ipv4Prefix("192.168.2.4/24"))
+ .build()).build())
+ .build();
+
id = InstanceIdentifier.builder(Lisp.class)
.child(LispFeatureData.class)
.child(EidTable.class)
@@ -171,8 +202,14 @@ public class LocalMappingCustomizerTest extends WriterCustomizerTest implements
}
@Test(expected = UnsupportedOperationException.class)
- public void testUpdateCurrentAttributes() throws WriteFailedException {
- customizer.updateCurrentAttributes(null, null, null, writeContext);
+ public void testUpdateCurrentAttributesFail() throws WriteFailedException {
+ customizer.updateCurrentAttributes(null, failUpdateBefore, failUpdateAfter, writeContext);
+ }
+
+ @Test
+ public void testUpdateCurrentAttributesIgnore() throws WriteFailedException {
+ customizer.updateCurrentAttributes(null, ignoreUpdateBefore, ignoreUpdateAfter, writeContext);
+ verifyZeroInteractions(api);
}
@Test
@@ -194,7 +231,8 @@ public class LocalMappingCustomizerTest extends WriterCustomizerTest implements
}
@Test
- public void testDeleteCurrentAttributesWithHmacKey() throws WriteFailedException, InterruptedException, ExecutionException {
+ public void testDeleteCurrentAttributesWithHmacKey()
+ throws WriteFailedException, InterruptedException, ExecutionException {
when(eidMappingContext.containsEid(any(), eq(mappingContext))).thenReturn(true);
customizer.deleteCurrentAttributes(id, mappingWithHmacKey, writeContext);
diff --git a/lisp/lisp2vpp/src/test/java/io/fd/hc2vpp/lisp/translate/write/RemoteMappingCustomizerTest.java b/lisp/lisp2vpp/src/test/java/io/fd/hc2vpp/lisp/translate/write/RemoteMappingCustomizerTest.java
index 35cc87689..62823df73 100755
--- a/lisp/lisp2vpp/src/test/java/io/fd/hc2vpp/lisp/translate/write/RemoteMappingCustomizerTest.java
+++ b/lisp/lisp2vpp/src/test/java/io/fd/hc2vpp/lisp/translate/write/RemoteMappingCustomizerTest.java
@@ -26,6 +26,7 @@ import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyZeroInteractions;
import static org.mockito.Mockito.when;
import io.fd.hc2vpp.common.test.write.WriterCustomizerTest;
@@ -44,8 +45,10 @@ import org.mockito.Captor;
import org.mockito.Mock;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
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.inet.types.rev130715.Ipv6Prefix;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.Ipv4Afi;
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.Ipv6PrefixBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev170315.Lisp;
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;
@@ -77,6 +80,12 @@ public class RemoteMappingCustomizerTest extends WriterCustomizerTest implements
private RemoteMapping negativeMapping;
private RemoteMapping positiveMappingNoPrioNoWeight;
private RemoteMapping positiveMappingPrioWeight;
+
+ private RemoteMapping failUpdateBefore;
+ private RemoteMapping failUpdateAfter;
+ private RemoteMapping ignoreUpdateBefore;
+ private RemoteMapping ignoreUpdateAfter;
+
private InstanceIdentifier<RemoteMapping> id;
@Mock
@@ -95,6 +104,28 @@ public class RemoteMappingCustomizerTest extends WriterCustomizerTest implements
mappingId = new MappingId("REMOTE");
final RemoteMappingKey key = new RemoteMappingKey(mappingId);
+ failUpdateBefore = new RemoteMappingBuilder()
+ .setEid(new EidBuilder().setAddress(new Ipv6PrefixBuilder()
+ .setIpv6Prefix(new Ipv6Prefix("2001:0db8:85a3:0000:0000:8a2e:0370:7334/64"))
+ .build()).build())
+ .build();
+ failUpdateAfter = new RemoteMappingBuilder()
+ .setEid(new EidBuilder().setAddress(new Ipv6PrefixBuilder()
+ .setIpv6Prefix(new Ipv6Prefix("2001:0db8:85a3:0000:0000:8a2e:0370:7334/48"))
+ .build()).build())
+ .build();
+
+ ignoreUpdateBefore = new RemoteMappingBuilder()
+ .setEid(new EidBuilder().setAddress(new Ipv6PrefixBuilder()
+ .setIpv6Prefix(new Ipv6Prefix("2001:0db8:85a3:0000:0000:8a2e:0370:7334/64"))
+ .build()).build())
+ .build();
+ ignoreUpdateAfter = new RemoteMappingBuilder()
+ .setEid(new EidBuilder().setAddress(new Ipv6PrefixBuilder()
+ .setIpv6Prefix(new Ipv6Prefix("2001:0db8:85a3:0000:0000:8a2e:0370:7348/64"))
+ .build()).build())
+ .build();
+
negativeMapping = new RemoteMappingBuilder()
.setEid(eid)
.setLocatorList(new NegativeMappingBuilder()
@@ -205,8 +236,14 @@ public class RemoteMappingCustomizerTest extends WriterCustomizerTest implements
}
@Test(expected = UnsupportedOperationException.class)
- public void testUpdateCurrentAttributes() throws WriteFailedException {
- customizer.updateCurrentAttributes(null, null, null, writeContext);
+ public void testUpdateCurrentAttributesFail() throws WriteFailedException {
+ customizer.updateCurrentAttributes(null, failUpdateBefore, failUpdateAfter, writeContext);
+ }
+
+ @Test
+ public void testUpdateCurrentAttributesIgnore() throws WriteFailedException {
+ customizer.updateCurrentAttributes(null, ignoreUpdateBefore, ignoreUpdateAfter, writeContext);
+ verifyZeroInteractions(api);
}
@Test(expected = NullPointerException.class)