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;
32 public class CallHomeMountSessionContextTest {
33 private Inet4Address someAddressIpv4;
34 private InetSocketAddress someSocketAddress;
35 private CallHomeChannelActivator mockActivator;
36 private CallHomeMountSessionContext.CloseCallback mockCallback;
37 private CallHomeMountSessionContext instance;
38 private CallHomeProtocolSessionContext mockProtocol;
42 someAddressIpv4 = (Inet4Address) InetAddresses.forString("1.2.3.4");
43 someSocketAddress = new InetSocketAddress(someAddressIpv4, 123);
45 mockProtocol = mock(CallHomeProtocolSessionContext.class);
46 mockActivator = mock(CallHomeChannelActivator.class);
47 mockCallback = mock(CallHomeMountSessionContext.CloseCallback.class);
48 doReturn(someSocketAddress).when(mockProtocol).getRemoteAddress();
50 instance = new CallHomeMountSessionContext("test",mockProtocol, mockActivator, mockCallback);
54 public void configNodeCanBeCreated() {
55 assertNotNull(instance.getConfigNode());
59 public void activationOfListenerSupportsSessionUp() {
61 when(mockActivator.activate(any(NetconfClientSessionListener.class)))
62 .thenAnswer(invocationOnMock -> {
63 NetconfClientSession mockSession = mock(NetconfClientSession.class);
65 Object arg = invocationOnMock.getArguments()[0];
66 ((NetconfClientSessionListener) arg).onSessionUp(mockSession);
70 NetconfClientSessionListener mockListener = mock(NetconfClientSessionListener.class);
72 mockActivator.activate(mockListener);
74 verify(mockListener, times(1)).onSessionUp(any(NetconfClientSession.class));
78 public void activationOfListenerSupportsSessionTermination() {
80 when(mockActivator.activate(any(NetconfClientSessionListener.class)))
81 .thenAnswer(invocationOnMock -> {
82 NetconfClientSession mockSession = mock(NetconfClientSession.class);
83 NetconfTerminationReason mockReason = mock(NetconfTerminationReason.class);
85 Object arg = invocationOnMock.getArguments()[0];
86 ((NetconfClientSessionListener) arg).onSessionTerminated(mockSession, mockReason);
90 NetconfClientSessionListener mockListener = mock(NetconfClientSessionListener.class);
92 mockActivator.activate(mockListener);
94 verify(mockListener, times(1)).onSessionTerminated(any(NetconfClientSession.class),
95 any(NetconfTerminationReason.class));
99 public void activationOfListenerSupportsSessionDown() {
101 when(mockActivator.activate(any(NetconfClientSessionListener.class)))
102 .thenAnswer(invocationOnMock -> {
103 NetconfClientSession mockSession = mock(NetconfClientSession.class);
104 Exception mockException = mock(Exception.class);
106 Object arg = invocationOnMock.getArguments()[0];
107 ((NetconfClientSessionListener) arg).onSessionDown(mockSession, mockException);
111 NetconfClientSessionListener mockListener = mock(NetconfClientSessionListener.class);
113 mockActivator.activate(mockListener);
115 verify(mockListener, times(1)).onSessionDown(any(NetconfClientSession.class),
116 any(Exception.class));
120 public void activationOfListenerSupportsSessionMessages() {
122 when(mockActivator.activate(any(NetconfClientSessionListener.class)))
123 .thenAnswer(invocationOnMock -> {
124 NetconfClientSession mockSession = mock(NetconfClientSession.class);
125 NetconfMessage mockMsg = mock(NetconfMessage.class);
127 Object arg = invocationOnMock.getArguments()[0];
128 ((NetconfClientSessionListener) arg).onMessage(mockSession, mockMsg);
132 NetconfClientSessionListener mockListener = mock(NetconfClientSessionListener.class);
134 mockActivator.activate(mockListener);
136 verify(mockListener, times(1)).onMessage(any(NetconfClientSession.class),
137 any(NetconfMessage.class));