summaryrefslogtreecommitdiffstats
path: root/routing/routing-impl/src/test/java/io/fd/hc2vpp/routing/write/Ipv6RouteCustomizerTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'routing/routing-impl/src/test/java/io/fd/hc2vpp/routing/write/Ipv6RouteCustomizerTest.java')
-rw-r--r--routing/routing-impl/src/test/java/io/fd/hc2vpp/routing/write/Ipv6RouteCustomizerTest.java124
1 files changed, 62 insertions, 62 deletions
diff --git a/routing/routing-impl/src/test/java/io/fd/hc2vpp/routing/write/Ipv6RouteCustomizerTest.java b/routing/routing-impl/src/test/java/io/fd/hc2vpp/routing/write/Ipv6RouteCustomizerTest.java
index 171b59786..0d78ca536 100644
--- a/routing/routing-impl/src/test/java/io/fd/hc2vpp/routing/write/Ipv6RouteCustomizerTest.java
+++ b/routing/routing-impl/src/test/java/io/fd/hc2vpp/routing/write/Ipv6RouteCustomizerTest.java
@@ -17,18 +17,13 @@
package io.fd.hc2vpp.routing.write;
import static io.fd.hc2vpp.routing.helpers.InterfaceTestHelper.INTERFACE_INDEX;
-import static io.fd.hc2vpp.routing.helpers.InterfaceTestHelper.INTERFACE_NAME;
+import static org.mockito.Mockito.when;
+import com.google.common.base.Optional;
import com.google.common.collect.ImmutableList;
-import io.fd.hc2vpp.common.test.write.WriterCustomizerTest;
-import io.fd.hc2vpp.common.translate.util.MultiNamingContext;
-import io.fd.hc2vpp.common.translate.util.NamingContext;
+import io.fd.hc2vpp.fib.management.FibManagementIIds;
import io.fd.hc2vpp.routing.Ipv6RouteData;
-import io.fd.hc2vpp.routing.helpers.ClassifyTableTestHelper;
-import io.fd.hc2vpp.routing.helpers.RoutingRequestTestHelper;
-import io.fd.hc2vpp.routing.helpers.SchemaContextTestHelper;
import io.fd.hc2vpp.routing.naming.Ipv6RouteNamesFactory;
-import io.fd.hc2vpp.vpp.classifier.context.VppClassifierContextManager;
import io.fd.honeycomb.test.tools.HoneycombTestRunner;
import io.fd.honeycomb.test.tools.annotations.InjectTestData;
import io.fd.honeycomb.translate.write.WriteFailedException;
@@ -37,7 +32,6 @@ import org.junit.Test;
import org.junit.runner.RunWith;
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.Ipv6Prefix;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv6.unicast.routing.rev180313.StaticRoutes1;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv6.unicast.routing.rev180313.routing.control.plane.protocols.control.plane.protocol._static.routes.Ipv6;
@@ -45,59 +39,63 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv6.unicas
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv6.unicast.routing.rev180313.routing.control.plane.protocols.control.plane.protocol._static.routes.ipv6.RouteBuilder;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv6.unicast.routing.rev180313.routing.control.plane.protocols.control.plane.protocol._static.routes.ipv6.RouteKey;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv6.unicast.routing.rev180313.routing.control.plane.protocols.control.plane.protocol._static.routes.ipv6.route.NextHopBuilder;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev180313.Static;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev180313.next.hop.content.next.hop.options.TableLookupCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev180313.routing.ControlPlaneProtocols;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev180313.routing.control.plane.protocols.ControlPlaneProtocol;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev180313.routing.control.plane.protocols.ControlPlaneProtocolKey;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev180313.routing.control.plane.protocols.control.plane.protocol.StaticRoutes;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.vpp.routing.types.rev180406.VniReference;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.fib.table.management.rev180521.VniReference;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.fib.table.management.rev180521.vpp.fib.table.management.fib.tables.Table;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.fib.table.management.rev180521.vpp.fib.table.management.fib.tables.TableBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.fib.table.management.rev180521.vpp.fib.table.management.fib.tables.TableKey;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier;
@RunWith(HoneycombTestRunner.class)
-public class Ipv6RouteCustomizerTest extends WriterCustomizerTest
- implements RoutingRequestTestHelper, ClassifyTableTestHelper, SchemaContextTestHelper {
-
- private static final int ROUTE_PROTOCOL_INDEX = 1;
- public static final Ipv6Prefix IPV_6_PREFIX = new Ipv6Prefix("2001:0db8:0a0b:12f0:0000:0000:0000:0001/64");
+public class Ipv6RouteCustomizerTest extends RouteCustomizerTest {
+
+ private static final TableKey
+ SEC_TABLE_KEY = new TableKey(
+ org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.fib.table.management.rev180521.Ipv6.class,
+ SEC_TABLE_ID);
+ private static final Table
+ IPV6_TABLE = new TableBuilder().setName("VRF-IPV6-4")
+ .setKey(SEC_TABLE_KEY).setTableId(SEC_TABLE_KEY.getTableId())
+ .setAddressFamily(SEC_TABLE_KEY.getAddressFamily()).build();
+ private static final Ipv6Prefix IPV_6_PREFIX = new Ipv6Prefix("2001:0db8:0a0b:12f0:0000:0000:0000:0001/64");
+
+ private static final InstanceIdentifier<Route> ROUTE_IID = CONTROL_PROTOCOL_IID
+ .child(StaticRoutes.class)
+ .augmentation(StaticRoutes1.class)
+ .child(Ipv6.class)
+ .child(Route.class);
+ private static final InstanceIdentifier<Route> ROUTE_INVALID_IID = CONTROL_PROTOCOL_INVALID_IID
+ .child(StaticRoutes.class)
+ .augmentation(StaticRoutes1.class)
+ .child(Ipv6.class)
+ .child(Route.class);
@Captor
private ArgumentCaptor<IpAddDelRoute> requestCaptor;
- @Mock
- private VppClassifierContextManager classifyManager;
-
- @Mock
- private MultiNamingContext routeHopContext;
-
- private NamingContext interfaceContext;
- private NamingContext routeContext;
- private NamingContext routingProtocolContext;
private Ipv6RouteCustomizer customizer;
-
- private InstanceIdentifier<Route> validId;
private Ipv6RouteNamesFactory namesFactory;
@Override
protected void setUpTest() throws Exception {
- interfaceContext = new NamingContext("interface", "interface-context");
- routeContext = new NamingContext("interface", "interface-context");
- routingProtocolContext = new NamingContext("routing-protocol", "routing-protocol-context");
- customizer =
- new Ipv6RouteCustomizer(api, interfaceContext, routeContext, routingProtocolContext, routeHopContext,
- classifyManager);
-
- validId = InstanceIdentifier.create(ControlPlaneProtocols.class)
- .child(ControlPlaneProtocol.class, new ControlPlaneProtocolKey(ROUTE_PROTOCOL_NAME, Static.class))
- .child(StaticRoutes.class)
- .augmentation(StaticRoutes1.class)
- .child(Ipv6.class)
- .child(Route.class);
-
+ super.setUpTest();
+ customizer = new Ipv6RouteCustomizer(api, interfaceContext, routingProtocolContext, routingProtocolContext,
+ routeHopContext, classifyManager);
namesFactory = new Ipv6RouteNamesFactory(interfaceContext, routingProtocolContext);
- defineMapping(mappingContext, INTERFACE_NAME, INTERFACE_INDEX, "interface-context");
- addMapping(classifyManager, CLASSIFY_TABLE_NAME, CLASSIFY_TABLE_INDEX, mappingContext);
- defineMapping(mappingContext, ROUTE_PROTOCOL_NAME, ROUTE_PROTOCOL_INDEX, "routing-protocol-context");
+ KeyedInstanceIdentifier<Table, TableKey> secondaryFibIid =
+ FibManagementIIds.FM_FIB_TABLES.child(Table.class, SEC_TABLE_KEY);
+ when(writeContext.readAfter(secondaryFibIid)).thenReturn(Optional.of(IPV6_TABLE));
+ }
+
+ @Test(expected = WriteFailedException.class)
+ public void testWriteSingleInvalidHop(
+ @InjectTestData(resourcePath = "/ipv6/simplehop/simpleHopRouteWithClassifier.json", id = STATIC_ROUTE_PATH) StaticRoutes route)
+ throws WriteFailedException {
+ whenAddRouteThenSuccess(api);
+ customizer.writeCurrentAttributes(ROUTE_INVALID_IID, getIpv6RouteWithId(route, IPV_6_PREFIX), writeContext);
+ verifyInvocation(0, ImmutableList.of(), api, requestCaptor);
}
@Test
@@ -105,11 +103,11 @@ public class Ipv6RouteCustomizerTest extends WriterCustomizerTest
@InjectTestData(resourcePath = "/ipv6/simplehop/simpleHopRouteWithClassifier.json", id = STATIC_ROUTE_PATH) StaticRoutes route)
throws WriteFailedException {
whenAddRouteThenSuccess(api);
- customizer.writeCurrentAttributes(validId, getIpv6RouteWithId(route, IPV_6_PREFIX), writeContext);
+ customizer.writeCurrentAttributes(ROUTE_IID, getIpv6RouteWithId(route, IPV_6_PREFIX), writeContext);
verifyInvocation(1, ImmutableList
.of(desiredFlaglessResult(1, 1, 0, Ipv6RouteData.FIRST_ADDRESS_AS_ARRAY, 64,
- Ipv6RouteData.SECOND_ADDRESS_AS_ARRAY, INTERFACE_INDEX, 0, ROUTE_PROTOCOL_INDEX,
- 0, CLASSIFY_TABLE_INDEX, 1)), api, requestCaptor);
+ Ipv6RouteData.SECOND_ADDRESS_AS_ARRAY, INTERFACE_INDEX, 0, TABLE_ID.intValue(),
+ 0, CLASSIFY_TABLE_INDEX, 1)), api, requestCaptor);
}
//TODO - https://jira.fd.io/browse/HONEYCOMB-396
@@ -120,14 +118,16 @@ public class Ipv6RouteCustomizerTest extends WriterCustomizerTest
.setDestinationPrefix(IPV_6_PREFIX)
.setNextHop(new NextHopBuilder().setNextHopOptions(new TableLookupCaseBuilder()
.setSecondaryVrf(new VniReference(4L))
+ .setAddressFamily(
+ org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.fib.table.management.rev180521.Ipv6.class)
.build()).build())
.build();
whenAddRouteThenSuccess(api);
noMappingDefined(mappingContext, namesFactory.uniqueRouteName(ROUTE_PROTOCOL_NAME, route), "route-context");
- customizer.writeCurrentAttributes(validId, route, writeContext);
+ customizer.writeCurrentAttributes(ROUTE_IID, route, writeContext);
verifyInvocation(1, ImmutableList
.of(desiredFlaglessResult(1, 1, 0, Ipv6RouteData.FIRST_ADDRESS_AS_ARRAY, 64,
- new byte[4], ~0, 0, ROUTE_PROTOCOL_INDEX, 4,
+ new byte[4], ~0, 0, TABLE_ID.intValue(), 4,
0, 0)),
api, requestCaptor);
}
@@ -137,21 +137,21 @@ public class Ipv6RouteCustomizerTest extends WriterCustomizerTest
@InjectTestData(resourcePath = "/ipv6/multihop/multiHopRouteWithClassifier.json", id = STATIC_ROUTE_PATH) StaticRoutes route)
throws WriteFailedException {
whenAddRouteThenSuccess(api);
- customizer.writeCurrentAttributes(validId, getIpv6RouteWithId(route, IPV_6_PREFIX), writeContext);
+ customizer.writeCurrentAttributes(ROUTE_IID, getIpv6RouteWithId(route, IPV_6_PREFIX), writeContext);
verifyInvocation(2,
ImmutableList.of(
desiredFlaglessResult(1, 1, 1, Ipv6RouteData.FIRST_ADDRESS_AS_ARRAY, 64,
- Ipv6RouteData.SECOND_ADDRESS_AS_ARRAY, INTERFACE_INDEX, 2, ROUTE_PROTOCOL_INDEX, 0,
+ Ipv6RouteData.SECOND_ADDRESS_AS_ARRAY, INTERFACE_INDEX, 2, TABLE_ID.intValue(), 0,
CLASSIFY_TABLE_INDEX, 1),
desiredFlaglessResult(1, 1, 1, Ipv6RouteData.FIRST_ADDRESS_AS_ARRAY, 64,
- Ipv6RouteData.SECOND_ADDRESS_AS_ARRAY, INTERFACE_INDEX, 2, ROUTE_PROTOCOL_INDEX, 0,
+ Ipv6RouteData.SECOND_ADDRESS_AS_ARRAY, INTERFACE_INDEX, 2, TABLE_ID.intValue(), 0,
CLASSIFY_TABLE_INDEX, 1)), api,
requestCaptor);
}
@Test(expected = UnsupportedOperationException.class)
public void testUpdate() throws WriteFailedException {
- customizer.updateCurrentAttributes(validId, Ipv6RouteData.IPV6_ROUTE_WITH_CLASSIFIER_BLACKHOLE_HOP,
+ customizer.updateCurrentAttributes(ROUTE_IID, Ipv6RouteData.IPV6_ROUTE_WITH_CLASSIFIER_BLACKHOLE_HOP,
Ipv6RouteData.IPV6_ROUTE_WITH_CLASSIFIER_RECEIVE_HOP, writeContext);
}
@@ -160,11 +160,11 @@ public class Ipv6RouteCustomizerTest extends WriterCustomizerTest
@InjectTestData(resourcePath = "/ipv6/specialhop/specialHopRouteBlackhole.json", id = STATIC_ROUTE_PATH) StaticRoutes route)
throws WriteFailedException {
whenAddRouteThenSuccess(api);
- customizer.deleteCurrentAttributes(validId, getIpv6RouteWithId(route, IPV_6_PREFIX),
+ customizer.deleteCurrentAttributes(ROUTE_IID, getIpv6RouteWithId(route, IPV_6_PREFIX),
writeContext);
verifyInvocation(1, ImmutableList
.of(desiredSpecialResult(0, 1, Ipv6RouteData.FIRST_ADDRESS_AS_ARRAY, 64,
- 1, 0, 0, 0, ROUTE_PROTOCOL_INDEX, 0)),
+ 1, 0, 0, 0, TABLE_ID.intValue(), 0)),
api, requestCaptor);
}
@@ -173,7 +173,7 @@ public class Ipv6RouteCustomizerTest extends WriterCustomizerTest
@InjectTestData(resourcePath = "/ipv6/simplehop/simpleHopRouteWithClassifier.json", id = STATIC_ROUTE_PATH) StaticRoutes route)
throws WriteFailedException {
whenAddRouteThenSuccess(api);
- customizer.deleteCurrentAttributes(validId, getIpv6RouteWithId(route, IPV_6_PREFIX), writeContext);
+ customizer.deleteCurrentAttributes(ROUTE_IID, getIpv6RouteWithId(route, IPV_6_PREFIX), writeContext);
verifyInvocation(1, ImmutableList
.of(desiredFlaglessResult(0, 1, 0, Ipv6RouteData.FIRST_ADDRESS_AS_ARRAY, 64,
Ipv6RouteData.SECOND_ADDRESS_AS_ARRAY, INTERFACE_INDEX, 0, 1,
@@ -185,7 +185,7 @@ public class Ipv6RouteCustomizerTest extends WriterCustomizerTest
@InjectTestData(resourcePath = "/ipv6/multihop/multiHopRouteWithClassifier.json", id = STATIC_ROUTE_PATH) StaticRoutes route)
throws WriteFailedException {
whenAddRouteThenSuccess(api);
- customizer.deleteCurrentAttributes(validId, getIpv6RouteWithId(route, IPV_6_PREFIX), writeContext);
+ customizer.deleteCurrentAttributes(ROUTE_IID, getIpv6RouteWithId(route, IPV_6_PREFIX), writeContext);
verifyInvocation(2,
ImmutableList.of(
desiredFlaglessResult(0, 1, 1, Ipv6RouteData.FIRST_ADDRESS_AS_ARRAY, 64,
@@ -202,11 +202,11 @@ public class Ipv6RouteCustomizerTest extends WriterCustomizerTest
@InjectTestData(resourcePath = "/ipv6/specialhop/specialHopRouteBlackhole.json", id = STATIC_ROUTE_PATH) StaticRoutes route)
throws WriteFailedException {
whenAddRouteThenSuccess(api);
- customizer.writeCurrentAttributes(validId, getIpv6RouteWithId(route, IPV_6_PREFIX),
+ customizer.writeCurrentAttributes(ROUTE_IID, getIpv6RouteWithId(route, IPV_6_PREFIX),
writeContext);
verifyInvocation(1, ImmutableList
.of(desiredSpecialResult(1, 1, Ipv6RouteData.FIRST_ADDRESS_AS_ARRAY, 64,
- 1, 0, 0, 0, ROUTE_PROTOCOL_INDEX, 0)),
+ 1, 0, 0, 0, TABLE_ID.intValue(), 0)),
api, requestCaptor);
}
}