diff options
Diffstat (limited to 'routing/routing-impl/src/test/java/io/fd/hc2vpp/routing/read')
-rw-r--r-- | routing/routing-impl/src/test/java/io/fd/hc2vpp/routing/read/ControlPlaneProtocolCustomizerTest.java (renamed from routing/routing-impl/src/test/java/io/fd/hc2vpp/routing/read/RoutingProtocolCustomizerTest.java) | 41 | ||||
-rw-r--r-- | routing/routing-impl/src/test/java/io/fd/hc2vpp/routing/read/Ipv4RouteCustomizerTest.java | 135 | ||||
-rw-r--r-- | routing/routing-impl/src/test/java/io/fd/hc2vpp/routing/read/Ipv6RouteCustomizerTest.java | 117 | ||||
-rw-r--r-- | routing/routing-impl/src/test/java/io/fd/hc2vpp/routing/read/RoutingStateCustomizerTest.java | 64 |
4 files changed, 164 insertions, 193 deletions
diff --git a/routing/routing-impl/src/test/java/io/fd/hc2vpp/routing/read/RoutingProtocolCustomizerTest.java b/routing/routing-impl/src/test/java/io/fd/hc2vpp/routing/read/ControlPlaneProtocolCustomizerTest.java index 1d0057cf2..43ec73bd1 100644 --- a/routing/routing-impl/src/test/java/io/fd/hc2vpp/routing/read/RoutingProtocolCustomizerTest.java +++ b/routing/routing-impl/src/test/java/io/fd/hc2vpp/routing/read/ControlPlaneProtocolCustomizerTest.java @@ -41,16 +41,16 @@ import java.util.Arrays; import java.util.List; import org.junit.Test; import org.mockito.Mock; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev140524.Static; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev140524.routing.state.routing.instance.RoutingProtocols; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev140524.routing.state.routing.instance.RoutingProtocolsBuilder; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev140524.routing.state.routing.instance.routing.protocols.RoutingProtocol; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev140524.routing.state.routing.instance.routing.protocols.RoutingProtocolBuilder; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev140524.routing.state.routing.instance.routing.protocols.RoutingProtocolKey; +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.routing.ControlPlaneProtocols; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev180313.routing.ControlPlaneProtocolsBuilder; +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.ControlPlaneProtocolBuilder; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev180313.routing.control.plane.protocols.ControlPlaneProtocolKey; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -public class RoutingProtocolCustomizerTest - extends ListReaderCustomizerTest<RoutingProtocol, RoutingProtocolKey, RoutingProtocolBuilder> +public class ControlPlaneProtocolCustomizerTest + extends ListReaderCustomizerTest<ControlPlaneProtocol, ControlPlaneProtocolKey, ControlPlaneProtocolBuilder> implements ByteDataTranslator { private static final String VPP_PROTOCOL_PREFIX = "vpp-protocol"; @@ -65,8 +65,7 @@ public class RoutingProtocolCustomizerTest private NamingContext routingProtocolContext; - public RoutingProtocolCustomizerTest() { - super(RoutingProtocol.class, RoutingProtocolsBuilder.class); + public ControlPlaneProtocolCustomizerTest() { super(ControlPlaneProtocol.class, ControlPlaneProtocolsBuilder.class); } @Override @@ -93,20 +92,22 @@ public class RoutingProtocolCustomizerTest @Test public void getAllIds() throws Exception { - final List<RoutingProtocolKey> keys = - getCustomizer().getAllIds(InstanceIdentifier.create(RoutingProtocol.class), ctx); + final List<ControlPlaneProtocolKey> keys = + getCustomizer().getAllIds(InstanceIdentifier.create(ControlPlaneProtocol.class), ctx); assertThat(keys, hasSize(3)); - assertThat(keys, hasItems(new RoutingProtocolKey(ROUTE_PROTOCOL_NAME), new RoutingProtocolKey("tst-protocol-2"), - new RoutingProtocolKey("tst-protocol-3"))); + assertThat(keys, hasItems(new ControlPlaneProtocolKey(ROUTE_PROTOCOL_NAME, Static.class), + new ControlPlaneProtocolKey("tst-protocol-2", Static.class), + new ControlPlaneProtocolKey("tst-protocol-3", Static.class))); } @Test public void readCurrentAttributes() throws Exception { - final InstanceIdentifier<RoutingProtocol> identifier = InstanceIdentifier.create(RoutingProtocols.class) - .child(RoutingProtocol.class, new RoutingProtocolKey(ROUTE_PROTOCOL_NAME)); + final InstanceIdentifier<ControlPlaneProtocol> identifier = + InstanceIdentifier.create(ControlPlaneProtocols.class) + .child(ControlPlaneProtocol.class, new ControlPlaneProtocolKey(ROUTE_PROTOCOL_NAME, Static.class)); - final RoutingProtocolBuilder builder = new RoutingProtocolBuilder(); + final ControlPlaneProtocolBuilder builder = new ControlPlaneProtocolBuilder(); getCustomizer().readCurrentAttributes(identifier, builder, ctx); assertEquals(ROUTE_PROTOCOL_NAME, builder.getName()); @@ -115,8 +116,8 @@ public class RoutingProtocolCustomizerTest } @Override - protected ReaderCustomizer<RoutingProtocol, RoutingProtocolBuilder> initCustomizer() { - return new RoutingProtocolCustomizer(routingProtocolContext, ipv4RoutesDumpManager, ipv6RoutesDumpManager); + protected ReaderCustomizer<ControlPlaneProtocol, ControlPlaneProtocolBuilder> initCustomizer() { + return new ControlPlaneProtocolCustomizer(routingProtocolContext, ipv4RoutesDumpManager, ipv6RoutesDumpManager); } private Ip6FibDetailsReplyDump replyDumpIpv6() { @@ -222,4 +223,4 @@ public class RoutingProtocolCustomizerTest replyDump.ipFibDetails = Arrays.asList(detail1, detail2, detail3); return replyDump; } -}
\ No newline at end of file +} diff --git a/routing/routing-impl/src/test/java/io/fd/hc2vpp/routing/read/Ipv4RouteCustomizerTest.java b/routing/routing-impl/src/test/java/io/fd/hc2vpp/routing/read/Ipv4RouteCustomizerTest.java index a0c890b9b..5e319e370 100644 --- a/routing/routing-impl/src/test/java/io/fd/hc2vpp/routing/read/Ipv4RouteCustomizerTest.java +++ b/routing/routing-impl/src/test/java/io/fd/hc2vpp/routing/read/Ipv4RouteCustomizerTest.java @@ -16,13 +16,24 @@ package io.fd.hc2vpp.routing.read; +import static io.fd.hc2vpp.routing.helpers.RoutingRequestTestHelper.ROUTE_PROTOCOL_NAME; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.hasItems; +import static org.hamcrest.collection.IsCollectionWithSize.hasSize; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.when; +import static org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev180313.SpecialNextHop.SpecialNextHopEnum.Receive; + import io.fd.hc2vpp.common.test.read.ListReaderCustomizerTest; import io.fd.hc2vpp.common.translate.util.MultiNamingContext; import io.fd.hc2vpp.common.translate.util.NamingContext; import io.fd.hc2vpp.routing.Ipv4RouteData; import io.fd.hc2vpp.routing.RoutingConfiguration; +import io.fd.hc2vpp.routing.helpers.ClassifyTableTestHelper; import io.fd.hc2vpp.routing.naming.Ipv4RouteNamesFactory; import io.fd.hc2vpp.routing.trait.RouteMapper; +import io.fd.hc2vpp.vpp.classifier.context.VppClassifierContextManager; import io.fd.honeycomb.translate.read.ReadFailedException; import io.fd.honeycomb.translate.spi.read.ReaderCustomizer; import io.fd.honeycomb.translate.util.read.cache.DumpCacheManager; @@ -30,49 +41,46 @@ import io.fd.honeycomb.translate.util.read.cache.EntityDumpExecutor; import io.fd.vpp.jvpp.core.dto.IpFibDetails; import io.fd.vpp.jvpp.core.dto.IpFibDetailsReplyDump; import io.fd.vpp.jvpp.core.types.FibPath; +import java.util.Arrays; +import java.util.List; import org.apache.commons.lang3.builder.EqualsBuilder; import org.junit.Test; 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.ipv4.unicast.routing.rev170917.StaticRoutes2; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv4.unicast.routing.rev170917.routing.state.routing.instance.routing.protocols.routing.protocol._static.routes.Ipv4; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv4.unicast.routing.rev170917.routing.state.routing.instance.routing.protocols.routing.protocol._static.routes.Ipv4Builder; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv4.unicast.routing.rev170917.routing.state.routing.instance.routing.protocols.routing.protocol._static.routes.ipv4.Route; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv4.unicast.routing.rev170917.routing.state.routing.instance.routing.protocols.routing.protocol._static.routes.ipv4.RouteBuilder; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv4.unicast.routing.rev170917.routing.state.routing.instance.routing.protocols.routing.protocol._static.routes.ipv4.RouteKey; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv4.unicast.routing.rev170917.routing.state.routing.instance.routing.protocols.routing.protocol._static.routes.ipv4.route.NextHopOptions; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv4.unicast.routing.rev170917.routing.state.routing.instance.routing.protocols.routing.protocol._static.routes.ipv4.route.next.hop.options.NextHopList; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv4.unicast.routing.rev170917.routing.state.routing.instance.routing.protocols.routing.protocol._static.routes.ipv4.route.next.hop.options.SimpleNextHop; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv4.unicast.routing.rev170917.routing.state.routing.instance.routing.protocols.routing.protocol._static.routes.ipv4.route.next.hop.options.SpecialNextHop; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv4.unicast.routing.rev170917.routing.state.routing.instance.routing.protocols.routing.protocol._static.routes.ipv4.route.next.hop.options.next.hop.list.next.hop.list.NextHop; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv4.unicast.routing.rev170917.routing.state.routing.instance.routing.protocols.routing.protocol._static.routes.ipv4.route.next.hop.options.next.hop.list.next.hop.list.NextHopBuilder; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv4.unicast.routing.rev170917.routing.state.routing.instance.routing.protocols.routing.protocol._static.routes.ipv4.route.next.hop.options.next.hop.list.next.hop.list.NextHopKey; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev140524.SpecialNextHopGrouping; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev140524.routing.state.routing.instance.RoutingProtocols; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev140524.routing.state.routing.instance.routing.protocols.RoutingProtocol; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev140524.routing.state.routing.instance.routing.protocols.RoutingProtocolKey; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev140524.routing.state.routing.instance.routing.protocols.routing.protocol.StaticRoutes; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv4.unicast.routing.rev180313.StaticRoutes1; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv4.unicast.routing.rev180313.routing.control.plane.protocols.control.plane.protocol._static.routes.Ipv4; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv4.unicast.routing.rev180313.routing.control.plane.protocols.control.plane.protocol._static.routes.Ipv4Builder; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv4.unicast.routing.rev180313.routing.control.plane.protocols.control.plane.protocol._static.routes.ipv4.Route; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv4.unicast.routing.rev180313.routing.control.plane.protocols.control.plane.protocol._static.routes.ipv4.RouteBuilder; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv4.unicast.routing.rev180313.routing.control.plane.protocols.control.plane.protocol._static.routes.ipv4.RouteKey; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv4.unicast.routing.rev180313.routing.control.plane.protocols.control.plane.protocol._static.routes.ipv4.route.next.hop.NextHop1; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv4.unicast.routing.rev180313.routing.control.plane.protocols.control.plane.protocol._static.routes.ipv4.route.next.hop.NextHop1Builder; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv4.unicast.routing.rev180313.routing.control.plane.protocols.control.plane.protocol._static.routes.ipv4.route.next.hop.SimpleNextHop1; +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.NextHopOptions; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev180313.next.hop.content.next.hop.options.NextHopList; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev180313.next.hop.content.next.hop.options.SimpleNextHop; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev180313.next.hop.content.next.hop.options.SpecialNextHop; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev180313.next.hop.content.next.hop.options.next.hop.list.next.hop.list.NextHop; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev180313.next.hop.content.next.hop.options.next.hop.list.next.hop.list.NextHopBuilder; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev180313.next.hop.content.next.hop.options.next.hop.list.next.hop.list.NextHopKey; +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.ipv4.unicast.routing.rev180319.VppIpv4NextHopAugmentation; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.vpp.ipv4.unicast.routing.rev180319.VppIpv4NextHopAugmentationBuilder; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -import java.util.Arrays; -import java.util.List; - -import static io.fd.hc2vpp.routing.helpers.RoutingRequestTestHelper.ROUTE_PROTOCOL_NAME; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.hasItems; -import static org.hamcrest.collection.IsCollectionWithSize.hasSize; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.mockito.Mockito.when; - public class Ipv4RouteCustomizerTest extends ListReaderCustomizerTest<Route, RouteKey, RouteBuilder> - implements RouteMapper { + implements RouteMapper, ClassifyTableTestHelper { - private final InstanceIdentifier<Ipv4> ipv4InstanceIdentifier = InstanceIdentifier.create(RoutingProtocols.class) - .child(RoutingProtocol.class, new RoutingProtocolKey(ROUTE_PROTOCOL_NAME)) + private final InstanceIdentifier<Ipv4> ipv4InstanceIdentifier = + InstanceIdentifier.create(ControlPlaneProtocols.class) + .child(ControlPlaneProtocol.class, new ControlPlaneProtocolKey(ROUTE_PROTOCOL_NAME, Static.class)) .child(StaticRoutes.class) - .augmentation(StaticRoutes2.class) + .augmentation(StaticRoutes1.class) .child(Ipv4.class); private DumpCacheManager<IpFibDetailsReplyDump, Void> manager; @Mock @@ -81,12 +89,18 @@ public class Ipv4RouteCustomizerTest extends ListReaderCustomizerTest<Route, Rou private MultiNamingContext routeHopContext; @Mock private EntityDumpExecutor<IpFibDetailsReplyDump, Void> executor; + @Mock + private VppClassifierContextManager classifyManager; + private NamingContext interfaceContext = new NamingContext("ifaces", "interface-context"); private NamingContext routesContext = new NamingContext("routes", "route-context"); private NamingContext routingProtocolContext = new NamingContext("routing-protocol", "routing-protocol-context"); - private InstanceIdentifier<Route> routeIdSpecialHop = ipv4InstanceIdentifier.child(Route.class, new RouteKey(1L)); - private InstanceIdentifier<Route> routeIdSimpleHop = ipv4InstanceIdentifier.child(Route.class, new RouteKey(2L)); - private InstanceIdentifier<Route> routeIdListHop = ipv4InstanceIdentifier.child(Route.class, new RouteKey(3L)); + private InstanceIdentifier<Route> routeIdSpecialHop = + ipv4InstanceIdentifier.child(Route.class, new RouteKey(new Ipv4Prefix("192.168.2.1/24"))); + private InstanceIdentifier<Route> routeIdSimpleHop = + ipv4InstanceIdentifier.child(Route.class, new RouteKey(new Ipv4Prefix("192.168.2.2/22"))); + private InstanceIdentifier<Route> routeIdListHop = + ipv4InstanceIdentifier.child(Route.class, new RouteKey(new Ipv4Prefix("192.168.2.2/16"))); public Ipv4RouteCustomizerTest() { @@ -118,6 +132,9 @@ public class Ipv4RouteCustomizerTest extends ListReaderCustomizerTest<Route, Rou String listRouteName = factory.uniqueRouteName(listRoute, mappingContext); defineMapping(mappingContext, listRouteName, 3, "route-context"); + addMapping(classifyManager, CLASSIFY_TABLE_NAME, CLASSIFY_TABLE_INDEX, mappingContext); + + when(routeHopContext.getChildIndex(listRouteName, factory.uniqueRouteHopName(listRoute.path[0], mappingContext), mappingContext)).thenReturn(0); when(routeHopContext.getChildIndex(listRouteName, factory.uniqueRouteHopName(listRoute.path[1], mappingContext), @@ -181,7 +198,9 @@ public class Ipv4RouteCustomizerTest extends ListReaderCustomizerTest<Route, Rou final List<RouteKey> keys = getCustomizer().getAllIds(routeIdSpecialHop, ctx); assertThat(keys, hasSize(3)); - assertThat(keys, hasItems(new RouteKey(1L), new RouteKey(2L), new RouteKey(3L))); + assertThat(keys, hasItems(new RouteKey(new Ipv4Prefix("192.168.2.1/24")), + new RouteKey(new Ipv4Prefix("192.168.2.2/22")), + new RouteKey(new Ipv4Prefix("192.168.2.2/16")))); } @Test @@ -189,15 +208,13 @@ public class Ipv4RouteCustomizerTest extends ListReaderCustomizerTest<Route, Rou final RouteBuilder builder = new RouteBuilder(); getCustomizer().readCurrentAttributes(routeIdSpecialHop, builder, ctx); - assertEquals(1, builder.getId().intValue()); - assertEquals(1, builder.getKey().getId().intValue()); assertEquals(new Ipv4Prefix("192.168.2.1/24"), builder.getDestinationPrefix()); - NextHopOptions hopOptions = builder.getNextHopOptions(); + NextHopOptions hopOptions = builder.getNextHop().getNextHopOptions(); assertTrue(hopOptions instanceof SpecialNextHop); SpecialNextHop hop = SpecialNextHop.class.cast(hopOptions); - assertEquals(SpecialNextHopGrouping.SpecialNextHop.Receive, hop.getSpecialNextHop()); + assertEquals(Receive, hop.getSpecialNextHopEnum()); } @Test @@ -205,15 +222,13 @@ public class Ipv4RouteCustomizerTest extends ListReaderCustomizerTest<Route, Rou final RouteBuilder builder = new RouteBuilder(); getCustomizer().readCurrentAttributes(routeIdSimpleHop, builder, ctx); - assertEquals(2, builder.getId().intValue()); - assertEquals(2, builder.getKey().getId().intValue()); assertEquals(new Ipv4Prefix("192.168.2.2/22"), builder.getDestinationPrefix()); - NextHopOptions hopOptions = builder.getNextHopOptions(); + NextHopOptions hopOptions = builder.getNextHop().getNextHopOptions(); assertTrue(hopOptions instanceof SimpleNextHop); SimpleNextHop hop = SimpleNextHop.class.cast(hopOptions); - assertEquals("192.168.2.1", hop.getNextHop().getValue()); + assertEquals("192.168.2.1", hop.getAugmentation(SimpleNextHop1.class).getNextHopAddress().getValue()); assertEquals("iface-1", hop.getOutgoingInterface()); } @@ -223,11 +238,9 @@ public class Ipv4RouteCustomizerTest extends ListReaderCustomizerTest<Route, Rou final RouteBuilder builder = new RouteBuilder(); getCustomizer().readCurrentAttributes(routeIdListHop, builder, ctx); - assertEquals(3, builder.getId().intValue()); - assertEquals(3, builder.getKey().getId().intValue()); assertEquals(new Ipv4Prefix("192.168.2.2/16"), builder.getDestinationPrefix()); - NextHopOptions hopOptions = builder.getNextHopOptions(); + NextHopOptions hopOptions = builder.getNextHop().getNextHopOptions(); assertTrue(hopOptions instanceof NextHopList); NextHopList hop = NextHopList.class.cast(hopOptions); @@ -235,32 +248,34 @@ public class Ipv4RouteCustomizerTest extends ListReaderCustomizerTest<Route, Rou assertThat(hops, hasSize(2)); - assertTrue(areEqual(hops.get(0), desiredHop(0L, "192.168.2.1", 1, "iface-1"))); - assertTrue(areEqual(hops.get(1), desiredHop(1L, "192.168.2.2", 2, "iface-1"))); + assertTrue(areEqual(hops.get(0), desiredHop("0", "192.168.2.1", 1, "iface-1"))); + assertTrue(areEqual(hops.get(1), desiredHop("1", "192.168.2.2", 2, "iface-1"))); } private boolean areEqual(final NextHop first, final NextHop second) { return new EqualsBuilder() - .append(true, first.getAddress().getValue().equals(second.getAddress().getValue())) - .append(true, first.getId().equals(second.getId())) + .append(true, first.getAugmentation(NextHop1.class).getNextHopAddress().getValue() + .equals(second.getAugmentation(NextHop1.class).getNextHopAddress().getValue())) + .append(true, first.getIndex().equals(second.getIndex())) .append(true, first.getKey().equals(second.getKey())) .append(true, first.getOutgoingInterface().equals(second.getOutgoingInterface())) .isEquals(); } - private NextHop desiredHop(final long id, final String address, final int weight, final String iface) { + private NextHop desiredHop(final String id, final String address, final int weight, final String iface) { return new NextHopBuilder() - .setAddress(new Ipv4Address(address)) - .setWeight((short) weight) - .setOutgoingInterface(iface) - .setId(id) - .setKey(new NextHopKey(id)) - .build(); + .setOutgoingInterface(iface) + .setIndex(id) + .setKey(new NextHopKey(id)) + .addAugmentation(VppIpv4NextHopAugmentation.class, + new VppIpv4NextHopAugmentationBuilder().setWeight((short) weight).build()) + .addAugmentation(NextHop1.class, new NextHop1Builder().setNextHopAddress(new Ipv4Address(address)).build()) + .build(); } @Override protected ReaderCustomizer<Route, RouteBuilder> initCustomizer() { return new Ipv4RouteCustomizer(manager, configuration, routeHopContext, interfaceContext, - routesContext, routingProtocolContext); + routesContext, routingProtocolContext); } }
\ No newline at end of file diff --git a/routing/routing-impl/src/test/java/io/fd/hc2vpp/routing/read/Ipv6RouteCustomizerTest.java b/routing/routing-impl/src/test/java/io/fd/hc2vpp/routing/read/Ipv6RouteCustomizerTest.java index 3626056b8..503c01914 100644 --- a/routing/routing-impl/src/test/java/io/fd/hc2vpp/routing/read/Ipv6RouteCustomizerTest.java +++ b/routing/routing-impl/src/test/java/io/fd/hc2vpp/routing/read/Ipv6RouteCustomizerTest.java @@ -23,14 +23,17 @@ import static org.hamcrest.collection.IsCollectionWithSize.hasSize; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.when; +import static org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev180313.SpecialNextHop.SpecialNextHopEnum.Receive; import io.fd.hc2vpp.common.test.read.ListReaderCustomizerTest; import io.fd.hc2vpp.common.translate.util.MultiNamingContext; import io.fd.hc2vpp.common.translate.util.NamingContext; import io.fd.hc2vpp.routing.Ipv6RouteData; import io.fd.hc2vpp.routing.RoutingConfiguration; +import io.fd.hc2vpp.routing.helpers.ClassifyTableTestHelper; import io.fd.hc2vpp.routing.naming.Ipv6RouteNamesFactory; import io.fd.hc2vpp.routing.trait.RouteMapper; +import io.fd.hc2vpp.vpp.classifier.context.VppClassifierContextManager; import io.fd.honeycomb.translate.ModificationCache; import io.fd.honeycomb.translate.read.ReadFailedException; import io.fd.honeycomb.translate.spi.read.ReaderCustomizer; @@ -45,28 +48,34 @@ import org.apache.commons.lang3.builder.EqualsBuilder; import org.junit.Test; import org.mockito.Mock; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Address; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv6.unicast.routing.rev170917.StaticRoutes2; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv6.unicast.routing.rev170917.routing.state.routing.instance.routing.protocols.routing.protocol._static.routes.Ipv6; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv6.unicast.routing.rev170917.routing.state.routing.instance.routing.protocols.routing.protocol._static.routes.Ipv6Builder; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv6.unicast.routing.rev170917.routing.state.routing.instance.routing.protocols.routing.protocol._static.routes.ipv6.Route; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv6.unicast.routing.rev170917.routing.state.routing.instance.routing.protocols.routing.protocol._static.routes.ipv6.RouteBuilder; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv6.unicast.routing.rev170917.routing.state.routing.instance.routing.protocols.routing.protocol._static.routes.ipv6.RouteKey; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv6.unicast.routing.rev170917.routing.state.routing.instance.routing.protocols.routing.protocol._static.routes.ipv6.route.NextHopOptions; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv6.unicast.routing.rev170917.routing.state.routing.instance.routing.protocols.routing.protocol._static.routes.ipv6.route.next.hop.options.NextHopList; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv6.unicast.routing.rev170917.routing.state.routing.instance.routing.protocols.routing.protocol._static.routes.ipv6.route.next.hop.options.SimpleNextHop; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv6.unicast.routing.rev170917.routing.state.routing.instance.routing.protocols.routing.protocol._static.routes.ipv6.route.next.hop.options.SpecialNextHop; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv6.unicast.routing.rev170917.routing.state.routing.instance.routing.protocols.routing.protocol._static.routes.ipv6.route.next.hop.options.next.hop.list.next.hop.list.NextHop; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv6.unicast.routing.rev170917.routing.state.routing.instance.routing.protocols.routing.protocol._static.routes.ipv6.route.next.hop.options.next.hop.list.next.hop.list.NextHopBuilder; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ipv6.unicast.routing.rev170917.routing.state.routing.instance.routing.protocols.routing.protocol._static.routes.ipv6.route.next.hop.options.next.hop.list.next.hop.list.NextHopKey; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev140524.SpecialNextHopGrouping; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev140524.routing.state.routing.instance.RoutingProtocols; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev140524.routing.state.routing.instance.routing.protocols.RoutingProtocol; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev140524.routing.state.routing.instance.routing.protocols.RoutingProtocolKey; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev140524.routing.state.routing.instance.routing.protocols.routing.protocol.StaticRoutes; +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; +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.Ipv6Builder; +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; +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.next.hop.NextHop1; +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.next.hop.NextHop1Builder; +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.next.hop.SimpleNextHop1; +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.NextHopOptions; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev180313.next.hop.content.next.hop.options.NextHopList; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev180313.next.hop.content.next.hop.options.SimpleNextHop; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev180313.next.hop.content.next.hop.options.SpecialNextHop; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev180313.next.hop.content.next.hop.options.next.hop.list.next.hop.list.NextHop; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev180313.next.hop.content.next.hop.options.next.hop.list.next.hop.list.NextHopBuilder; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev180313.next.hop.content.next.hop.options.next.hop.list.next.hop.list.NextHopKey; +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.ipv6.unicast.routing.rev180319.VppIpv6NextHopAugmentation; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.vpp.ipv6.unicast.routing.rev180319.VppIpv6NextHopAugmentationBuilder; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; public class Ipv6RouteCustomizerTest extends ListReaderCustomizerTest<Route, RouteKey, RouteBuilder> - implements RouteMapper { + implements RouteMapper, ClassifyTableTestHelper { private static final String ROUTING_PROTOCOL_PREFIX = "route-p-"; private DumpCacheManager<Ip6FibDetailsReplyDump, Void> manager; @@ -83,6 +92,9 @@ public class Ipv6RouteCustomizerTest extends ListReaderCustomizerTest<Route, Rou @Mock private ModificationCache cache; + @Mock + private VppClassifierContextManager classifyManager; + private NamingContext interfaceContext; private NamingContext routesContext; private NamingContext routingProtocolContext; @@ -107,15 +119,18 @@ public class Ipv6RouteCustomizerTest extends ListReaderCustomizerTest<Route, Rou routesContext = new NamingContext("routes", "route-context"); routingProtocolContext = new NamingContext("routing-protocol", "routing-protocol-context"); - final InstanceIdentifier<Ipv6> ipv6InstanceIdentifier = InstanceIdentifier.create(RoutingProtocols.class) - .child(RoutingProtocol.class, new RoutingProtocolKey(ROUTE_PROTOCOL_NAME)) + final InstanceIdentifier<Ipv6> ipv6InstanceIdentifier = InstanceIdentifier.create(ControlPlaneProtocols.class) + .child(ControlPlaneProtocol.class, new ControlPlaneProtocolKey(ROUTE_PROTOCOL_NAME, Static.class)) .child(StaticRoutes.class) - .augmentation(StaticRoutes2.class) + .augmentation(StaticRoutes1.class) .child(Ipv6.class); - routeIdSpecialHop = ipv6InstanceIdentifier.child(Route.class, new RouteKey(1L)); - routeIdSimpleHop = ipv6InstanceIdentifier.child(Route.class, new RouteKey(2L)); - routeIdListHop = ipv6InstanceIdentifier.child(Route.class, new RouteKey(3L)); + routeIdSpecialHop = + ipv6InstanceIdentifier.child(Route.class, new RouteKey(new Ipv6Prefix("2001:db8:a0b:12f0::1/24"))); + routeIdSimpleHop = + ipv6InstanceIdentifier.child(Route.class, new RouteKey(new Ipv6Prefix("2001:db8:a0b:12f0::2/22"))); + routeIdListHop = + ipv6InstanceIdentifier.child(Route.class, new RouteKey(new Ipv6Prefix("2001:db8:a0b:12f0::2/16"))); factory = new Ipv6RouteNamesFactory(interfaceContext, routingProtocolContext); @@ -136,6 +151,8 @@ public class Ipv6RouteCustomizerTest extends ListReaderCustomizerTest<Route, Rou String listRouteName = factory.uniqueRouteName(listRoute, mappingContext); defineMapping(mappingContext, listRouteName, 3, "route-context"); + addMapping(classifyManager, CLASSIFY_TABLE_NAME, CLASSIFY_TABLE_INDEX, mappingContext); + when(routeHopContext.getChildIndex(listRouteName, factory.uniqueRouteHopName(listRoute.path[0], mappingContext), mappingContext)) .thenReturn(0); @@ -201,7 +218,9 @@ public class Ipv6RouteCustomizerTest extends ListReaderCustomizerTest<Route, Rou final List<RouteKey> keys = getCustomizer().getAllIds(routeIdSpecialHop, ctx); assertThat(keys, hasSize(3)); - assertThat(keys, hasItems(new RouteKey(1L), new RouteKey(2L), new RouteKey(3L))); + assertThat(keys, hasItems(new RouteKey(new Ipv6Prefix("2001:db8:a0b:12f0::1/24")), + new RouteKey(new Ipv6Prefix("2001:db8:a0b:12f0::2/22")), + new RouteKey(new Ipv6Prefix("2001:db8:a0b:12f0::2/16")))); } @Test @@ -209,15 +228,14 @@ public class Ipv6RouteCustomizerTest extends ListReaderCustomizerTest<Route, Rou final RouteBuilder builder = new RouteBuilder(); getCustomizer().readCurrentAttributes(routeIdSpecialHop, builder, ctx); - assertEquals(1, builder.getId().intValue()); - assertEquals(1, builder.getKey().getId().intValue()); + assertEquals(new Ipv6Prefix("2001:db8:a0b:12f0::1/24"), builder.getDestinationPrefix()); assertEquals("2001:db8:a0b:12f0::1/24", builder.getDestinationPrefix().getValue()); - NextHopOptions hopOptions = builder.getNextHopOptions(); + NextHopOptions hopOptions = builder.getNextHop().getNextHopOptions(); assertTrue(hopOptions instanceof SpecialNextHop); SpecialNextHop hop = SpecialNextHop.class.cast(hopOptions); - assertEquals(SpecialNextHopGrouping.SpecialNextHop.Receive, hop.getSpecialNextHop()); + assertEquals(Receive, hop.getSpecialNextHopEnum()); } @Test @@ -225,15 +243,15 @@ public class Ipv6RouteCustomizerTest extends ListReaderCustomizerTest<Route, Rou final RouteBuilder builder = new RouteBuilder(); getCustomizer().readCurrentAttributes(routeIdSimpleHop, builder, ctx); - assertEquals(2, builder.getId().intValue()); - assertEquals(2, builder.getKey().getId().intValue()); + assertEquals(new Ipv6Prefix("2001:db8:a0b:12f0::2/22"), builder.getDestinationPrefix()); assertEquals("2001:db8:a0b:12f0::2/22", builder.getDestinationPrefix().getValue()); - NextHopOptions hopOptions = builder.getNextHopOptions(); + NextHopOptions hopOptions = builder.getNextHop().getNextHopOptions(); assertTrue(hopOptions instanceof SimpleNextHop); SimpleNextHop hop = SimpleNextHop.class.cast(hopOptions); - assertEquals("2001:db8:a0b:12f0::1", hop.getNextHop().getValue()); + assertEquals("2001:db8:a0b:12f0::1", hop.getAugmentation(SimpleNextHop1.class) + .getNextHopAddress().getValue()); assertEquals("iface-1", hop.getOutgoingInterface()); } @@ -244,11 +262,10 @@ public class Ipv6RouteCustomizerTest extends ListReaderCustomizerTest<Route, Rou final RouteBuilder builder = new RouteBuilder(); getCustomizer().readCurrentAttributes(routeIdListHop, builder, ctx); - assertEquals(3, builder.getId().intValue()); - assertEquals(3, builder.getKey().getId().intValue()); + assertEquals(new Ipv6Prefix("2001:db8:a0b:12f0::2/16"), builder.getDestinationPrefix()); assertEquals("2001:db8:a0b:12f0::2/16", builder.getDestinationPrefix().getValue()); - NextHopOptions hopOptions = builder.getNextHopOptions(); + NextHopOptions hopOptions = builder.getNextHop().getNextHopOptions(); assertTrue(hopOptions instanceof NextHopList); NextHopList hop = NextHopList.class.cast(hopOptions); @@ -256,32 +273,34 @@ public class Ipv6RouteCustomizerTest extends ListReaderCustomizerTest<Route, Rou assertThat(hops, hasSize(2)); - assertTrue(areEqual(hops.get(0), desiredHop(0L, "2001:db8:a0b:12f0::1", 1, "iface-1"))); - assertTrue(areEqual(hops.get(1), desiredHop(1L, "2001:db8:a0b:12f0::2", 2, "iface-1"))); + assertTrue(areEqual(hops.get(0), desiredHop("0", "2001:db8:a0b:12f0::1", 1, "iface-1"))); + assertTrue(areEqual(hops.get(1), desiredHop("1", "2001:db8:a0b:12f0::2", 2, "iface-1"))); } private boolean areEqual(final NextHop first, final NextHop second) { return new EqualsBuilder() - .append(true, first.getAddress().getValue().equals(second.getAddress().getValue())) - .append(true, first.getId().equals(second.getId())) + .append(true, first.getAugmentation(NextHop1.class).getNextHopAddress().getValue() + .equals(second.getAugmentation(NextHop1.class).getNextHopAddress().getValue())) + .append(true, first.getIndex().equals(second.getIndex())) .append(true, first.getKey().equals(second.getKey())) .append(true, first.getOutgoingInterface().equals(second.getOutgoingInterface())) .isEquals(); } - private NextHop desiredHop(final long id, final String address, final int weight, final String iface) { + private NextHop desiredHop(final String id, final String address, final int weight, final String iface) { return new NextHopBuilder() - .setAddress(new Ipv6Address(address)) - .setWeight((short) weight) - .setOutgoingInterface(iface) - .setId(id) - .setKey(new NextHopKey(id)) - .build(); + .setOutgoingInterface(iface) + .setIndex(id) + .setKey(new NextHopKey(id)) + .addAugmentation(NextHop1.class, new NextHop1Builder().setNextHopAddress(new Ipv6Address(address)).build()) + .addAugmentation(VppIpv6NextHopAugmentation.class, + new VppIpv6NextHopAugmentationBuilder().setWeight((short) weight).build()) + .build(); } @Override protected ReaderCustomizer<Route, RouteBuilder> initCustomizer() { return new Ipv6RouteCustomizer(manager, configuration, routeHopContext, - interfaceContext, routesContext, routingProtocolContext); + interfaceContext, routesContext, routingProtocolContext); } }
\ No newline at end of file diff --git a/routing/routing-impl/src/test/java/io/fd/hc2vpp/routing/read/RoutingStateCustomizerTest.java b/routing/routing-impl/src/test/java/io/fd/hc2vpp/routing/read/RoutingStateCustomizerTest.java deleted file mode 100644 index 7bece735b..000000000 --- a/routing/routing-impl/src/test/java/io/fd/hc2vpp/routing/read/RoutingStateCustomizerTest.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright (c) 2016 Cisco and/or its affiliates. - * - * 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 io.fd.hc2vpp.routing.read; - - -import static org.junit.Assert.assertEquals; - -import io.fd.hc2vpp.routing.helpers.SchemaContextTestHelper; -import io.fd.honeycomb.test.tools.HoneycombTestRunner; -import io.fd.honeycomb.test.tools.annotations.InjectTestData; -import io.fd.honeycomb.translate.read.ReadContext; -import io.fd.honeycomb.translate.spi.read.Initialized; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mock; -import org.mockito.MockitoAnnotations; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev140524.Routing; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev140524.RoutingState; -import org.opendaylight.yangtools.yang.binding.DataObject; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; - -@RunWith(HoneycombTestRunner.class) -public class RoutingStateCustomizerTest implements SchemaContextTestHelper { - - @InjectTestData(resourcePath = "/init/config-data.json") - private Routing config; - - @InjectTestData(resourcePath = "/init/state-data.json") - private RoutingState state; - - @Mock - private ReadContext readContext; - - @Before - public void init() { - MockitoAnnotations.initMocks(this); - } - - @Test - public void testInit() { - final InstanceIdentifier<RoutingState> identifier = InstanceIdentifier.create(RoutingState.class); - final Initialized<? extends DataObject> initilized = - new RoutingStateCustomizer().init(identifier, state, readContext); - - final Routing initializedRouting = Routing.class.cast(initilized.getData()); - - assertEquals(config, initializedRouting); - } -} |