Move netconf{-client,impl,util} to protocol/
[netconf.git] / protocol / netconf-client / src / test / java / org / opendaylight / netconf / client / NetconfReconnectingClientConfigurationTest.java
1 /*
2  * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
3  *
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
7  */
8
9 package org.opendaylight.netconf.client;
10
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;
23
24 public class NetconfReconnectingClientConfigurationTest {
25     @Test
26     public void testNetconfReconnectingClientConfiguration() throws Exception {
27         Long timeout = 200L;
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);
35
36         NetconfReconnectingClientConfiguration cfg = NetconfReconnectingClientConfigurationBuilder.create()
37                 .withProtocol(NetconfClientConfiguration.NetconfClientProtocol.SSH)
38                 .withAddress(address)
39                 .withConnectionTimeoutMillis(timeout)
40                 .withReconnectStrategy(reconnect)
41                 .withAdditionalHeader(header)
42                 .withSessionListener(listener)
43                 .withConnectStrategyFactory(strategy)
44                 .withAuthHandler(handler).build();
45
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());
54
55         SslHandlerFactory sslHandlerFactory = Mockito.mock(SslHandlerFactory.class);
56         NetconfReconnectingClientConfiguration cfg2 = NetconfReconnectingClientConfigurationBuilder.create()
57                 .withProtocol(NetconfClientConfiguration.NetconfClientProtocol.TLS)
58                 .withAddress(address)
59                 .withConnectionTimeoutMillis(timeout)
60                 .withReconnectStrategy(reconnect)
61                 .withAdditionalHeader(header)
62                 .withSessionListener(listener)
63                 .withConnectStrategyFactory(strategy)
64                 .withSslHandlerFactory(sslHandlerFactory).build();
65
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());
74     }
75 }