blob: e995532e068161183181af3078756daa4b41fe77 [file] [log] [blame]
Jian Li073f1ba2021-02-28 03:50:15 +09001/*
2 * Copyright 2021-present Open Networking Foundation
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.kubevirtnetworking.api;
17
18import com.google.common.testing.EqualsTester;
19import org.junit.Before;
20import org.junit.Test;
21import org.onlab.packet.IpAddress;
22
23import static junit.framework.TestCase.assertEquals;
24import static org.onlab.junit.ImmutableClassChecker.assertThatClassIsImmutable;
25
26/**
27 * Unit tests for the default kubevirt floating IP class.
28 */
29public class DefaultKubevirtFloatingIpTest {
30
31 private static final String ID_1 = "fip_id_1";
32 private static final String ID_2 = "fip_id_2";
33 private static final String ROUTER_NAME_1 = "router-1";
34 private static final String ROUTER_NAME_2 = "router-2";
Jian Lib636f702021-03-03 14:46:50 +090035 private static final String NETWORK_NAME_1 = "flat-1";
36 private static final String NETWORK_NAME_2 = "flat-2";
Jian Li073f1ba2021-02-28 03:50:15 +090037 private static final IpAddress FLOATING_IP_1 = IpAddress.valueOf("10.10.10.10");
38 private static final IpAddress FLOATING_IP_2 = IpAddress.valueOf("20.20.20.20");
39 private static final String POD_NAME_1 = "pod-1";
40 private static final String POD_NAME_2 = "pod-2";
Jian Licb580422022-02-03 15:08:31 +090041 private static final String VM_NAME_1 = "vm-1";
42 private static final String VM_NAME_2 = "vm-2";
Jian Li073f1ba2021-02-28 03:50:15 +090043 private static final IpAddress FIXED_IP_1 = IpAddress.valueOf("30.30.30.30");
44 private static final IpAddress FIXED_IP_2 = IpAddress.valueOf("40.40.40.40");
45
46 private KubevirtFloatingIp fip1;
47 private KubevirtFloatingIp sameAsFip1;
48 private KubevirtFloatingIp fip2;
49
50 /**
51 * Tests class immutability.
52 */
53 @Test
54 public void testImmutability() {
55 assertThatClassIsImmutable(DefaultKubevirtFloatingIp.class);
56 }
57
58 /**
59 * Initial setup for this unit test.
60 */
61 @Before
62 public void setUp() {
63 fip1 = DefaultKubevirtFloatingIp.builder()
64 .id(ID_1)
65 .routerName(ROUTER_NAME_1)
Jian Lib636f702021-03-03 14:46:50 +090066 .networkName(NETWORK_NAME_1)
Jian Li073f1ba2021-02-28 03:50:15 +090067 .floatingIp(FLOATING_IP_1)
68 .podName(POD_NAME_1)
Jian Licb580422022-02-03 15:08:31 +090069 .vmName(VM_NAME_1)
Jian Li073f1ba2021-02-28 03:50:15 +090070 .fixedIp(FIXED_IP_1)
71 .build();
72
73 sameAsFip1 = DefaultKubevirtFloatingIp.builder()
74 .id(ID_1)
75 .routerName(ROUTER_NAME_1)
Jian Lib636f702021-03-03 14:46:50 +090076 .networkName(NETWORK_NAME_1)
Jian Li073f1ba2021-02-28 03:50:15 +090077 .floatingIp(FLOATING_IP_1)
78 .podName(POD_NAME_1)
Jian Licb580422022-02-03 15:08:31 +090079 .vmName(VM_NAME_1)
Jian Li073f1ba2021-02-28 03:50:15 +090080 .fixedIp(FIXED_IP_1)
81 .build();
82
83 fip2 = DefaultKubevirtFloatingIp.builder()
84 .id(ID_2)
85 .routerName(ROUTER_NAME_2)
Jian Lib636f702021-03-03 14:46:50 +090086 .networkName(NETWORK_NAME_2)
Jian Li073f1ba2021-02-28 03:50:15 +090087 .floatingIp(FLOATING_IP_2)
88 .podName(POD_NAME_2)
Jian Licb580422022-02-03 15:08:31 +090089 .vmName(VM_NAME_2)
Jian Li073f1ba2021-02-28 03:50:15 +090090 .fixedIp(FIXED_IP_2)
91 .build();
92 }
93
94 /**
95 * Tests object equality.
96 */
97 @Test
98 public void testEquality() {
99 new EqualsTester().addEqualityGroup(fip1, sameAsFip1)
100 .addEqualityGroup(fip2)
101 .testEquals();
102 }
103
104 /**
105 * Test object construction.
106 */
107 @Test
108 public void testConstruction() {
109 KubevirtFloatingIp fip = fip1;
110
111 assertEquals(ID_1, fip.id());
112 assertEquals(ROUTER_NAME_1, fip.routerName());
Jian Lib636f702021-03-03 14:46:50 +0900113 assertEquals(NETWORK_NAME_1, fip.networkName());
Jian Li073f1ba2021-02-28 03:50:15 +0900114 assertEquals(FLOATING_IP_1, fip.floatingIp());
115 assertEquals(POD_NAME_1, fip.podName());
Jian Licb580422022-02-03 15:08:31 +0900116 assertEquals(VM_NAME_1, fip.vmName());
Jian Li073f1ba2021-02-28 03:50:15 +0900117 assertEquals(FIXED_IP_1, fip.fixedIp());
118 }
119}