X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=bgp%2Fextensions%2Flinkstate%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fprotocol%2Fbgp%2Flinkstate%2FParserTest.java;h=4726d79222520c682be1ae8312990d80357d37d4;hb=66b8611ab00a626167bf20556d7cbb5ec00ca124;hp=15130dec08fcbee4cfa8094761463def984c7194;hpb=e68dc35b53976753133e4929e0b892aea35e86c7;p=bgpcep.git diff --git a/bgp/extensions/linkstate/src/test/java/org/opendaylight/protocol/bgp/linkstate/ParserTest.java b/bgp/extensions/linkstate/src/test/java/org/opendaylight/protocol/bgp/linkstate/ParserTest.java index 15130dec08..4726d79222 100644 --- a/bgp/extensions/linkstate/src/test/java/org/opendaylight/protocol/bgp/linkstate/ParserTest.java +++ b/bgp/extensions/linkstate/src/test/java/org/opendaylight/protocol/bgp/linkstate/ParserTest.java @@ -11,17 +11,16 @@ import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; +import static org.mockito.Mockito.mock; -import com.google.common.collect.Lists; -import com.google.common.collect.Sets; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; -import java.math.BigInteger; import java.util.ArrayList; import java.util.Collections; +import java.util.HashSet; import java.util.List; import java.util.Set; import org.junit.Before; @@ -30,10 +29,11 @@ import org.opendaylight.protocol.bgp.parser.BgpTableTypeImpl; import org.opendaylight.protocol.bgp.parser.impl.message.BGPUpdateMessageParser; import org.opendaylight.protocol.bgp.parser.spi.MessageRegistry; import org.opendaylight.protocol.bgp.parser.spi.MessageUtil; +import org.opendaylight.protocol.bgp.parser.spi.NlriRegistry; import org.opendaylight.protocol.bgp.parser.spi.pojo.ServiceLoaderBGPExtensionProviderContext; import org.opendaylight.protocol.util.ByteArray; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.AsNumber; -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.Ipv4AddressNoZone; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev180329.AreaIdentifier; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev180329.DomainIdentifier; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev180329.Identifier; @@ -90,13 +90,13 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.type 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.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.network.concepts.rev131125.Metric; import org.opendaylight.yangtools.yang.binding.Notification; +import org.opendaylight.yangtools.yang.common.Uint32; +import org.opendaylight.yangtools.yang.common.Uint64; public class ParserTest { - /** - * Used by other tests as well - */ - private static final List inputBytes = new ArrayList<>(); + // Used by other tests as well + private static final List INPUT_BYTES = new ArrayList<>(); private static final int COUNTER = 4; @@ -109,22 +109,22 @@ public class ParserTest { @Before public void setUp() throws Exception { updateParser = new BGPUpdateMessageParser(ServiceLoaderBGPExtensionProviderContext - .getSingletonInstance().getAttributeRegistry()); + .getSingletonInstance().getAttributeRegistry(), mock(NlriRegistry.class)); for (int i = 1; i <= COUNTER; i++) { final String name = "/up" + i + ".bin"; - try (final InputStream is = ParserTest.class.getResourceAsStream(name)){ + try (InputStream is = ParserTest.class.getResourceAsStream(name)) { if (is == null) { throw new IOException("Failed to get resource " + name); } final ByteArrayOutputStream bis = new ByteArrayOutputStream(); final byte[] data = new byte[MAX_SIZE]; - int nRead; - while ((nRead = is.read(data, 0, data.length)) != -1) { - bis.write(data, 0, nRead); + int numRead; + while ((numRead = is.read(data, 0, data.length)) != -1) { + bis.write(data, 0, numRead); } bis.flush(); - inputBytes.add(bis.toByteArray()); + INPUT_BYTES.add(bis.toByteArray()); is.close(); } } @@ -133,7 +133,7 @@ public class ParserTest { @Test public void testResource() { - assertNotNull(inputBytes); + assertNotNull(INPUT_BYTES); } /* @@ -152,10 +152,11 @@ public class ParserTest { */ @Test public void testEORLS() throws Exception { - final byte[] body = ByteArray.cutBytes(inputBytes.get(0), MessageUtil.COMMON_HEADER_LENGTH); - final int messageLength = ByteArray.bytesToInt(ByteArray.subByte(inputBytes.get(0), + final byte[] body = ByteArray.cutBytes(INPUT_BYTES.get(0), MessageUtil.COMMON_HEADER_LENGTH); + final int messageLength = ByteArray.bytesToInt(ByteArray.subByte(INPUT_BYTES.get(0), MessageUtil.MARKER_LENGTH, LENGTH_FIELD_LENGTH)); - final Update message = ParserTest.updateParser.parseMessageBody(Unpooled.copiedBuffer(body), messageLength); + final Update message = ParserTest.updateParser.parseMessageBody(Unpooled.copiedBuffer(body), messageLength, + null); final Class afi = message.getAttributes() .augmentation(Attributes2.class).getMpUnreachNlri().getAfi(); @@ -167,7 +168,7 @@ public class ParserTest { final ByteBuf buffer = Unpooled.buffer(); ParserTest.updateParser.serializeMessage(message, buffer); - assertArrayEquals(inputBytes.get(0), ByteArray.readAllBytes(buffer)); + assertArrayEquals(INPUT_BYTES.get(0), ByteArray.readAllBytes(buffer)); } /* @@ -321,10 +322,11 @@ public class ParserTest { */ @Test public void testBGPLink() throws Exception { - final byte[] body = ByteArray.cutBytes(inputBytes.get(1), MessageUtil.COMMON_HEADER_LENGTH); - final int messageLength = ByteArray.bytesToInt(ByteArray.subByte(inputBytes.get(1), + final byte[] body = ByteArray.cutBytes(INPUT_BYTES.get(1), MessageUtil.COMMON_HEADER_LENGTH); + final int messageLength = ByteArray.bytesToInt(ByteArray.subByte(INPUT_BYTES.get(1), MessageUtil.MARKER_LENGTH, LENGTH_FIELD_LENGTH)); - final Update message = ParserTest.updateParser.parseMessageBody(Unpooled.copiedBuffer(body), messageLength); + final Update message = ParserTest.updateParser.parseMessageBody(Unpooled.copiedBuffer(body), messageLength, + null); final UpdateBuilder builder = new UpdateBuilder(); @@ -333,18 +335,18 @@ public class ParserTest { assertNull(message.getWithdrawnRoutes()); final Ipv4NextHopCase nextHop = new Ipv4NextHopCaseBuilder().setIpv4NextHop( - new Ipv4NextHopBuilder().setGlobal(new Ipv4Address("25.25.25.1")).build()).build(); + new Ipv4NextHopBuilder().setGlobal(new Ipv4AddressNoZone("25.25.25.1")).build()).build(); final LocalNodeDescriptorsBuilder ndBuilder = new LocalNodeDescriptorsBuilder() - .setAsNumber(new AsNumber((long) 100)).setDomainId( - new DomainIdentifier(0x19191901L)).setAreaId(new AreaIdentifier(0L)); + .setAsNumber(new AsNumber(Uint32.valueOf(100))).setDomainId( + new DomainIdentifier(Uint32.valueOf(0x19191901L))).setAreaId(new AreaIdentifier(Uint32.ZERO)); final RemoteNodeDescriptorsBuilder rdBuilder = new RemoteNodeDescriptorsBuilder() - .setAsNumber(new AsNumber((long) 100)).setDomainId( - new DomainIdentifier(0x19191901L)).setAreaId(new AreaIdentifier(0L)); + .setAsNumber(new AsNumber(Uint32.valueOf(100))).setDomainId( + new DomainIdentifier(Uint32.valueOf(0x19191901L))).setAreaId(new AreaIdentifier(Uint32.ZERO)); final CLinkstateDestinationBuilder clBuilder = new CLinkstateDestinationBuilder(); - clBuilder.setIdentifier(new Identifier(BigInteger.ONE)); + clBuilder.setIdentifier(new Identifier(Uint64.ONE)); clBuilder.setProtocolId(ProtocolId.Ospf); final Attributes1Builder lsBuilder = new Attributes1Builder(); @@ -353,32 +355,34 @@ public class ParserTest { mpBuilder.setSafi(LinkstateSubsequentAddressFamily.class); mpBuilder.setCNextHop(nextHop); - final List linkstates = Lists.newArrayList(); - final LinkCaseBuilder lCase = new LinkCaseBuilder().setLocalNodeDescriptors(ndBuilder.setCRouterIdentifier( - new OspfPseudonodeCaseBuilder().setOspfPseudonode( - new OspfPseudonodeBuilder().setOspfRouterId(0x03030304L) - .setLanInterface(new OspfInterfaceIdentifier(0x0b0b0b03L)).build()).build()).build()); + final List linkstates = new ArrayList<>(); + final LinkCaseBuilder lCase = new LinkCaseBuilder() + .setLocalNodeDescriptors(ndBuilder.setCRouterIdentifier(new OspfPseudonodeCaseBuilder() + .setOspfPseudonode(new OspfPseudonodeBuilder() + .setOspfRouterId(Uint32.valueOf(0x03030304L)) + .setLanInterface(new OspfInterfaceIdentifier(Uint32.valueOf(0x0b0b0b03L))) + .build()).build()).build()); lCase.setRemoteNodeDescriptors(rdBuilder.setCRouterIdentifier( new OspfNodeCaseBuilder().setOspfNode(new OspfNodeBuilder() - .setOspfRouterId(0x03030304L).build()).build()).build()); + .setOspfRouterId(Uint32.valueOf(0x03030304L)).build()).build()).build()); lCase.setLinkDescriptors(new LinkDescriptorsBuilder().setIpv4InterfaceAddress( - new Ipv4InterfaceIdentifier(new Ipv4Address("11.11.11.3"))).build()); + new Ipv4InterfaceIdentifier(new Ipv4AddressNoZone("11.11.11.3"))).build()); linkstates.add(clBuilder.setObjectType(lCase.build()).build()); lCase.setRemoteNodeDescriptors(rdBuilder.setCRouterIdentifier( new OspfNodeCaseBuilder().setOspfNode(new OspfNodeBuilder() - .setOspfRouterId(0x01010102L).build()).build()).build()); + .setOspfRouterId(Uint32.valueOf(0x01010102L)).build()).build()).build()); lCase.setLinkDescriptors(new LinkDescriptorsBuilder().setIpv4InterfaceAddress( - new Ipv4InterfaceIdentifier(new Ipv4Address("11.11.11.1"))).build()); + new Ipv4InterfaceIdentifier(new Ipv4AddressNoZone("11.11.11.1"))).build()); linkstates.add(clBuilder.setObjectType(lCase.build()).build()); lCase.setLocalNodeDescriptors(ndBuilder.setCRouterIdentifier( new OspfNodeCaseBuilder().setOspfNode(new OspfNodeBuilder() - .setOspfRouterId(0x01010102L).build()).build()).build()); + .setOspfRouterId(Uint32.valueOf(0x01010102L)).build()).build()).build()); lCase.setRemoteNodeDescriptors(rdBuilder.setCRouterIdentifier( new OspfPseudonodeCaseBuilder().setOspfPseudonode(new OspfPseudonodeBuilder() - .setOspfRouterId(0x03030304L) - .setLanInterface(new OspfInterfaceIdentifier(0x0b0b0b03L)).build()).build()).build()); + .setOspfRouterId(Uint32.valueOf(0x03030304L)) + .setLanInterface(new OspfInterfaceIdentifier(Uint32.valueOf(0x0b0b0b03L))).build()).build()).build()); linkstates.add(clBuilder.setObjectType(lCase.build()).build()); lsBuilder.setMpReachNlri(mpBuilder.build()); @@ -394,7 +398,7 @@ public class ParserTest { paBuilder.setAsPath(new AsPathBuilder().setSegments(Collections.emptyList()).build()); assertEquals(paBuilder.getAsPath(), attrs.getAsPath()); - paBuilder.setLocalPref(new LocalPrefBuilder().setPref(100L).build()); + paBuilder.setLocalPref(new LocalPrefBuilder().setPref(Uint32.valueOf(100)).build()); assertEquals(paBuilder.getLocalPref(), attrs.getLocalPref()); final MpReachNlri mp = attrs.augmentation(Attributes1.class).getMpReachNlri(); @@ -411,13 +415,13 @@ public class ParserTest { paBuilder.addAugmentation(Attributes1.class, lsBuilder.build()); - final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev180329. - Attributes1Builder lsAttrBuilder = new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang. - bgp.linkstate.rev180329.Attributes1Builder(); + final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev180329 + .Attributes1Builder lsAttrBuilder = new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang + .bgp.linkstate.rev180329.Attributes1Builder(); lsAttrBuilder.setLinkStateAttribute( new LinkAttributesCaseBuilder().setLinkAttributes(new LinkAttributesBuilder() - .setMetric(new Metric(1L)).build()).build()); + .setMetric(new Metric(Uint32.ONE)).build()).build()); paBuilder.addAugmentation( org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev180329.Attributes1.class, lsAttrBuilder.build()); @@ -440,7 +444,7 @@ public class ParserTest { final ByteBuf buffer = Unpooled.buffer(); ParserTest.updateParser.serializeMessage(message, buffer); - assertArrayEquals(inputBytes.get(1), ByteArray.readAllBytes(buffer)); + assertArrayEquals(INPUT_BYTES.get(1), ByteArray.readAllBytes(buffer)); } /* @@ -528,10 +532,11 @@ public class ParserTest { */ @Test public void testBGPNode() throws Exception { - final byte[] body = ByteArray.cutBytes(inputBytes.get(2), MessageUtil.COMMON_HEADER_LENGTH); + final byte[] body = ByteArray.cutBytes(INPUT_BYTES.get(2), MessageUtil.COMMON_HEADER_LENGTH); final int messageLength = ByteArray - .bytesToInt(ByteArray.subByte(inputBytes.get(2), MessageUtil.MARKER_LENGTH, LENGTH_FIELD_LENGTH)); - final Update message = ParserTest.updateParser.parseMessageBody(Unpooled.copiedBuffer(body), messageLength); + .bytesToInt(ByteArray.subByte(INPUT_BYTES.get(2), MessageUtil.MARKER_LENGTH, LENGTH_FIELD_LENGTH)); + final Update message = ParserTest.updateParser.parseMessageBody(Unpooled.copiedBuffer(body), messageLength, + null); final UpdateBuilder builder = new UpdateBuilder(); @@ -542,32 +547,35 @@ public class ParserTest { // attributes final Ipv4NextHopCase nextHop = new Ipv4NextHopCaseBuilder().setIpv4NextHop( - new Ipv4NextHopBuilder().setGlobal(new Ipv4Address("25.25.25.1")).build()).build(); + new Ipv4NextHopBuilder().setGlobal(new Ipv4AddressNoZone("25.25.25.1")).build()).build(); final CLinkstateDestinationBuilder clBuilder = new CLinkstateDestinationBuilder(); - clBuilder.setIdentifier(new Identifier(BigInteger.ONE)); + clBuilder.setIdentifier(new Identifier(Uint64.ONE)); clBuilder.setProtocolId(ProtocolId.Ospf); - final NodeDescriptorsBuilder n = new NodeDescriptorsBuilder(); - n.setAsNumber(new AsNumber((long) 100)).setDomainId(new DomainIdentifier(0x19191901L)) - .setAreaId(new AreaIdentifier(0L)); - - final List linkstates = Lists.newArrayList(); - final NodeCaseBuilder nCase = new NodeCaseBuilder(); - nCase.setNodeDescriptors(n.setCRouterIdentifier( - new OspfPseudonodeCaseBuilder().setOspfPseudonode( - new OspfPseudonodeBuilder().setOspfRouterId(0x03030304L) - .setLanInterface(new OspfInterfaceIdentifier(0x0b0b0b03L)).build()).build()).build()); + final NodeDescriptorsBuilder n = new NodeDescriptorsBuilder() + .setAsNumber(new AsNumber(Uint32.valueOf(100))) + .setDomainId(new DomainIdentifier(Uint32.valueOf(0x19191901L))) + .setAreaId(new AreaIdentifier(Uint32.ZERO)); + + final List linkstates = new ArrayList<>(); + final NodeCaseBuilder nCase = new NodeCaseBuilder() + .setNodeDescriptors(n.setCRouterIdentifier(new OspfPseudonodeCaseBuilder() + .setOspfPseudonode(new OspfPseudonodeBuilder() + .setOspfRouterId(Uint32.valueOf(0x03030304L)) + .setLanInterface(new OspfInterfaceIdentifier(Uint32.valueOf(0x0b0b0b03L))) + .build()) + .build()).build()); linkstates.add(clBuilder.setObjectType(nCase.build()).build()); nCase.setNodeDescriptors(n.setCRouterIdentifier( new OspfNodeCaseBuilder().setOspfNode(new OspfNodeBuilder() - .setOspfRouterId(0x03030304L).build()).build()).build()); + .setOspfRouterId(Uint32.valueOf(0x03030304L)).build()).build()).build()); linkstates.add(clBuilder.setObjectType(nCase.build()).build()); nCase.setNodeDescriptors(n.setCRouterIdentifier( new OspfNodeCaseBuilder().setOspfNode(new OspfNodeBuilder() - .setOspfRouterId(0x01010102L).build()).build()).build()); + .setOspfRouterId(Uint32.valueOf(0x01010102L)).build()).build()).build()); linkstates.add(clBuilder.setObjectType(nCase.build()).build()); final Attributes1Builder lsBuilder = new Attributes1Builder(); @@ -594,7 +602,7 @@ public class ParserTest { paBuilder.setAsPath(new AsPathBuilder().setSegments(Collections.emptyList()).build()); assertEquals(paBuilder.getAsPath(), attrs.getAsPath()); - paBuilder.setLocalPref(new LocalPrefBuilder().setPref(100L).build()); + paBuilder.setLocalPref(new LocalPrefBuilder().setPref(Uint32.valueOf(100)).build()); assertEquals(paBuilder.getLocalPref(), attrs.getLocalPref()); paBuilder.addAugmentation(Attributes1.class, lsBuilder.build()); @@ -618,7 +626,7 @@ public class ParserTest { final ByteBuf buffer = Unpooled.buffer(); ParserTest.updateParser.serializeMessage(message, buffer); - assertArrayEquals(inputBytes.get(2), ByteArray.readAllBytes(buffer)); + assertArrayEquals(INPUT_BYTES.get(2), ByteArray.readAllBytes(buffer)); } /* @@ -655,13 +663,13 @@ public class ParserTest { public void testOpenMessage() throws Exception { final MessageRegistry msgReg = ServiceLoaderBGPExtensionProviderContext .getSingletonInstance().getMessageRegistry(); - final Notification o = msgReg.parseMessage(Unpooled.copiedBuffer(inputBytes.get(3)), null); + final Notification o = msgReg.parseMessage(Unpooled.copiedBuffer(INPUT_BYTES.get(3)), null); final Open open = (Open) o; - final Set types = Sets.newHashSet(); + final Set types = new HashSet<>(); for (final BgpParameters param : open.getBgpParameters()) { for (final OptionalCapabilities optCapa : param.getOptionalCapabilities()) { final CParameters cParam = optCapa.getCParameters(); - if(cParam != null && cParam.augmentation(CParameters1.class) != null + if (cParam != null && cParam.augmentation(CParameters1.class) != null && cParam.augmentation(CParameters1.class).getMultiprotocolCapability() != null) { final MultiprotocolCapability mp = cParam.augmentation(CParameters1.class) .getMultiprotocolCapability(); @@ -670,7 +678,7 @@ public class ParserTest { } } } - final Set expected = Sets.newHashSet(); + final Set expected = new HashSet<>(); expected.add(new BgpTableTypeImpl(Ipv4AddressFamily.class, UnicastSubsequentAddressFamily.class)); expected.add(new BgpTableTypeImpl(Ipv6AddressFamily.class, UnicastSubsequentAddressFamily.class)); expected.add(new BgpTableTypeImpl(LinkstateAddressFamily.class, LinkstateSubsequentAddressFamily.class)); @@ -678,6 +686,6 @@ public class ParserTest { final ByteBuf buffer = Unpooled.buffer(); msgReg.serializeMessage(o, buffer); - assertArrayEquals(inputBytes.get(3), ByteArray.readAllBytes(buffer)); + assertArrayEquals(INPUT_BYTES.get(3), ByteArray.readAllBytes(buffer)); } }