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 io.netty.util.concurrent.Promise;
20 import java.net.Inet4Address;
21 import java.net.InetAddress;
22 import java.net.InetSocketAddress;
23 import java.net.UnknownHostException;
24 import org.junit.Before;
25 import org.junit.Test;
26 import org.mockito.invocation.InvocationOnMock;
27 import org.mockito.stubbing.Answer;
28 import org.opendaylight.netconf.api.NetconfMessage;
29 import org.opendaylight.netconf.api.NetconfTerminationReason;
30 import org.opendaylight.netconf.callhome.protocol.CallHomeChannelActivator;
31 import org.opendaylight.netconf.callhome.protocol.CallHomeProtocolSessionContext;
32 import org.opendaylight.netconf.client.NetconfClientSession;
33 import org.opendaylight.netconf.client.NetconfClientSessionListener;
36 public class CallHomeMountSessionContextTest {
37 private Inet4Address someAddressIpv4;
38 private InetSocketAddress someSocketAddress;
39 private CallHomeChannelActivator mockActivator;
40 private CallHomeMountSessionContext.CloseCallback mockCallback;
41 private CallHomeMountSessionContext instance;
42 private CallHomeProtocolSessionContext mockProtocol;
45 public void setup() throws UnknownHostException {
46 someAddressIpv4 = (Inet4Address) InetAddress.getByName("1.2.3.4");
47 someSocketAddress = new InetSocketAddress(someAddressIpv4, 123);
49 mockProtocol = mock(CallHomeProtocolSessionContext.class);
50 mockActivator = mock(CallHomeChannelActivator.class);
51 mockCallback = mock(CallHomeMountSessionContext.CloseCallback.class);
52 doReturn(someSocketAddress).when(mockProtocol).getRemoteAddress();
54 instance = new CallHomeMountSessionContext("test",mockProtocol, mockActivator, mockCallback);
58 public void configNodeCanBeCreated() {
59 assertNotNull(instance.getConfigNode());
63 public void activationOfListenerSupportsSessionUp() {
65 when(mockActivator.activate(any(NetconfClientSessionListener.class)))
66 .thenAnswer(invocationOnMock -> {
67 NetconfClientSession mockSession = mock(NetconfClientSession.class);
69 Object arg = invocationOnMock.getArguments()[0];
70 ((NetconfClientSessionListener) arg).onSessionUp(mockSession);
74 NetconfClientSessionListener mockListener = mock(NetconfClientSessionListener.class);
76 mockActivator.activate(mockListener);
78 verify(mockListener, times(1)).onSessionUp(any(NetconfClientSession.class));
82 public void activationOfListenerSupportsSessionTermination() {
84 when(mockActivator.activate(any(NetconfClientSessionListener.class)))
85 .thenAnswer(invocationOnMock -> {
86 NetconfClientSession mockSession = mock(NetconfClientSession.class);
87 NetconfTerminationReason mockReason = mock(NetconfTerminationReason.class);
89 Object arg = invocationOnMock.getArguments()[0];
90 ((NetconfClientSessionListener) arg).onSessionTerminated(mockSession, mockReason);
94 NetconfClientSessionListener mockListener = mock(NetconfClientSessionListener.class);
96 mockActivator.activate(mockListener);
98 verify(mockListener, times(1)).onSessionTerminated(any(NetconfClientSession.class),
99 any(NetconfTerminationReason.class));
103 public void activationOfListenerSupportsSessionDown() {
105 when(mockActivator.activate(any(NetconfClientSessionListener.class)))
106 .thenAnswer(invocationOnMock -> {
107 NetconfClientSession mockSession = mock(NetconfClientSession.class);
108 Exception mockException = mock(Exception.class);
110 Object arg = invocationOnMock.getArguments()[0];
111 ((NetconfClientSessionListener) arg).onSessionDown(mockSession, mockException);
115 NetconfClientSessionListener mockListener = mock(NetconfClientSessionListener.class);
117 mockActivator.activate(mockListener);
119 verify(mockListener, times(1)).onSessionDown(any(NetconfClientSession.class), any(Exception.class));
123 public void activationOfListenerSupportsSessionMessages() {
125 when(mockActivator.activate(any(NetconfClientSessionListener.class)))
126 .thenAnswer(invocationOnMock -> {
127 NetconfClientSession mockSession = mock(NetconfClientSession.class);
128 NetconfMessage mockMsg = mock(NetconfMessage.class);
130 Object arg = invocationOnMock.getArguments()[0];
131 ((NetconfClientSessionListener) arg).onMessage(mockSession, mockMsg);
135 NetconfClientSessionListener mockListener = mock(NetconfClientSessionListener.class);
137 mockActivator.activate(mockListener);
139 verify(mockListener, times(1)).onMessage(any(NetconfClientSession.class), any(NetconfMessage.class));