diff options
Diffstat (limited to 'routing/routing-impl/src/test/java/io/fd/hc2vpp/routing/write/ControlPlaneProtocolCustomizerTest.java')
-rw-r--r-- | routing/routing-impl/src/test/java/io/fd/hc2vpp/routing/write/ControlPlaneProtocolCustomizerTest.java | 66 |
1 files changed, 57 insertions, 9 deletions
diff --git a/routing/routing-impl/src/test/java/io/fd/hc2vpp/routing/write/ControlPlaneProtocolCustomizerTest.java b/routing/routing-impl/src/test/java/io/fd/hc2vpp/routing/write/ControlPlaneProtocolCustomizerTest.java index c96e31373..8d49f810d 100644 --- a/routing/routing-impl/src/test/java/io/fd/hc2vpp/routing/write/ControlPlaneProtocolCustomizerTest.java +++ b/routing/routing-impl/src/test/java/io/fd/hc2vpp/routing/write/ControlPlaneProtocolCustomizerTest.java @@ -20,45 +20,68 @@ import static io.fd.hc2vpp.routing.helpers.RoutingRequestTestHelper.ROUTE_PROTOC import static io.fd.hc2vpp.routing.helpers.RoutingRequestTestHelper.ROUTE_PROTOCOL_NAME_2; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; +import static org.mockito.Mockito.when; +import com.google.common.base.Optional; import io.fd.hc2vpp.common.test.write.WriterCustomizerTest; import io.fd.hc2vpp.common.translate.util.NamingContext; -import io.fd.hc2vpp.fib.management.services.FibTableService; +import io.fd.hc2vpp.fib.management.FibManagementIIds; import io.fd.honeycomb.translate.write.WriteFailedException; import org.junit.Before; import org.junit.Test; -import org.mockito.Mock; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.routing.rev180313.Direct; 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.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.yang.gen.v1.urn.ietf.params.xml.ns.yang.vpp.routing.rev180319.RoutingProtocolVppAttr; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.vpp.routing.rev180319.RoutingProtocolVppAttrBuilder; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.vpp.routing.rev180319.routing.control.plane.protocols.control.plane.protocol.VppProtocolAttributesBuilder; -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.Ipv4; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.fib.table.management.rev180521.Ipv6; +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; public class ControlPlaneProtocolCustomizerTest extends WriterCustomizerTest { + private static final VniReference VRF = new VniReference(1L); + private static final VniReference INVALID_VRF = new VniReference(3L); + private static final String INVALID_TABLE_PROTOCOL_1 = "invalid-table-protocol-1"; private InstanceIdentifier<ControlPlaneProtocol> validId; + private InstanceIdentifier<ControlPlaneProtocol> invalidIid; private ControlPlaneProtocol validData; private ControlPlaneProtocol validData2; private ControlPlaneProtocol invalidData; + private ControlPlaneProtocol invalidTableData; private ControlPlaneProtocolCustomizer customizer; private NamingContext routingProtocolContext; - @Mock - protected FibTableService fibTableService; - @Before public void init() { validId = InstanceIdentifier.create(ControlPlaneProtocol.class); + invalidIid = InstanceIdentifier.create(ControlPlaneProtocols.class) + .child(ControlPlaneProtocol.class, + new ControlPlaneProtocolKey(INVALID_TABLE_PROTOCOL_1, Static.class)); + invalidTableData = new ControlPlaneProtocolBuilder() + .setName(INVALID_TABLE_PROTOCOL_1) + .setType(Static.class) + .addAugmentation(RoutingProtocolVppAttr.class, new RoutingProtocolVppAttrBuilder() + .setVppProtocolAttributes(new VppProtocolAttributesBuilder() + .setPrimaryVrf(INVALID_VRF) + .build()) + .build()) + .build(); validData = new ControlPlaneProtocolBuilder() .setName(ROUTE_PROTOCOL_NAME) .setType(Static.class) .addAugmentation(RoutingProtocolVppAttr.class, new RoutingProtocolVppAttrBuilder() .setVppProtocolAttributes(new VppProtocolAttributesBuilder() - .setPrimaryVrf(new VniReference(1L)) + .setPrimaryVrf(VRF) .build()) .build()) .build(); @@ -68,7 +91,7 @@ public class ControlPlaneProtocolCustomizerTest extends WriterCustomizerTest { .setType(Static.class) .addAugmentation(RoutingProtocolVppAttr.class, new RoutingProtocolVppAttrBuilder() .setVppProtocolAttributes(new VppProtocolAttributesBuilder() - .setPrimaryVrf(new VniReference(1L)) + .setPrimaryVrf(VRF) .build()) .build()) .build(); @@ -78,7 +101,32 @@ public class ControlPlaneProtocolCustomizerTest extends WriterCustomizerTest { .build(); routingProtocolContext = new NamingContext("routing-protocol", "routing-protocol-context"); - customizer = new ControlPlaneProtocolCustomizer(routingProtocolContext, fibTableService); + customizer = new ControlPlaneProtocolCustomizer(routingProtocolContext); + TableKey keyV4 = new TableKey(Ipv4.class, VRF); + TableKey keyV6 = new TableKey(Ipv6.class, VRF); + KeyedInstanceIdentifier<Table, TableKey> vrfIidV4 = FibManagementIIds.FM_FIB_TABLES.child(Table.class, keyV4); + KeyedInstanceIdentifier<Table, TableKey> vrfIidV6 = FibManagementIIds.FM_FIB_TABLES.child(Table.class, keyV6); + TableKey invalidKeyV4 = new TableKey(Ipv4.class, INVALID_VRF); + TableKey invalidKeyV6 = new TableKey(Ipv6.class, INVALID_VRF); + KeyedInstanceIdentifier<Table, TableKey> invalidVrfIidV4 = + FibManagementIIds.FM_FIB_TABLES.child(Table.class, invalidKeyV4); + KeyedInstanceIdentifier<Table, TableKey> invalidVrfIidV6 = + FibManagementIIds.FM_FIB_TABLES.child(Table.class, invalidKeyV6); + when(writeContext.readAfter(vrfIidV4)).thenReturn(Optional.of( + new TableBuilder().setKey(keyV4).setAddressFamily(keyV4.getAddressFamily()) + .setTableId(keyV4.getTableId()).setName("VRF-IPV4-1").build())); + when(writeContext.readAfter(vrfIidV6)).thenReturn(Optional.of( + new TableBuilder().setKey(keyV6).setAddressFamily(keyV6.getAddressFamily()) + .setTableId(keyV6.getTableId()).setName("VRF-IPV6-1").build())); + when(writeContext.readAfter(invalidVrfIidV4)).thenReturn(Optional.absent()); + when(writeContext.readAfter(invalidVrfIidV6)).thenReturn(Optional.absent()); + } + + @Test(expected = WriteFailedException.class) + public void testWriteInvalid() throws WriteFailedException { + noMappingDefined(mappingContext, INVALID_TABLE_PROTOCOL_1, "routing-protocol-context"); + customizer.writeCurrentAttributes(invalidIid, invalidTableData, writeContext); + } @Test |