BUG-1422 Introduce Call-Home functionality for the NETCONF Topology.
[netconf.git] / netconf / callhome-provider / src / test / java / org / opendaylight / netconf / callhome / mount / ContextKeyTest.java
1 /*
2  * Copyright (c) 2016 Brocade Communication Systems 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.callhome.mount;
10
11
12 import static org.junit.Assert.assertFalse;
13 import static org.junit.Assert.assertNotEquals;
14 import static org.junit.Assert.assertNotNull;
15 import static org.junit.Assert.assertTrue;
16 import static org.mockito.Mockito.mock;
17 import static org.mockito.Mockito.when;
18
19 import java.net.Inet4Address;
20 import java.net.Inet6Address;
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.opendaylight.netconf.client.NetconfClientSession;
27 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Host;
28 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
29 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddressBuilder;
30 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;
31 import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNode;
32
33
34 public class ContextKeyTest {
35     IpAddress address1;
36     IpAddress address2;
37
38     PortNumber port1;
39     PortNumber port2;
40
41     NetconfNode mockNode;
42     NetconfClientSession mockSession;
43
44     ContextKey instance1;
45     ContextKey instance2;
46     ContextKey instance3;
47     ContextKey instance4;
48
49     @Before
50     public void setup() {
51         address1 = IpAddressBuilder.getDefaultInstance("1.2.3.4");
52         address2 = IpAddressBuilder.getDefaultInstance("5.6.7.8");
53
54         port1 = new PortNumber(123);
55         port2 = new PortNumber(456);
56
57         mockNode = mock(NetconfNode.class);
58         mockSession = mock(NetconfClientSession.class);
59
60         instance1 = new ContextKey(address1, port1);
61         instance2 = new ContextKey(address2, port2);
62         instance3 = new ContextKey(address1, port2);
63         instance4 = new ContextKey(address2, port1);
64
65         Host mockHost = mock(Host.class);
66         when(mockHost.getIpAddress()).thenReturn(address1);
67         when(mockNode.getHost()).thenReturn(mockHost);
68
69         when(mockNode.getPort()).thenReturn(port1);
70     }
71
72     @Test
73     public void hashCodesForDifferentKeysAreDifferent() {
74         // expect
75         assertNotEquals(instance1.hashCode(), instance2.hashCode());
76         assertNotEquals(instance1.hashCode(), 0);
77         assertNotEquals(instance2.hashCode(), 0);
78     }
79
80     @Test
81     public void variousFlavorsOfEqualWork() {
82         // expect
83         assertTrue(instance1.equals(instance1));
84         assertFalse(instance1.equals(null));
85         assertFalse(instance1.equals(new Long(123456)));
86         assertFalse(instance1.equals(instance2));
87         assertFalse(instance1.equals(instance3));
88         assertFalse(instance1.equals(instance4));
89     }
90
91     @Test
92     public void newContextCanBeCreatedFromASocketAddress() throws UnknownHostException {
93         // given
94         Inet4Address someAddressIpv4 = (Inet4Address) InetAddress.getByName("1.2.3.4");
95         Inet6Address someAddressIpv6 = (Inet6Address) InetAddress.getByName("::1");
96         // and
97         ContextKey key1 = ContextKey.from(new InetSocketAddress(someAddressIpv4, 123));
98         ContextKey key2 = ContextKey.from(new InetSocketAddress(someAddressIpv6, 123));
99         // expect
100         assertNotNull(key1);
101         assertNotNull(key1.toString());
102         assertNotNull(key2);
103         assertNotNull(key2.toString());
104     }
105
106     @Test
107     public void newContextCanBeCreatedFromANetconfNode() {
108         // expect
109         assertNotNull(ContextKey.from(mockNode));
110     }
111 }