blob: 7c10cd155dee8175446cd791a5d138214715a10a [file] [log] [blame]
Ray Milkey7f582112015-05-18 16:46:19 -07001/*
2 * Copyright 2015 Open Networking Laboratory
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16package org.onosproject.net.host;
17
18import java.util.Set;
19
20import org.junit.Before;
21import org.junit.Test;
22import org.onlab.packet.IpAddress;
23import org.onlab.packet.IpPrefix;
24import org.onlab.packet.MacAddress;
25import org.onlab.packet.VlanId;
26import org.onosproject.net.ConnectPoint;
27import org.onosproject.net.NetTestTools;
28
29import static org.hamcrest.Matchers.is;
30import static org.onlab.junit.ImmutableClassChecker.assertThatClassIsImmutable;
31
32import com.google.common.collect.ImmutableSet;
33import com.google.common.testing.EqualsTester;
34import static org.hamcrest.MatcherAssert.assertThat;
35
36/**
37 * Unit tests for port addresses class.
38 */
39public class PortAddressesTest {
40
41 PortAddresses addresses1;
42 PortAddresses sameAsAddresses1;
43 PortAddresses addresses2;
44 PortAddresses addresses3;
45
46 private static final ConnectPoint CONNECT_POINT1 =
47 NetTestTools.connectPoint("cp1", 1);
48 private static final IpAddress IP_ADDRESS1 = IpAddress.valueOf("1.2.3.4");
49 private static final IpPrefix SUBNET_ADDRESS1 =
50 IpPrefix.valueOf("1.2.0.0/16");
51 private static final InterfaceIpAddress INTERFACE_ADDRESS_1 =
52 new InterfaceIpAddress(IP_ADDRESS1, SUBNET_ADDRESS1);
53
54 private static final ConnectPoint CONNECT_POINT2 =
55 NetTestTools.connectPoint("cp2", 1);
56 private static final IpAddress IP_ADDRESS2 = IpAddress.valueOf("1.2.3.5");
57 private static final IpPrefix SUBNET_ADDRESS2 =
58 IpPrefix.valueOf("1.3.0.0/16");
59 private static final InterfaceIpAddress INTERFACE_ADDRESS_2 =
60 new InterfaceIpAddress(IP_ADDRESS2, SUBNET_ADDRESS2);
61
62 Set<InterfaceIpAddress> ipAddresses;
63
64
65 /**
66 * Initializes local data used by all test cases.
67 */
68 @Before
69 public void setUpAddresses() {
70 ipAddresses = ImmutableSet.of(INTERFACE_ADDRESS_1,
71 INTERFACE_ADDRESS_2);
72 addresses1 = new PortAddresses(CONNECT_POINT1, ipAddresses,
73 MacAddress.BROADCAST, VlanId.NONE);
74 sameAsAddresses1 = new PortAddresses(CONNECT_POINT1, ipAddresses,
75 MacAddress.BROADCAST, VlanId.NONE);
76 addresses2 = new PortAddresses(CONNECT_POINT2, ipAddresses,
77 MacAddress.BROADCAST, VlanId.NONE);
78 addresses3 = new PortAddresses(CONNECT_POINT2, ipAddresses,
79 MacAddress.ZERO, VlanId.NONE);
80 }
81
82 /**
83 * Checks that the PortAddresses class is immutable.
84 */
85 @Test
86 public void testImmutability() {
87 assertThatClassIsImmutable(PortAddresses.class);
88 }
89
90 /**
91 * Checks the operation of the equals(), hash() and toString()
92 * methods.
93 */
94 @Test
95 public void testEquals() {
96 new EqualsTester()
97 .addEqualityGroup(addresses1, sameAsAddresses1)
98 .addEqualityGroup(addresses2)
99 .addEqualityGroup(addresses3)
100 .testEquals();
101 }
102
103 /**
104 * Tests that object are created correctly.
105 */
106 @Test
107 public void testConstruction() {
108 assertThat(addresses1.mac(), is(MacAddress.BROADCAST));
109 assertThat(addresses1.connectPoint(), is(CONNECT_POINT1));
110 assertThat(addresses1.ipAddresses(), is(ipAddresses));
111 assertThat(addresses1.vlan(), is(VlanId.NONE));
112 }
113}