BUG: 4831
[bgpcep.git] / bgp / parser-impl / src / test / java / org / opendaylight / protocol / bgp / parser / impl / BgpExtendedMessageCapabilityHandlerTest.java
1 /*
2  * Copyright (c) 2016 AT&T Services, Inc. and others.  All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8
9 package org.opendaylight.protocol.bgp.parser.impl;
10
11 import io.netty.buffer.ByteBuf;
12 import io.netty.buffer.Unpooled;
13 import org.junit.Assert;
14 import org.junit.Before;
15 import org.junit.Test;
16 import org.opendaylight.protocol.bgp.parser.BGPDocumentedException;
17 import org.opendaylight.protocol.bgp.parser.BGPParsingException;
18 import org.opendaylight.protocol.bgp.parser.impl.message.open.BgpExtendedMessageCapabilityHandler;
19 import org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderContext;
20 import org.opendaylight.protocol.bgp.parser.spi.pojo.ServiceLoaderBGPExtensionProviderContext;
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.open.message.bgp.parameters.optional.capabilities.CParametersBuilder;
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.open.message.bgp.parameters.optional.capabilities.c.parameters.BgpExtendedMessageCapabilityBuilder;
23
24 public class BgpExtendedMessageCapabilityHandlerTest {
25
26     private BGPExtensionProviderContext ctx;
27
28     @Before
29     public void setUp() {
30         this.ctx = ServiceLoaderBGPExtensionProviderContext.getSingletonInstance();
31     }
32
33     @Test
34     public void testBgpExtendedMessageCapabilityHandler() throws BGPDocumentedException, BGPParsingException {
35         final BgpExtendedMessageCapabilityHandler handler = new BgpExtendedMessageCapabilityHandler();
36
37         final byte[] bgpExeBytes = {(byte) 0x06, (byte) 0x00};
38         final BgpExtendedMessageCapabilityBuilder bgpExtBuilder = new BgpExtendedMessageCapabilityBuilder();
39
40         final ByteBuf buffer = Unpooled.buffer(bgpExeBytes.length);
41         handler.serializeCapability( new CParametersBuilder().setBgpExtendedMessageCapability(bgpExtBuilder.build()).build(), buffer);
42         Assert.assertArrayEquals(bgpExeBytes, buffer.array());
43         Assert.assertEquals(handler.parseCapability(Unpooled.wrappedBuffer(bgpExeBytes)), new CParametersBuilder().setBgpExtendedMessageCapability(bgpExtBuilder.build()).build());
44
45         final byte[] bgpExeBytes2 = {(byte) 0x40, (byte) 0x06};
46         buffer.clear();
47         handler.serializeCapability(new CParametersBuilder().setBgpExtendedMessageCapability(bgpExtBuilder.build()).build(), buffer);
48         Assert.assertNotSame(bgpExeBytes2, buffer.array());
49     }
50
51 }