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 java.net.Inet4Address;
20 import java.net.InetAddress;
21 import java.net.InetSocketAddress;
22 import java.net.UnknownHostException;
23 import org.junit.Before;
24 import org.junit.Test;
25 import org.opendaylight.netconf.api.NetconfMessage;
26 import org.opendaylight.netconf.api.NetconfTerminationReason;
27 import org.opendaylight.netconf.callhome.protocol.CallHomeChannelActivator;
28 import org.opendaylight.netconf.callhome.protocol.CallHomeProtocolSessionContext;
29 import org.opendaylight.netconf.client.NetconfClientSession;
30 import org.opendaylight.netconf.client.NetconfClientSessionListener;
33 public class CallHomeMountSessionContextTest {
34 private Inet4Address someAddressIpv4;
35 private InetSocketAddress someSocketAddress;
36 private CallHomeChannelActivator mockActivator;
37 private CallHomeMountSessionContext.CloseCallback mockCallback;
38 private CallHomeMountSessionContext instance;
39 private CallHomeProtocolSessionContext mockProtocol;
42 public void setup() throws UnknownHostException {
43 someAddressIpv4 = (Inet4Address) InetAddress.getByName("1.2.3.4");
44 someSocketAddress = new InetSocketAddress(someAddressIpv4, 123);
46 mockProtocol = mock(CallHomeProtocolSessionContext.class);
47 mockActivator = mock(CallHomeChannelActivator.class);
48 mockCallback = mock(CallHomeMountSessionContext.CloseCallback.class);
49 doReturn(someSocketAddress).when(mockProtocol).getRemoteAddress();
51 instance = new CallHomeMountSessionContext("test",mockProtocol, mockActivator, mockCallback);
55 public void configNodeCanBeCreated() {
56 assertNotNull(instance.getConfigNode());
60 public void activationOfListenerSupportsSessionUp() {
62 when(mockActivator.activate(any(NetconfClientSessionListener.class)))
63 .thenAnswer(invocationOnMock -> {
64 NetconfClientSession mockSession = mock(NetconfClientSession.class);
66 Object arg = invocationOnMock.getArguments()[0];
67 ((NetconfClientSessionListener) arg).onSessionUp(mockSession);
71 NetconfClientSessionListener mockListener = mock(NetconfClientSessionListener.class);
73 mockActivator.activate(mockListener);
75 verify(mockListener, times(1)).onSessionUp(any(NetconfClientSession.class));
79 public void activationOfListenerSupportsSessionTermination() {
81 when(mockActivator.activate(any(NetconfClientSessionListener.class)))
82 .thenAnswer(invocationOnMock -> {
83 NetconfClientSession mockSession = mock(NetconfClientSession.class);
84 NetconfTerminationReason mockReason = mock(NetconfTerminationReason.class);
86 Object arg = invocationOnMock.getArguments()[0];
87 ((NetconfClientSessionListener) arg).onSessionTerminated(mockSession, mockReason);
91 NetconfClientSessionListener mockListener = mock(NetconfClientSessionListener.class);
93 mockActivator.activate(mockListener);
95 verify(mockListener, times(1)).onSessionTerminated(any(NetconfClientSession.class),
96 any(NetconfTerminationReason.class));
100 public void activationOfListenerSupportsSessionDown() {
102 when(mockActivator.activate(any(NetconfClientSessionListener.class)))
103 .thenAnswer(invocationOnMock -> {
104 NetconfClientSession mockSession = mock(NetconfClientSession.class);
105 Exception mockException = mock(Exception.class);
107 Object arg = invocationOnMock.getArguments()[0];
108 ((NetconfClientSessionListener) arg).onSessionDown(mockSession, mockException);
112 NetconfClientSessionListener mockListener = mock(NetconfClientSessionListener.class);
114 mockActivator.activate(mockListener);
116 verify(mockListener, times(1)).onSessionDown(any(NetconfClientSession.class),
117 any(Exception.class));
121 public void activationOfListenerSupportsSessionMessages() {
123 when(mockActivator.activate(any(NetconfClientSessionListener.class)))
124 .thenAnswer(invocationOnMock -> {
125 NetconfClientSession mockSession = mock(NetconfClientSession.class);
126 NetconfMessage mockMsg = mock(NetconfMessage.class);
128 Object arg = invocationOnMock.getArguments()[0];
129 ((NetconfClientSessionListener) arg).onMessage(mockSession, mockMsg);
133 NetconfClientSessionListener mockListener = mock(NetconfClientSessionListener.class);
135 mockActivator.activate(mockListener);
137 verify(mockListener, times(1)).onMessage(any(NetconfClientSession.class),
138 any(NetconfMessage.class));