2 * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
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
9 package org.opendaylight.protocol.bmp.impl.session;
11 import static org.junit.Assert.assertEquals;
12 import static org.junit.Assert.assertFalse;
13 import static org.junit.Assert.assertTrue;
14 import static org.mockito.Mockito.doReturn;
16 import io.netty.channel.ChannelHandlerContext;
17 import io.netty.channel.embedded.EmbeddedChannel;
18 import org.junit.Before;
19 import org.junit.Test;
20 import org.mockito.Mock;
21 import org.mockito.MockitoAnnotations;
22 import org.opendaylight.protocol.bmp.api.BmpSession;
23 import org.opendaylight.protocol.bmp.parser.message.TestUtil;
24 import org.opendaylight.protocol.bmp.spi.parser.BmpDeserializationException;
25 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bmp.message.rev180329.InitiationMessage;
27 public class BmpSessionImplTest {
29 private BmpSession session;
30 private EmbeddedChannel channel;
31 private BmpTestSessionListener listener;
33 private ChannelHandlerContext mockedHandlerContext;
35 private static InitiationMessage createInitMsg() {
36 return TestUtil.createInitMsg("", "", "");
41 MockitoAnnotations.initMocks(this);
42 doReturn(null).when(this.mockedHandlerContext).channel();
43 doReturn(null).when(this.mockedHandlerContext).fireChannelInactive();
44 this.listener = new BmpTestSessionListener();
45 this.session = new BmpSessionImpl(this.listener);
46 this.channel = new EmbeddedChannel(this.session);
47 assertTrue(this.listener.isUp());
51 public void testOnInitiate() {
52 this.channel.writeInbound(createInitMsg());
53 assertEquals(this.listener.getListMsg().size(), 1);
54 this.channel.writeInbound(createInitMsg());
55 assertEquals(this.listener.getListMsg().size(), 2);
59 public void testOnTerminationAfterInitiated() {
60 this.channel.writeInbound(createInitMsg());
61 assertEquals(this.listener.getListMsg().size(), 1);
62 this.channel.writeInbound(TestUtil.createTerminationMsg());
63 assertEquals(this.listener.getListMsg().size(), 1);
64 assertFalse(this.listener.isUp());
68 public void testOnTermination() {
69 this.channel.writeInbound(TestUtil.createTerminationMsg());
70 assertEquals(this.listener.getListMsg().size(), 0);
71 assertFalse(this.listener.isUp());
75 public void testOnUnexpectedMessage() {
76 this.channel.writeInbound(TestUtil.createPeerDownFSM());
77 assertEquals(this.listener.getListMsg().size(), 0);
78 assertFalse(this.listener.isUp());
82 public void testExceptionCaught() throws Exception {
83 this.session.exceptionCaught(this.mockedHandlerContext, new BmpDeserializationException(""));
84 assertEquals(this.listener.getListMsg().size(), 0);
85 assertFalse(this.listener.isUp());