Rename multiprotocol augmentations
[bgpcep.git] / bgp / rib-impl / src / test / java / org / opendaylight / protocol / bgp / rib / impl / SynchronizationTest.java
index da34fe43a256b0b92512d5c64cf3c1aac5c56154..7d777307ec3e7c0be31c9b9215e93ae04a63a508 100644 (file)
@@ -8,35 +8,34 @@
 package org.opendaylight.protocol.bgp.rib.impl;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
 
-import com.google.common.collect.Lists;
 import com.google.common.collect.Sets;
-import java.util.Set;
+import java.util.Collections;
 import org.junit.Before;
 import org.junit.Test;
-import org.opendaylight.protocol.bgp.parser.BgpTableTypeImpl;
-import org.opendaylight.protocol.bgp.rib.spi.BGPSession;
-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.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Prefix;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev150210.LinkstateAddressFamily;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev150210.LinkstateSubsequentAddressFamily;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.Update;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.UpdateBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.update.NlriBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.update.PathAttributesBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev130919.BgpTableType;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev130919.PathAttributes1;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev130919.PathAttributes1Builder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev130919.PathAttributes2;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev130919.update.path.attributes.MpReachNlriBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev130925.rib.TablesKey;
-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.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev200120.LinkstateAddressFamily;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev200120.LinkstateSubsequentAddressFamily;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev200120.Update;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev200120.UpdateBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev200120.path.attributes.AttributesBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev200120.update.message.NlriBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev180329.AttributesReachBuilder;
+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.rib.rev180329.rib.TablesKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev200120.Ipv4AddressFamily;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev200120.Ipv6AddressFamily;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev200120.UnicastSubsequentAddressFamily;
 
 public class SynchronizationTest {
 
+    private final TablesKey ipv4
+            = new TablesKey(Ipv4AddressFamily.class, UnicastSubsequentAddressFamily.class);
+    private final TablesKey linkstate
+            = new TablesKey(LinkstateAddressFamily.class, LinkstateSubsequentAddressFamily.class);
+
     private BGPSynchronization bs;
 
     private SimpleSessionListener listener;
@@ -52,56 +51,32 @@ public class SynchronizationTest {
     @Before
     public void setUp() {
         this.listener = new SimpleSessionListener();
-        this.ipv4m = new UpdateBuilder().setNlri(new NlriBuilder().setNlri(Lists.newArrayList(new Ipv4Prefix("1.1.1.1/32"))).build()).build();
+        this.ipv4m = new UpdateBuilder()
+                .setNlri(Collections.singletonList(new NlriBuilder()
+                .setPrefix(new Ipv4Prefix("1.1.1.1/32")).build()))
+                .build();
 
         MpReachNlriBuilder mpBuilder = new MpReachNlriBuilder();
         mpBuilder.setAfi(Ipv6AddressFamily.class);
         mpBuilder.setSafi(UnicastSubsequentAddressFamily.class);
 
-        PathAttributesBuilder paBuilder = new PathAttributesBuilder().addAugmentation(PathAttributes1.class,
-                new PathAttributes1Builder().setMpReachNlri(mpBuilder.build()).build());
+        AttributesBuilder paBuilder = new AttributesBuilder()
+                .addAugmentation(new AttributesReachBuilder().setMpReachNlri(mpBuilder.build()).build());
 
-        this.ipv6m = new UpdateBuilder().setPathAttributes(paBuilder.build()).build();
+        this.ipv6m = new UpdateBuilder().setAttributes(paBuilder.build()).build();
 
         mpBuilder = new MpReachNlriBuilder();
         mpBuilder.setAfi(LinkstateAddressFamily.class);
         mpBuilder.setSafi(LinkstateSubsequentAddressFamily.class);
 
-        paBuilder = new PathAttributesBuilder().addAugmentation(PathAttributes1.class, new PathAttributes1Builder().setMpReachNlri(
-                mpBuilder.build()).build());
+        paBuilder = new AttributesBuilder()
+                .addAugmentation(new AttributesReachBuilder().setMpReachNlri(mpBuilder.build()).build());
 
-        this.lsm = new UpdateBuilder().setPathAttributes(paBuilder.build()).build();
+        this.lsm = new UpdateBuilder().setAttributes(paBuilder.build()).build();
 
         this.eorm = new UpdateBuilder().build();
 
-        final Set<TablesKey> types = Sets.newHashSet();
-        types.add(new TablesKey(Ipv4AddressFamily.class, UnicastSubsequentAddressFamily.class));
-        types.add(new TablesKey(LinkstateAddressFamily.class, LinkstateSubsequentAddressFamily.class));
-
-        this.bs = new BGPSynchronization(new BGPSession() {
-
-            @Override
-            public void close() {
-            }
-
-            @Override
-            public Set<BgpTableType> getAdvertisedTableTypes() {
-                final Set<BgpTableType> types = Sets.newHashSet();
-                types.add(new BgpTableTypeImpl(Ipv4AddressFamily.class, UnicastSubsequentAddressFamily.class));
-                types.add(new BgpTableTypeImpl(LinkstateAddressFamily.class, LinkstateSubsequentAddressFamily.class));
-                return types;
-            }
-
-            @Override
-            public Ipv4Address getBgpId() {
-                return new Ipv4Address("127.0.0.1");
-            }
-
-            @Override
-            public AsNumber getAsNumber() {
-                return new AsNumber(30L);
-            }
-        }, this.listener, types);
+        this.bs = new BGPSynchronization(this.listener, Sets.newHashSet(this.ipv4, this.linkstate));
     }
 
     @Test
@@ -111,13 +86,13 @@ public class SynchronizationTest {
         this.bs.updReceived(this.ipv4m);
         this.bs.updReceived(this.lsm);
         this.bs.kaReceived(); // nothing yet
+        assertFalse(this.bs.syncStorage.get(this.linkstate).getEor());
+        assertFalse(this.bs.syncStorage.get(this.ipv4).getEor());
         this.bs.updReceived(this.ipv4m);
         this.bs.kaReceived(); // linkstate
-        assertEquals(1, this.listener.getListMsg().size());
-        assertEquals(LinkstateAddressFamily.class, ((Update) this.listener.getListMsg().get(0)).getPathAttributes().getAugmentation(
-                PathAttributes2.class).getMpUnreachNlri().getAfi());
+        assertTrue(this.bs.syncStorage.get(this.linkstate).getEor());
         this.bs.kaReceived(); // ipv4 sync
-        assertEquals(2, this.listener.getListMsg().size());
+        assertTrue(this.bs.syncStorage.get(this.ipv4).getEor());
     }
 
     @Test
@@ -125,14 +100,15 @@ public class SynchronizationTest {
         this.bs.updReceived(this.ipv4m);
         this.bs.updReceived(this.lsm);
         // Ipv4 Unicast synchronized by EOR message
+        assertFalse(this.bs.syncStorage.get(this.ipv4).getEor());
         this.bs.updReceived(this.eorm);
+        assertTrue(this.bs.syncStorage.get(this.ipv4).getEor());
         // Linkstate not synchronized yet
+        assertFalse(this.bs.syncStorage.get(this.linkstate).getEor());
         this.bs.kaReceived();
         // no message sent by BGPSychchronization
         assertEquals(0, this.listener.getListMsg().size());
         this.bs.kaReceived();
-        assertEquals(1, this.listener.getListMsg().size());
-        assertEquals(LinkstateAddressFamily.class, ((Update) this.listener.getListMsg().get(0)).getPathAttributes().getAugmentation(
-                PathAttributes2.class).getMpUnreachNlri().getAfi());
+        assertTrue(this.bs.syncStorage.get(this.linkstate).getEor());
     }
 }