2 * Copyright (c) 2016 Brocade Communication Systems 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.netconf.callhome.mount;
11 import static org.junit.Assert.assertNotNull;
12 import static org.mockito.Matchers.any;
13 import static org.mockito.Mockito.doReturn;
14 import static org.mockito.Mockito.mock;
15 import static org.mockito.Mockito.times;
16 import static org.mockito.Mockito.verify;
17 import static org.mockito.Mockito.when;
19 import com.google.common.net.InetAddresses;
20 import java.net.Inet4Address;
21 import java.net.InetSocketAddress;
22 import org.junit.Before;
23 import org.junit.Test;
24 import org.opendaylight.netconf.api.NetconfMessage;
25 import org.opendaylight.netconf.api.NetconfTerminationReason;
26 import org.opendaylight.netconf.callhome.protocol.CallHomeChannelActivator;
27 import org.opendaylight.netconf.callhome.protocol.CallHomeProtocolSessionContext;
28 import org.opendaylight.netconf.client.NetconfClientSession;
29 import org.opendaylight.netconf.client.NetconfClientSessionListener;
31 public class CallHomeMountSessionContextTest {
32 private Inet4Address someAddressIpv4;
33 private InetSocketAddress someSocketAddress;
34 private CallHomeChannelActivator mockActivator;
35 private CallHomeMountSessionContext.CloseCallback mockCallback;
36 private CallHomeMountSessionContext instance;
37 private CallHomeProtocolSessionContext mockProtocol;
41 someAddressIpv4 = (Inet4Address) InetAddresses.forString("1.2.3.4");
42 someSocketAddress = new InetSocketAddress(someAddressIpv4, 123);
44 mockProtocol = mock(CallHomeProtocolSessionContext.class);
45 mockActivator = mock(CallHomeChannelActivator.class);
46 mockCallback = mock(CallHomeMountSessionContext.CloseCallback.class);
47 doReturn(someSocketAddress).when(mockProtocol).getRemoteAddress();
49 instance = new CallHomeMountSessionContext("test",mockProtocol, mockActivator, mockCallback);
53 public void configNodeCanBeCreated() {
54 assertNotNull(instance.getConfigNode());
58 public void activationOfListenerSupportsSessionUp() {
60 when(mockActivator.activate(any(NetconfClientSessionListener.class)))
61 .thenAnswer(invocationOnMock -> {
62 NetconfClientSession mockSession = mock(NetconfClientSession.class);
64 Object arg = invocationOnMock.getArguments()[0];
65 ((NetconfClientSessionListener) arg).onSessionUp(mockSession);
69 NetconfClientSessionListener mockListener = mock(NetconfClientSessionListener.class);
71 mockActivator.activate(mockListener);
73 verify(mockListener, times(1)).onSessionUp(any(NetconfClientSession.class));
77 public void activationOfListenerSupportsSessionTermination() {
79 when(mockActivator.activate(any(NetconfClientSessionListener.class)))
80 .thenAnswer(invocationOnMock -> {
81 NetconfClientSession mockSession = mock(NetconfClientSession.class);
82 NetconfTerminationReason mockReason = mock(NetconfTerminationReason.class);
84 Object arg = invocationOnMock.getArguments()[0];
85 ((NetconfClientSessionListener) arg).onSessionTerminated(mockSession, mockReason);
89 NetconfClientSessionListener mockListener = mock(NetconfClientSessionListener.class);
91 mockActivator.activate(mockListener);
93 verify(mockListener, times(1)).onSessionTerminated(any(NetconfClientSession.class),
94 any(NetconfTerminationReason.class));
98 public void activationOfListenerSupportsSessionDown() {
100 when(mockActivator.activate(any(NetconfClientSessionListener.class)))
101 .thenAnswer(invocationOnMock -> {
102 NetconfClientSession mockSession = mock(NetconfClientSession.class);
103 Exception mockException = mock(Exception.class);
105 Object arg = invocationOnMock.getArguments()[0];
106 ((NetconfClientSessionListener) arg).onSessionDown(mockSession, mockException);
110 NetconfClientSessionListener mockListener = mock(NetconfClientSessionListener.class);
112 mockActivator.activate(mockListener);
114 verify(mockListener, times(1)).onSessionDown(any(NetconfClientSession.class),
115 any(Exception.class));
119 public void activationOfListenerSupportsSessionMessages() {
121 when(mockActivator.activate(any(NetconfClientSessionListener.class)))
122 .thenAnswer(invocationOnMock -> {
123 NetconfClientSession mockSession = mock(NetconfClientSession.class);
124 NetconfMessage mockMsg = mock(NetconfMessage.class);
126 Object arg = invocationOnMock.getArguments()[0];
127 ((NetconfClientSessionListener) arg).onMessage(mockSession, mockMsg);
131 NetconfClientSessionListener mockListener = mock(NetconfClientSessionListener.class);
133 mockActivator.activate(mockListener);
135 verify(mockListener, times(1)).onMessage(any(NetconfClientSession.class),
136 any(NetconfMessage.class));