* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
-
package org.opendaylight.protocol.bgp.parser.impl;
-import com.google.common.collect.Lists;
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
+
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import java.util.Collections;
-import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.opendaylight.protocol.bgp.parser.BGPDocumentedException;
import org.opendaylight.protocol.bgp.parser.impl.message.open.GracefulCapabilityHandler;
import org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderContext;
import org.opendaylight.protocol.bgp.parser.spi.pojo.ServiceLoaderBGPExtensionProviderContext;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.open.message.bgp.parameters.optional.capabilities.CParametersBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev130919.CParameters1;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev130919.CParameters1Builder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev130919.open.bgp.parameters.optional.capabilities.c.parameters.GracefulRestartCapability.RestartFlags;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev130919.open.bgp.parameters.optional.capabilities.c.parameters.GracefulRestartCapabilityBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev130919.open.bgp.parameters.optional.capabilities.c.parameters.graceful.restart.capability.Tables;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev130919.open.bgp.parameters.optional.capabilities.c.parameters.graceful.restart.capability.Tables.AfiFlags;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev130919.open.bgp.parameters.optional.capabilities.c.parameters.graceful.restart.capability.TablesBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.AddressFamily;
-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.SubsequentAddressFamily;
-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.message.rev200120.open.message.bgp.parameters.optional.capabilities.CParametersBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev180329.CParameters1Builder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev180329.mp.capabilities.GracefulRestartCapability.RestartFlags;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev180329.mp.capabilities.GracefulRestartCapabilityBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev180329.mp.capabilities.graceful.restart.capability.Tables.AfiFlags;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev180329.mp.capabilities.graceful.restart.capability.TablesBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev200120.AddressFamily;
+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.SubsequentAddressFamily;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev200120.UnicastSubsequentAddressFamily;
+import org.opendaylight.yangtools.yang.binding.util.BindingMap;
+import org.opendaylight.yangtools.yang.common.Uint16;
public class GracefulCapabilityHandlerTest {
this.ctx.getAddressFamilyRegistry(),this.ctx.getSubsequentAddressFamilyRegistry());
final byte[] capaBytes = {
- (byte) 0x40, (byte) 0x06, (byte) 0x80, (byte) 0x32,
+ (byte) 0x40, (byte) 0x06, (byte) 0x81, (byte) 0xf4,
(byte) 0x00, (byte) 0x01, (byte) 0x01, (byte) 0x80
};
- final GracefulRestartCapabilityBuilder capaBuilder = new GracefulRestartCapabilityBuilder();
- capaBuilder.setRestartFlags(new RestartFlags(true));
- capaBuilder.setRestartTime(50);
- final TablesBuilder tablesBuilder = new TablesBuilder();
- tablesBuilder.setAfiFlags(new AfiFlags(true));
- tablesBuilder.setAfi(Ipv4AddressFamily.class);
- tablesBuilder.setSafi(UnicastSubsequentAddressFamily.class);
- capaBuilder.setTables(Lists.newArrayList(tablesBuilder.build()));
+ final GracefulRestartCapabilityBuilder capaBuilder = new GracefulRestartCapabilityBuilder()
+ .setRestartFlags(new RestartFlags(true))
+ .setRestartTime(Uint16.valueOf(500));
+ final TablesBuilder tablesBuilder = new TablesBuilder()
+ .setAfiFlags(new AfiFlags(true))
+ .setAfi(Ipv4AddressFamily.class)
+ .setSafi(UnicastSubsequentAddressFamily.class);
+ capaBuilder.setTables(BindingMap.of(tablesBuilder.build()));
final ByteBuf buffer = Unpooled.buffer(capaBytes.length);
- handler.serializeCapability( new CParametersBuilder().addAugmentation(CParameters1.class,
- new CParameters1Builder().setGracefulRestartCapability(capaBuilder.build()).build()).build(), buffer);
- Assert.assertArrayEquals(capaBytes, buffer.array());
+ handler.serializeCapability(new CParametersBuilder()
+ .addAugmentation(new CParameters1Builder().setGracefulRestartCapability(capaBuilder.build()).build())
+ .build(), buffer);
+ assertArrayEquals(capaBytes, buffer.array());
- Assert.assertEquals( new CParametersBuilder().addAugmentation(CParameters1.class,
- new CParameters1Builder().setGracefulRestartCapability(capaBuilder.build()).build()).build(),
- handler.parseCapability(Unpooled.wrappedBuffer(capaBytes).slice(2, capaBytes.length - 2)));
+ assertEquals(new CParametersBuilder()
+ .addAugmentation(new CParameters1Builder().setGracefulRestartCapability(capaBuilder.build()).build())
+ .build(), handler.parseCapability(Unpooled.wrappedBuffer(capaBytes).slice(2, capaBytes.length - 2)));
final byte[] capaBytes2 = {
(byte) 0x40, (byte) 0x06, (byte) 0x00, (byte) 0x00,
(byte) 0x00, (byte) 0x01, (byte) 0x01, (byte) 0x00
};
capaBuilder.setRestartFlags(new RestartFlags(false));
- capaBuilder.setRestartTime(0);
+ capaBuilder.setRestartTime(Uint16.ZERO);
tablesBuilder.setAfiFlags(new AfiFlags(false));
- capaBuilder.setTables(Lists.newArrayList(tablesBuilder.build()));
+ capaBuilder.setTables(BindingMap.of(tablesBuilder.build()));
buffer.clear();
- handler.serializeCapability( new CParametersBuilder().addAugmentation(CParameters1.class,
- new CParameters1Builder().setGracefulRestartCapability(capaBuilder.build()).build()).build(), buffer);
- Assert.assertArrayEquals(capaBytes2, buffer.array());
- Assert.assertEquals( new CParametersBuilder().addAugmentation(CParameters1.class,
- new CParameters1Builder().setGracefulRestartCapability(capaBuilder.build()).build()).build(),
- handler.parseCapability(Unpooled.wrappedBuffer(capaBytes2).slice(2, capaBytes2.length - 2)));
+ handler.serializeCapability(new CParametersBuilder()
+ .addAugmentation(new CParameters1Builder().setGracefulRestartCapability(capaBuilder.build()).build())
+ .build(), buffer);
+ assertArrayEquals(capaBytes2, buffer.array());
+ assertEquals(new CParametersBuilder()
+ .addAugmentation(new CParameters1Builder().setGracefulRestartCapability(capaBuilder.build()).build())
+ .build(), handler.parseCapability(Unpooled.wrappedBuffer(capaBytes2).slice(2, capaBytes2.length - 2)));
capaBuilder.setRestartFlags(null);
tablesBuilder.setAfiFlags(null);
- capaBuilder.setRestartTime(null);
- capaBuilder.setTables(Lists.newArrayList(tablesBuilder.build()));
+ capaBuilder.setRestartTime((Uint16) null);
+ capaBuilder.setTables(BindingMap.of(tablesBuilder.build()));
buffer.clear();
- handler.serializeCapability( new CParametersBuilder().addAugmentation(CParameters1.class,
- new CParameters1Builder().setGracefulRestartCapability(capaBuilder.build()).build()).build(), buffer);
- Assert.assertArrayEquals(capaBytes2, buffer.array());
+ handler.serializeCapability(new CParametersBuilder()
+ .addAugmentation(new CParameters1Builder().setGracefulRestartCapability(capaBuilder.build()).build())
+ .build(), buffer);
+ assertArrayEquals(capaBytes2, buffer.array());
final byte[] capaBytes3 = {
(byte) 0x40, (byte) 0x06, (byte) 0x00, (byte) 0x00,
(byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00
};
capaBuilder.setRestartFlags(new RestartFlags(false));
- capaBuilder.setRestartTime(0);
- capaBuilder.setTables(Collections.<Tables>emptyList());
- Assert.assertEquals( new CParametersBuilder().addAugmentation(CParameters1.class,
- new CParameters1Builder().setGracefulRestartCapability(capaBuilder.build()).build()).build(),
- handler.parseCapability(Unpooled.wrappedBuffer(capaBytes3).slice(2, capaBytes3.length - 2)));
+ capaBuilder.setRestartTime(Uint16.ZERO);
+ capaBuilder.setTables(Collections.emptyMap());
+ assertEquals(new CParametersBuilder()
+ .addAugmentation(new CParameters1Builder().setGracefulRestartCapability(capaBuilder.build()).build())
+ .build(), handler.parseCapability(Unpooled.wrappedBuffer(capaBytes3).slice(2, capaBytes3.length - 2)));
final byte[] capaBytes4 = {
(byte) 0x40, (byte) 0x06, (byte) 0x00, (byte) 0x00,
(byte) 0x00, (byte) 0x01, (byte) 0x00, (byte) 0x00
};
- Assert.assertEquals( new CParametersBuilder().addAugmentation(CParameters1.class,
- new CParameters1Builder().setGracefulRestartCapability(capaBuilder.build()).build()).build(),
- handler.parseCapability(Unpooled.wrappedBuffer(capaBytes4).slice(2, capaBytes4.length - 2)));
+ assertEquals(new CParametersBuilder()
+ .addAugmentation(new CParameters1Builder().setGracefulRestartCapability(capaBuilder.build()).build())
+ .build(), handler.parseCapability(Unpooled.wrappedBuffer(capaBytes4).slice(2, capaBytes4.length - 2)));
final byte[] capaBytes5 = {
(byte) 0x40, (byte) 0x02, (byte) 0x00, (byte) 0x00
};
final ByteBuf b = Unpooled.buffer(capaBytes5.length);
- handler.serializeCapability( new CParametersBuilder().addAugmentation(CParameters1.class,
- new CParameters1Builder().setGracefulRestartCapability(new GracefulRestartCapabilityBuilder().build()).build()).build(), b);
- Assert.assertArrayEquals(capaBytes5, b.array());
- Assert.assertEquals(new CParametersBuilder().addAugmentation(CParameters1.class, new CParameters1Builder()
- .setGracefulRestartCapability(new GracefulRestartCapabilityBuilder().setRestartFlags(new RestartFlags(Boolean.FALSE))
- .setRestartTime(0).setTables(Collections.<Tables>emptyList()).build()).build()).build(),
- handler.parseCapability(Unpooled.wrappedBuffer(capaBytes5).slice(2, capaBytes5.length - 2)));
+ handler.serializeCapability(new CParametersBuilder()
+ .addAugmentation(new CParameters1Builder()
+ .setGracefulRestartCapability(new GracefulRestartCapabilityBuilder().build())
+ .build())
+ .build(), b);
+ assertArrayEquals(capaBytes5, b.array());
+ assertEquals(new CParametersBuilder()
+ .addAugmentation(new CParameters1Builder()
+ .setGracefulRestartCapability(new GracefulRestartCapabilityBuilder()
+ .setRestartFlags(new RestartFlags(Boolean.FALSE))
+ .setRestartTime(Uint16.ZERO)
+ .build())
+ .build())
+ .build(), handler.parseCapability(Unpooled.wrappedBuffer(capaBytes5).slice(2, capaBytes5.length - 2)));
}
- @Test(expected=IllegalArgumentException.class)
+ @Test(expected = IllegalArgumentException.class)
public void testUnhandledAfi() {
final GracefulCapabilityHandler handler = new GracefulCapabilityHandler(this.ctx.getAddressFamilyRegistry(),
this.ctx.getSubsequentAddressFamilyRegistry());
final GracefulRestartCapabilityBuilder capaBuilder = new GracefulRestartCapabilityBuilder();
capaBuilder.setRestartFlags(new RestartFlags(true));
- capaBuilder.setRestartTime(50);
+ capaBuilder.setRestartTime(Uint16.valueOf(50));
final TablesBuilder tablesBuilder = new TablesBuilder();
tablesBuilder.setAfiFlags(new AfiFlags(true));
tablesBuilder.setAfi(AddressFamily.class);
tablesBuilder.setSafi(UnicastSubsequentAddressFamily.class);
- capaBuilder.setTables(Lists.newArrayList(tablesBuilder.build()));
+ capaBuilder.setTables(BindingMap.of(tablesBuilder.build()));
final ByteBuf buffer = Unpooled.buffer();
- handler.serializeCapability( new CParametersBuilder().addAugmentation(CParameters1.class,
- new CParameters1Builder().setGracefulRestartCapability(capaBuilder.build()).build()).build(), buffer);
+ handler.serializeCapability(new CParametersBuilder()
+ .addAugmentation(new CParameters1Builder().setGracefulRestartCapability(capaBuilder.build()).build())
+ .build(), buffer);
}
- @Test(expected=IllegalArgumentException.class)
+ @Test(expected = IllegalArgumentException.class)
public void testUnhandledSafi() {
final GracefulCapabilityHandler handler = new GracefulCapabilityHandler(this.ctx.getAddressFamilyRegistry(),
this.ctx.getSubsequentAddressFamilyRegistry());
final GracefulRestartCapabilityBuilder capaBuilder = new GracefulRestartCapabilityBuilder();
capaBuilder.setRestartFlags(new RestartFlags(true));
- capaBuilder.setRestartTime(50);
+ capaBuilder.setRestartTime(Uint16.valueOf(50));
final TablesBuilder tablesBuilder = new TablesBuilder();
tablesBuilder.setAfiFlags(new AfiFlags(true));
tablesBuilder.setAfi(Ipv4AddressFamily.class);
tablesBuilder.setSafi(SubsequentAddressFamily.class);
- capaBuilder.setTables(Lists.newArrayList(tablesBuilder.build()));
+ capaBuilder.setTables(BindingMap.of(tablesBuilder.build()));
final ByteBuf buffer = Unpooled.buffer();
- handler.serializeCapability( new CParametersBuilder().addAugmentation(CParameters1.class,
- new CParameters1Builder().setGracefulRestartCapability(capaBuilder.build()).build()).build(), buffer);
+ handler.serializeCapability(new CParametersBuilder()
+ .addAugmentation(new CParameters1Builder().setGracefulRestartCapability(capaBuilder.build()).build())
+ .build(), buffer);
}
- @Test(expected=IllegalArgumentException.class)
+ @Test(expected = IllegalArgumentException.class)
public void testRestartTimeMinValue() {
final GracefulCapabilityHandler handler = new GracefulCapabilityHandler(this.ctx.getAddressFamilyRegistry(),
this.ctx.getSubsequentAddressFamilyRegistry());
- final GracefulRestartCapabilityBuilder capaBuilder = new GracefulRestartCapabilityBuilder();
- capaBuilder.setRestartFlags(new RestartFlags(true));
- capaBuilder.setRestartTime(-1);
- final TablesBuilder tablesBuilder = new TablesBuilder();
- tablesBuilder.setAfiFlags(new AfiFlags(true));
- tablesBuilder.setAfi(Ipv4AddressFamily.class);
- tablesBuilder.setSafi(UnicastSubsequentAddressFamily.class);
- capaBuilder.setTables(Lists.newArrayList(tablesBuilder.build()));
+ final GracefulRestartCapabilityBuilder capaBuilder = new GracefulRestartCapabilityBuilder()
+ .setRestartFlags(new RestartFlags(true))
+ // FIXME: this is throwing IAE, why is the rest of the test even here?
+ .setRestartTime(Uint16.MAX_VALUE)
+ .setTables(BindingMap.of(new TablesBuilder()
+ .setAfiFlags(new AfiFlags(true))
+ .setAfi(Ipv4AddressFamily.class)
+ .setSafi(UnicastSubsequentAddressFamily.class)
+ .build()));
final ByteBuf buffer = Unpooled.buffer();
- handler.serializeCapability( new CParametersBuilder().addAugmentation(CParameters1.class,
- new CParameters1Builder().setGracefulRestartCapability(capaBuilder.build()).build()).build(), buffer);
+ handler.serializeCapability(new CParametersBuilder()
+ .addAugmentation(new CParameters1Builder().setGracefulRestartCapability(capaBuilder.build()).build())
+ .build(), buffer);
}
- @Test(expected=IllegalArgumentException.class)
+ @Test(expected = IllegalArgumentException.class)
public void testRestartTimeMaxValue() {
final GracefulCapabilityHandler handler = new GracefulCapabilityHandler(this.ctx.getAddressFamilyRegistry(),
this.ctx.getSubsequentAddressFamilyRegistry());
- final GracefulRestartCapabilityBuilder capaBuilder = new GracefulRestartCapabilityBuilder();
- capaBuilder.setRestartFlags(new RestartFlags(true));
- capaBuilder.setRestartTime(50 * 1000);
- final TablesBuilder tablesBuilder = new TablesBuilder();
- tablesBuilder.setAfiFlags(new AfiFlags(true));
- tablesBuilder.setAfi(Ipv4AddressFamily.class);
- tablesBuilder.setSafi(UnicastSubsequentAddressFamily.class);
- capaBuilder.setTables(Lists.newArrayList(tablesBuilder.build()));
+ final GracefulRestartCapabilityBuilder capaBuilder = new GracefulRestartCapabilityBuilder()
+ .setRestartFlags(new RestartFlags(true))
+ .setRestartTime(Uint16.valueOf(50000));
+
+ capaBuilder.setTables(BindingMap.of(new TablesBuilder()
+ .setAfiFlags(new AfiFlags(true))
+ .setAfi(Ipv4AddressFamily.class)
+ .setSafi(UnicastSubsequentAddressFamily.class)
+ .build()));
final ByteBuf buffer = Unpooled.buffer();
- handler.serializeCapability( new CParametersBuilder().addAugmentation(CParameters1.class,
- new CParameters1Builder().setGracefulRestartCapability(capaBuilder.build()).build()).build(), buffer);
+ handler.serializeCapability(new CParametersBuilder()
+ .addAugmentation(new CParameters1Builder().setGracefulRestartCapability(capaBuilder.build()).build())
+ .build(), buffer);
}
-
}