* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
-
package org.opendaylight.netconf.client;
import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
-import com.google.common.base.Optional;
import com.google.common.collect.ImmutableSet;
import io.netty.channel.Channel;
import io.netty.channel.ChannelHandler;
import io.netty.util.concurrent.GenericFutureListener;
import io.netty.util.concurrent.Promise;
import java.io.InputStream;
+import java.util.Optional;
import java.util.Set;
import org.junit.Before;
import org.junit.Test;
-import org.mockito.internal.util.collections.Sets;
-import org.opendaylight.netconf.api.NetconfClientSessionPreferences;
-import org.opendaylight.netconf.api.NetconfDocumentedException;
import org.opendaylight.netconf.api.NetconfMessage;
import org.opendaylight.netconf.api.messages.NetconfHelloMessage;
import org.opendaylight.netconf.api.xml.XmlUtil;
import org.w3c.dom.Document;
public class NetconfClientSessionNegotiatorTest {
-
private NetconfHelloMessage helloMessage;
private ChannelPipeline pipeline;
private ChannelPromise future;
private ChannelInboundHandlerAdapter channelInboundHandlerAdapter;
@Before
- public void setUp() throws Exception {
- helloMessage = NetconfHelloMessage.createClientHello(Sets.newSet("exi:1.0"), Optional.absent());
+ public void setUp() {
+ helloMessage = NetconfHelloMessage.createClientHello(Set.of("exi:1.0"), Optional.empty());
pipeline = mockChannelPipeline();
future = mockChannelFuture();
channel = mockChannel();
private NetconfClientSessionNegotiator createNetconfClientSessionNegotiator(
final Promise<NetconfClientSession> promise,
- final NetconfMessage startExi) {
+ final NetconfStartExiMessage startExi) {
ChannelProgressivePromise progressivePromise = mock(ChannelProgressivePromise.class);
- NetconfClientSessionPreferences preferences = new NetconfClientSessionPreferences(helloMessage, startExi);
doReturn(progressivePromise).when(promise).setFailure(any(Throwable.class));
long timeout = 10L;
NetconfClientSessionListener sessionListener = mock(NetconfClientSessionListener.class);
Timer timer = new HashedWheelTimer();
- return new NetconfClientSessionNegotiator(preferences, promise, channel, timer, sessionListener, timeout);
+ return new NetconfClientSessionNegotiator(helloMessage, startExi, promise, channel, timer, sessionListener,
+ timeout, 16384);
}
private static NetconfHelloMessage createHelloMsg(final String name) throws Exception {
}
@Test
- public void testNetconfClientSessionNegotiator() throws NetconfDocumentedException {
+ public void testNetconfClientSessionNegotiator() throws Exception {
Promise<NetconfClientSession> promise = mock(Promise.class);
doReturn(promise).when(promise).setSuccess(any());
NetconfClientSessionNegotiator negotiator = createNetconfClientSessionNegotiator(promise, null);
negotiator.channelActive(null);
- Set<String> caps = Sets.newSet("a", "b");
- NetconfHelloMessage helloServerMessage = NetconfHelloMessage.createServerHello(caps, 10);
- negotiator.handleMessage(helloServerMessage);
+ doReturn(null).when(future).cause();
+ negotiator.handleMessage(NetconfHelloMessage.createServerHello(Set.of("a", "b"), 10));
verify(promise).setSuccess(any());
}
@Test
public void testNegotiatorWhenChannelActiveHappenAfterHandleMessage() throws Exception {
- Promise promise = mock(Promise.class);
+ Promise<NetconfClientSession> promise = mock(Promise.class);
doReturn(false).when(promise).isDone();
doReturn(promise).when(promise).setSuccess(any());
NetconfClientSessionNegotiator negotiator = createNetconfClientSessionNegotiator(promise, null);
- Set<String> caps = Sets.newSet("a", "b");
- NetconfHelloMessage helloServerMessage = NetconfHelloMessage.createServerHello(caps, 10);
- negotiator.handleMessage(helloServerMessage);
+ doReturn(null).when(future).cause();
+ negotiator.handleMessage(NetconfHelloMessage.createServerHello(Set.of("a", "b"), 10));
negotiator.channelActive(null);
-
verify(promise).setSuccess(any());
}
-
@Test
public void testNetconfClientSessionNegotiatorWithEXI() throws Exception {
Promise<NetconfClientSession> promise = mock(Promise.class);
doReturn(promise).when(promise).setSuccess(any());
NetconfClientSessionNegotiator negotiator = createNetconfClientSessionNegotiator(promise, exiMessage);
+ doReturn(null).when(future).cause();
negotiator.channelActive(null);
- Set<String> caps = Sets.newSet("exi:1.0");
- NetconfHelloMessage message = NetconfHelloMessage.createServerHello(caps, 10);
doAnswer(invocationOnMock -> {
channelInboundHandlerAdapter = invocationOnMock.getArgument(2);
ChannelHandlerContext handlerContext = mock(ChannelHandlerContext.class);
doReturn(pipeline).when(handlerContext).pipeline();
- negotiator.handleMessage(message);
+ negotiator.handleMessage(NetconfHelloMessage.createServerHello(Set.of("exi:1.0"), 10));
Document expectedResult = XmlFileLoader.xmlFileToDocument("netconfMessages/rpc-reply_ok.xml");
channelInboundHandlerAdapter.channelRead(handlerContext, new NetconfMessage(expectedResult));
@Test
public void testNetconfClientSessionNegotiatorGetCached() throws Exception {
- Promise promise = mock(Promise.class);
+ Promise<NetconfClientSession> promise = mock(Promise.class);
doReturn(promise).when(promise).setSuccess(any());
NetconfClientSessionListener sessionListener = mock(NetconfClientSessionListener.class);
NetconfClientSessionNegotiator negotiator = createNetconfClientSessionNegotiator(promise, null);