X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=bgp%2Fparser-spi%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fprotocol%2Fbgp%2Fparser%2Fspi%2Fpojo%2FBgpTestActivator.java;h=127806308ba5ccabd9f074bda57a2b68cf8e26fb;hb=108c60f69f75c76bd11aa1c07875ee7b1924ef03;hp=a2241d99d97c4035bb438ab9c13c9fe956bb6486;hpb=3ddeea7c1e3476a98515a9d00b9fb01f2c48921c;p=bgpcep.git diff --git a/bgp/parser-spi/src/test/java/org/opendaylight/protocol/bgp/parser/spi/pojo/BgpTestActivator.java b/bgp/parser-spi/src/test/java/org/opendaylight/protocol/bgp/parser/spi/pojo/BgpTestActivator.java index a2241d99d9..127806308b 100644 --- a/bgp/parser-spi/src/test/java/org/opendaylight/protocol/bgp/parser/spi/pojo/BgpTestActivator.java +++ b/bgp/parser-spi/src/test/java/org/opendaylight/protocol/bgp/parser/spi/pojo/BgpTestActivator.java @@ -21,22 +21,36 @@ import org.opendaylight.protocol.bgp.parser.spi.AbstractBGPExtensionProviderActi import org.opendaylight.protocol.bgp.parser.spi.AttributeParser; import org.opendaylight.protocol.bgp.parser.spi.AttributeSerializer; import org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderContext; +import org.opendaylight.protocol.bgp.parser.spi.BgpPrefixSidTlvParser; +import org.opendaylight.protocol.bgp.parser.spi.BgpPrefixSidTlvSerializer; import org.opendaylight.protocol.bgp.parser.spi.CapabilityParser; import org.opendaylight.protocol.bgp.parser.spi.CapabilitySerializer; import org.opendaylight.protocol.bgp.parser.spi.MessageParser; import org.opendaylight.protocol.bgp.parser.spi.MessageSerializer; +import org.opendaylight.protocol.bgp.parser.spi.NextHopParserSerializer; import org.opendaylight.protocol.bgp.parser.spi.NlriParser; import org.opendaylight.protocol.bgp.parser.spi.NlriSerializer; import org.opendaylight.protocol.bgp.parser.spi.ParameterParser; import org.opendaylight.protocol.bgp.parser.spi.ParameterSerializer; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.open.message.BgpParameters; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.open.message.bgp.parameters.optional.capabilities.CParameters; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.path.attributes.AttributesBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev130919.update.attributes.MpReachNlriBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev130919.update.attributes.MpUnreachNlriBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.Ipv4AddressFamily; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.Ipv6AddressFamily; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.UnicastSubsequentAddressFamily; +import org.opendaylight.protocol.bgp.parser.spi.PeerSpecificParserConstraint; +import org.opendaylight.protocol.bgp.parser.spi.extended.community.ExtendedCommunityParser; +import org.opendaylight.protocol.bgp.parser.spi.extended.community.ExtendedCommunitySerializer; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev180329.open.message.BgpParameters; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev180329.open.message.bgp.parameters.optional.capabilities.CParameters; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev180329.path.attributes.AttributesBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev180329.path.attributes.attributes.bgp.prefix.sid.bgp.prefix.sid.tlvs.BgpPrefixSidTlv; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev180329.update.attributes.MpReachNlriBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev180329.update.attributes.MpUnreachNlriBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.Ipv4AddressFamily; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.Ipv6AddressFamily; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.UnicastSubsequentAddressFamily; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.extended.community.extended.community.RouteTargetIpv4Case; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.next.hop.CNextHop; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.next.hop.c.next.hop.Ipv4NextHopCase; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.next.hop.c.next.hop.Ipv4NextHopCaseBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.next.hop.c.next.hop.Ipv6NextHopCase; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.next.hop.c.next.hop.ipv4.next.hop._case.Ipv4NextHopBuilder; import org.opendaylight.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.binding.Notification; @@ -70,6 +84,18 @@ public class BgpTestActivator extends AbstractBGPExtensionProviderActivator { @Mock protected NlriSerializer nlriSerializer; + @Mock + protected ExtendedCommunityParser exParser; + @Mock + protected ExtendedCommunitySerializer exSerializer; + + protected NextHopParserSerializer nextHopParserSerializer; + + @Mock + protected BgpPrefixSidTlvParser sidTlvParser; + @Mock + protected BgpPrefixSidTlvSerializer sidTlvSerializer; + @Override protected List startImpl(final BGPExtensionProviderContext context) { initMock(); @@ -83,6 +109,9 @@ public class BgpTestActivator extends AbstractBGPExtensionProviderActivator { regs.add(context.registerCapabilityParser(TYPE, this.capaParser)); regs.add(context.registerCapabilitySerializer(CParameters.class, this.capaSerializer)); + regs.add(context.registerBgpPrefixSidTlvParser(TYPE, this.sidTlvParser)); + regs.add(context.registerBgpPrefixSidTlvSerializer(BgpPrefixSidTlv.class, this.sidTlvSerializer)); + regs.add(context.registerMessageParser(TYPE, this.msgParser)); regs.add(context.registerMessageSerializer(Notification.class, this.msgSerializer)); @@ -90,17 +119,37 @@ public class BgpTestActivator extends AbstractBGPExtensionProviderActivator { regs.add(context.registerAddressFamily(Ipv6AddressFamily.class, 2)); regs.add(context.registerSubsequentAddressFamily(UnicastSubsequentAddressFamily.class, 1)); - regs.add(context.registerNlriParser(Ipv4AddressFamily.class, UnicastSubsequentAddressFamily.class, this.nlriParser)); - regs.add(context.registerNlriParser(Ipv6AddressFamily.class, UnicastSubsequentAddressFamily.class, this.nlriParser)); + this.nextHopParserSerializer = new NextHopParserSerializer() { + @Override + public CNextHop parseNextHop(final ByteBuf buffer) throws BGPParsingException { + return new Ipv4NextHopCaseBuilder().setIpv4NextHop(new Ipv4NextHopBuilder().setGlobal(new Ipv4Address("127.0.0.1")).build()).build(); + } + @Override + public void serializeNextHop(final CNextHop cNextHop, final ByteBuf byteAggregator) { + final byte[] mpReachBytes = { + 0x7f, 0x00, 0x00, 0x01 + }; + byteAggregator.writeBytes(mpReachBytes); + } + }; + + regs.add(context.registerNlriParser(Ipv4AddressFamily.class, UnicastSubsequentAddressFamily.class, this + .nlriParser, this.nextHopParserSerializer, Ipv4NextHopCase.class)); + regs.add(context.registerNlriParser(Ipv6AddressFamily.class, UnicastSubsequentAddressFamily.class, this + .nlriParser, this.nextHopParserSerializer, Ipv6NextHopCase.class)); regs.add(context.registerNlriSerializer(DataObject.class, this.nlriSerializer)); + regs.add(context.registerExtendedCommunityParser(0, 0, this.exParser)); + regs.add(context.registerExtendedCommunitySerializer(RouteTargetIpv4Case.class, this.exSerializer)); + return regs; } private void initMock() { MockitoAnnotations.initMocks(this); try { - Mockito.doNothing().when(this.attrParser).parseAttribute(Mockito.any(ByteBuf.class), Mockito.any(AttributesBuilder.class)); + Mockito.doNothing().when(this.attrParser).parseAttribute(Mockito.any(ByteBuf.class), Mockito.any(AttributesBuilder.class), + Mockito.any(PeerSpecificParserConstraint.class)); Mockito.doReturn(EMPTY).when(this.attrParser).toString(); Mockito.doNothing().when(this.attrSerializer).serializeAttribute(Mockito.any(DataObject.class), Mockito.any(ByteBuf.class)); Mockito.doReturn(EMPTY).when(this.attrSerializer).toString(); @@ -115,14 +164,22 @@ public class BgpTestActivator extends AbstractBGPExtensionProviderActivator { Mockito.doNothing().when(this.capaSerializer).serializeCapability(Mockito.any(CParameters.class), Mockito.any(ByteBuf.class)); Mockito.doReturn(EMPTY).when(this.capaSerializer).toString(); - Mockito.doReturn(Mockito.mock(Notification.class)).when(this.msgParser).parseMessageBody(Mockito.any(ByteBuf.class), Mockito.anyInt()); + Mockito.doReturn(null).when(this.sidTlvParser).parseBgpPrefixSidTlv(Mockito.any(ByteBuf.class)); + Mockito.doReturn(EMPTY).when(this.sidTlvParser).toString(); + Mockito.doNothing().when(this.sidTlvSerializer).serializeBgpPrefixSidTlv(Mockito.any(BgpPrefixSidTlv.class), Mockito.any(ByteBuf.class)); + Mockito.doReturn(EMPTY).when(this.sidTlvSerializer).toString(); + Mockito.doReturn(0).when(this.sidTlvSerializer).getType(); + + Mockito.doReturn(Mockito.mock(Notification.class)).when(this.msgParser).parseMessageBody(Mockito.any(ByteBuf.class), Mockito.anyInt(), + Mockito.any(PeerSpecificParserConstraint.class)); Mockito.doReturn(EMPTY).when(this.msgParser).toString(); Mockito.doNothing().when(this.msgSerializer).serializeMessage(Mockito.any(Notification.class), Mockito.any(ByteBuf.class)); Mockito.doReturn(EMPTY).when(this.msgSerializer).toString(); - Mockito.doNothing().when(this.nlriParser).parseNlri(Mockito.any(ByteBuf.class), Mockito.any(MpUnreachNlriBuilder.class)); - Mockito.doNothing().when(this.nlriParser).parseNlri(Mockito.any(ByteBuf.class), Mockito.any(MpReachNlriBuilder.class)); + Mockito.doNothing().when(this.nlriParser).parseNlri(Mockito.any(ByteBuf.class), Mockito.any(MpUnreachNlriBuilder.class), Mockito.any()); + Mockito.doNothing().when(this.nlriParser).parseNlri(Mockito.any(ByteBuf.class), Mockito.any(MpReachNlriBuilder.class), Mockito.any()); Mockito.doReturn(EMPTY).when(this.nlriParser).toString(); + } catch (BGPDocumentedException | BGPParsingException e) { Assert.fail(); }