2 * Copyright (c) 2014 Cisco Systems, Inc. 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.client;
11 import java.net.InetSocketAddress;
12 import java.util.Optional;
13 import org.junit.Assert;
14 import org.junit.Test;
15 import org.mockito.Mockito;
16 import org.opendaylight.netconf.api.messages.NetconfHelloMessageAdditionalHeader;
17 import org.opendaylight.netconf.client.conf.NetconfClientConfiguration;
18 import org.opendaylight.netconf.client.conf.NetconfReconnectingClientConfiguration;
19 import org.opendaylight.netconf.client.conf.NetconfReconnectingClientConfigurationBuilder;
20 import org.opendaylight.netconf.nettyutil.ReconnectStrategy;
21 import org.opendaylight.netconf.nettyutil.ReconnectStrategyFactory;
22 import org.opendaylight.netconf.nettyutil.handler.ssh.authentication.AuthenticationHandler;
24 public class NetconfReconnectingClientConfigurationTest {
26 public void testNetconfReconnectingClientConfiguration() throws Exception {
28 NetconfHelloMessageAdditionalHeader header =
29 new NetconfHelloMessageAdditionalHeader("a", "host", "port", "trans", "id");
30 NetconfClientSessionListener listener = new SimpleNetconfClientSessionListener();
31 InetSocketAddress address = InetSocketAddress.createUnresolved("host", 830);
32 ReconnectStrategyFactory strategy = Mockito.mock(ReconnectStrategyFactory.class);
33 AuthenticationHandler handler = Mockito.mock(AuthenticationHandler.class);
34 ReconnectStrategy reconnect = Mockito.mock(ReconnectStrategy.class);
36 NetconfReconnectingClientConfiguration cfg = NetconfReconnectingClientConfigurationBuilder.create()
37 .withProtocol(NetconfClientConfiguration.NetconfClientProtocol.SSH)
39 .withConnectionTimeoutMillis(timeout)
40 .withReconnectStrategy(reconnect)
41 .withAdditionalHeader(header)
42 .withSessionListener(listener)
43 .withConnectStrategyFactory(strategy)
44 .withAuthHandler(handler).build();
46 Assert.assertEquals(timeout, cfg.getConnectionTimeoutMillis());
47 Assert.assertEquals(Optional.of(header), cfg.getAdditionalHeader());
48 Assert.assertEquals(listener, cfg.getSessionListener());
49 Assert.assertEquals(handler, cfg.getAuthHandler());
50 Assert.assertEquals(strategy, cfg.getConnectStrategyFactory());
51 Assert.assertEquals(NetconfClientConfiguration.NetconfClientProtocol.SSH, cfg.getProtocol());
52 Assert.assertEquals(address, cfg.getAddress());
53 Assert.assertEquals(reconnect, cfg.getReconnectStrategy());
55 SslHandlerFactory sslHandlerFactory = Mockito.mock(SslHandlerFactory.class);
56 NetconfReconnectingClientConfiguration cfg2 = NetconfReconnectingClientConfigurationBuilder.create()
57 .withProtocol(NetconfClientConfiguration.NetconfClientProtocol.TLS)
59 .withConnectionTimeoutMillis(timeout)
60 .withReconnectStrategy(reconnect)
61 .withAdditionalHeader(header)
62 .withSessionListener(listener)
63 .withConnectStrategyFactory(strategy)
64 .withSslHandlerFactory(sslHandlerFactory).build();
66 Assert.assertEquals(timeout, cfg2.getConnectionTimeoutMillis());
67 Assert.assertEquals(Optional.of(header), cfg2.getAdditionalHeader());
68 Assert.assertEquals(listener, cfg2.getSessionListener());
69 Assert.assertEquals(sslHandlerFactory, cfg2.getSslHandlerFactory());
70 Assert.assertEquals(strategy, cfg2.getConnectStrategyFactory());
71 Assert.assertEquals(NetconfClientConfiguration.NetconfClientProtocol.TLS, cfg2.getProtocol());
72 Assert.assertEquals(address, cfg2.getAddress());
73 Assert.assertEquals(reconnect, cfg2.getReconnectStrategy());