Add SPI registry implementations
[bgpcep.git] / bgp / parser-impl / src / test / java / org / opendaylight / protocol / bgp / parser / impl / ComplementaryTest.java
index 9ad8c338ccc93d33bc4049fa07ec26379d9dc0d7..cb15854aaff2f9c56a2de9ab7f80386b195b8c30 100644 (file)
@@ -9,35 +9,35 @@ package org.opendaylight.protocol.bgp.parser.impl;
 
 import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotSame;
-import static org.junit.Assert.assertNull;
 import static org.junit.Assert.fail;
 
 import java.io.IOException;
-import java.util.Collections;
-import java.util.Set;
+import java.util.Map;
 
 import org.junit.Test;
-import org.opendaylight.protocol.bgp.linkstate.IPv4InterfaceIdentifier;
-import org.opendaylight.protocol.bgp.linkstate.ISISLANIdentifier;
-import org.opendaylight.protocol.bgp.linkstate.ISISRouterIdentifier;
-import org.opendaylight.protocol.bgp.linkstate.InterfaceIdentifier;
-import org.opendaylight.protocol.bgp.linkstate.LinkAnchor;
-import org.opendaylight.protocol.bgp.linkstate.LinkIdentifier;
-import org.opendaylight.protocol.bgp.linkstate.NodeIdentifier;
-import org.opendaylight.protocol.bgp.linkstate.NodeIdentifierFactory;
-import org.opendaylight.protocol.bgp.linkstate.SourceProtocol;
 import org.opendaylight.protocol.bgp.parser.BGPDocumentedException;
+import org.opendaylight.protocol.bgp.parser.BGPMessageFactory;
+import org.opendaylight.protocol.bgp.parser.BgpTableTypeImpl;
 import org.opendaylight.protocol.bgp.parser.impl.message.update.CommunitiesParser;
-import org.opendaylight.protocol.concepts.IPv4;
-import org.opendaylight.protocol.concepts.ISOSystemIdentifier;
 import org.opendaylight.protocol.framework.DeserializerException;
 import org.opendaylight.protocol.framework.DocumentedException;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.AsNumber;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Address;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev130918.LinkstateAddressFamily;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130918.open.bgp.parameters.CParameters;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130918.open.bgp.parameters.c.parameters.CAs4Bytes;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130918.open.bgp.parameters.c.parameters.CAs4BytesBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130918.open.bgp.parameters.c.parameters.c.as4.bytes.As4BytesCapabilityBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130918.path.attributes.AggregatorBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev130918.BgpTableType;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev130918.open.bgp.parameters.c.parameters.CMultiprotocolBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev130918.open.bgp.parameters.c.parameters.c.multiprotocol.MultiprotocolCapability;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev130918.open.bgp.parameters.c.parameters.c.multiprotocol.MultiprotocolCapabilityBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.BgpAggregator;
+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.UnicastSubsequentAddressFamily;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.extended.community.extended.community.CAsSpecificExtendedCommunity;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.extended.community.extended.community.CAsSpecificExtendedCommunityBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.extended.community.extended.community.CInet4SpecificExtendedCommunity;
@@ -54,65 +54,68 @@ 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.rev130919.extended.community.extended.community.c.route.origin.extended.community.RouteOriginExtendedCommunityBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.extended.community.extended.community.c.route.target.extended.community.RouteTargetExtendedCommunityBuilder;
 
-import com.google.common.collect.Sets;
+import com.google.common.collect.Maps;
 
 public class ComplementaryTest {
 
        @Test
-       public void testBGPAggregatorImpl() {
-               final BgpAggregator ipv4 = new AggregatorBuilder().setAsNumber(new AsNumber((long) 5524)).setNetworkAddress(
-                               new Ipv4Address("124.55.42.1")).build();
-               final BgpAggregator ipv4i = new AggregatorBuilder().setAsNumber(new AsNumber((long) 5525)).setNetworkAddress(
-                               new Ipv4Address("124.55.42.1")).build();
+       public void testBGPParameter() {
 
-               assertNotSame(ipv4.hashCode(), ipv4i.hashCode());
+               final BgpTableType t = new BgpTableTypeImpl(LinkstateAddressFamily.class, UnicastSubsequentAddressFamily.class);
+               final BgpTableType t1 = new BgpTableTypeImpl(Ipv4AddressFamily.class, UnicastSubsequentAddressFamily.class);
 
-               assertNotSame(ipv4.getAsNumber(), ipv4i.getAsNumber());
+               final MultiprotocolCapability cap = new MultiprotocolCapabilityBuilder().setAfi(LinkstateAddressFamily.class).setSafi(
+                               UnicastSubsequentAddressFamily.class).build();
+               final CParameters tlv1 = new CMultiprotocolBuilder().setMultiprotocolCapability(cap).build();
 
-               assertEquals(ipv4.getNetworkAddress(), ipv4i.getNetworkAddress());
-       }
+               final MultiprotocolCapability cap1 = new MultiprotocolCapabilityBuilder().setAfi(Ipv4AddressFamily.class).setSafi(
+                               UnicastSubsequentAddressFamily.class).build();
+               final CParameters tlv2 = new CMultiprotocolBuilder().setMultiprotocolCapability(cap1).build();
 
-       @Test
-       public void testBGPLinkMP() {
-               final NodeIdentifier localnodeid = new NodeIdentifier(new AsNumber((long) 25600), null, null, new ISISRouterIdentifier(new ISOSystemIdentifier(new byte[] {
-                               0x22, 0x22, 0x22, 0x22, 0x22, 0x22 })));
-               final NodeIdentifier remotenodeid = NodeIdentifierFactory.localIdentifier(new ISISLANIdentifier(new ISOSystemIdentifier(new byte[] {
-                               0x22, 0x22, 0x22, 0x22, 0x22, 0x22 }), (short) 1));
+               final Map<BgpTableType, Boolean> tt = Maps.newHashMap();
+               tt.put(t, true);
+               tt.put(t1, false);
 
-               final InterfaceIdentifier ifaceid = new IPv4InterfaceIdentifier(IPv4.FAMILY.addressForString("10.1.1.1"));
+               // final BGPParameter tlv3 = new GracefulCapability(false, 0, tt);
 
-               final LinkIdentifier l = new LinkIdentifier(null, new LinkAnchor(localnodeid, ifaceid), new LinkAnchor(remotenodeid, ifaceid));
+               final CParameters tlv4 = new CAs4BytesBuilder().setAs4BytesCapability(
+                               new As4BytesCapabilityBuilder().setAsNumber(new AsNumber((long) 40)).build()).build();
 
-               final Set<LinkIdentifier> links = Sets.newHashSet(l);
+               // assertFalse(((GracefulCapability) tlv3).isRestartFlag());
 
-               final BGPLinkMP link = new BGPLinkMP(0, SourceProtocol.Direct, true, links);
+               // assertEquals(0, ((GracefulCapability) tlv3).getRestartTimerValue());
 
-               final BGPLinkMP link1 = new BGPLinkMP(0, SourceProtocol.Direct, true, Collections.<LinkIdentifier> emptySet());
+               assertFalse(tlv1.equals(tlv2));
 
-               assertNotSame(link.hashCode(), link1.hashCode());
+               // assertNotSame(tlv1.hashCode(), tlv3.hashCode());
 
-               assertEquals(link, new BGPLinkMP(0, SourceProtocol.Direct, true, links));
+               // assertNotSame(tlv2.toString(), tlv3.toString());
 
-               assertEquals(link.hashCode(), (new BGPLinkMP(0, SourceProtocol.Direct, true, links)).hashCode());
+               // assertEquals(((GracefulCapability) tlv3).getTableTypes(), tt);
 
-               assertNotSame(link.toString(), link1.toString());
-       }
+               assertEquals(cap.getSafi(), cap1.getSafi());
 
-       @Test
-       public void testBGPUpdateMessageImpl() {
-               final BGPUpdateMessageImpl msg = new BGPUpdateMessageImpl(null, null);
-               final BGPUpdateMessageImpl msg1 = new BGPUpdateMessageImpl(null, null);
+               assertNotSame(cap.getAfi(), cap1.getAfi());
 
-               assertEquals(msg, msg1);
+               assertEquals(40, ((CAs4Bytes) tlv4).getAs4BytesCapability().getAsNumber().getValue().longValue());
 
-               assertEquals(msg.hashCode(), msg1.hashCode());
+               // FIXME: no generated toString
+               // assertEquals(new As4BytesBuilder().setCAs4Bytes(new CAs4BytesBuilder().setAsNumber(new AsNumber((long)
+               // 40)).build()).build().toString(), tlv4.toString());
+       }
 
-               assertNotNull(msg.toString());
+       @Test
+       public void testBGPAggregatorImpl() {
+               final BgpAggregator ipv4 = new AggregatorBuilder().setAsNumber(new AsNumber((long) 5524)).setNetworkAddress(
+                               new Ipv4Address("124.55.42.1")).build();
+               final BgpAggregator ipv4i = new AggregatorBuilder().setAsNumber(new AsNumber((long) 5525)).setNetworkAddress(
+                               new Ipv4Address("124.55.42.1")).build();
 
-               assertNull(msg.getAddedObjects());
-               assertNull(msg.getRemovedObjects());
+               assertNotSame(ipv4.hashCode(), ipv4i.hashCode());
 
-               assertNotSame(msg1, null);
+               assertNotSame(ipv4.getAsNumber(), ipv4i.getAsNumber());
+
+               assertEquals(ipv4.getNetworkAddress(), ipv4i.getNetworkAddress());
        }
 
        @Test
@@ -177,7 +180,7 @@ public class ComplementaryTest {
                        fail("Not expected exception: " + e1);
                }
                final CInet4SpecificExtendedCommunity iexpected = new CInet4SpecificExtendedCommunityBuilder().setInet4SpecificExtendedCommunity(
-                               new Inet4SpecificExtendedCommunityBuilder().setTransitive(true).setGlobalAdministrator(new Ipv4Address("/12.51.2.5")).setLocalAdministrator(
+                               new Inet4SpecificExtendedCommunityBuilder().setTransitive(true).setGlobalAdministrator(new Ipv4Address("12.51.2.5")).setLocalAdministrator(
                                                new byte[] { 21, 45 }).build()).build();
                assertEquals(iexpected.getInet4SpecificExtendedCommunity().isTransitive(), sec.getInet4SpecificExtendedCommunity().isTransitive());
                assertEquals(iexpected.getInet4SpecificExtendedCommunity().getGlobalAdministrator(),
@@ -216,7 +219,7 @@ public class ComplementaryTest {
 
        @Test
        public void testBGPHeaderParser() throws IOException {
-               final BGPMessageFactoryImpl h = new BGPMessageFactoryImpl();
+               final BGPMessageFactory h = BGPMessageFactoryImpl.INSTANCE;
                try {
                        h.parse(new byte[] { (byte) 0, (byte) 0 });
                        fail("Exception should have occured.");
@@ -245,7 +248,7 @@ public class ComplementaryTest {
 
        @Test
        public void testMessageParser() throws IOException {
-               final BGPMessageFactoryImpl parser = new BGPMessageFactoryImpl();
+               final BGPMessageFactory parser = BGPMessageFactoryImpl.INSTANCE;
                String ex = "";
                try {
                        parser.put(null);