blob: 91ff8add9e03337e1feab2e9315411321fc9898e [file] [log] [blame]
Jian Li70c32de2021-02-26 18:15:20 +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.collect.ImmutableMap;
19import com.google.common.collect.ImmutableSet;
20import com.google.common.testing.EqualsTester;
21import org.junit.Before;
22import org.junit.Test;
23import org.onlab.packet.IpAddress;
24import org.onlab.packet.MacAddress;
25
26import static junit.framework.TestCase.assertEquals;
27import static org.onlab.junit.ImmutableClassChecker.assertThatClassIsImmutable;
28import static org.onosproject.kubevirtnetworking.api.KubevirtNetwork.Type.FLAT;
29import static org.onosproject.kubevirtnetworking.api.KubevirtNetwork.Type.VXLAN;
30
31/**
32 * Unit tests for the default kubevirt router class.
33 */
34public class DefaultKubevirtRouterTest {
35
36 private static final String NAME_1 = "router-1";
37 private static final String NAME_2 = "router-2";
38 private static final String DESCRIPTION_1 = "dummy router 1";
39 private static final String DESCRIPTION_2 = "dummy router 2";
40 private static final boolean ENABLE_SNAT_1 = false;
41 private static final boolean ENABLE_SNAT_2 = true;
42 private static final KubevirtNetwork.Type TYPE_1 = FLAT;
43 private static final KubevirtNetwork.Type TYPE_2 = VXLAN;
44 private static final String NETWORK_NAME_1 = "net-1";
45 private static final String NETWORK_NAME_2 = "net-2";
46
47 private static final KubevirtPeerRouter PEER_ROUTER_1 =
48 new KubevirtPeerRouter(IpAddress.valueOf("192.168.10.10"),
49 MacAddress.valueOf("11:22:33:44:55:66"));
50 private static final KubevirtPeerRouter PEER_ROUTER_2 =
51 new KubevirtPeerRouter(IpAddress.valueOf("192.168.20.20"),
52 MacAddress.valueOf("22:33:44:55:66:77"));
53
54 private KubevirtRouter router1;
55 private KubevirtRouter sameAsRouter1;
56 private KubevirtRouter router2;
57
58 /**
59 * Tests class immutability.
60 */
61 @Test
62 public void testImmutability() {
63 assertThatClassIsImmutable(DefaultKubevirtRouter.class);
64 }
65
66 /**
67 * Initial setup for this unit test.
68 */
69 @Before
70 public void setUp() {
71 router1 = DefaultKubevirtRouter.builder()
72 .name(NAME_1)
73 .description(DESCRIPTION_1)
74 .enableSnat(ENABLE_SNAT_1)
75 .internal(ImmutableSet.of(NETWORK_NAME_1))
Jian Li7eb20782021-02-27 01:10:50 +090076 .external(ImmutableMap.of("10.10.10.10", NETWORK_NAME_1))
Jian Li70c32de2021-02-26 18:15:20 +090077 .peerRouter(PEER_ROUTER_1)
78 .build();
79 sameAsRouter1 = DefaultKubevirtRouter.builder()
80 .name(NAME_1)
81 .description(DESCRIPTION_1)
82 .enableSnat(ENABLE_SNAT_1)
83 .internal(ImmutableSet.of(NETWORK_NAME_1))
Jian Li7eb20782021-02-27 01:10:50 +090084 .external(ImmutableMap.of("10.10.10.10", NETWORK_NAME_1))
Jian Li70c32de2021-02-26 18:15:20 +090085 .peerRouter(PEER_ROUTER_1)
86 .build();
87 router2 = DefaultKubevirtRouter.builder()
88 .name(NAME_2)
89 .description(DESCRIPTION_2)
90 .enableSnat(ENABLE_SNAT_2)
91 .internal(ImmutableSet.of(NETWORK_NAME_2))
Jian Li7eb20782021-02-27 01:10:50 +090092 .external(ImmutableMap.of("20.20.20.20", NETWORK_NAME_2))
Jian Li70c32de2021-02-26 18:15:20 +090093 .peerRouter(PEER_ROUTER_2)
94 .build();
95 }
96
97 /**
98 * Tests object equality.
99 */
100 @Test
101 public void testEquality() {
102 new EqualsTester().addEqualityGroup(router1, sameAsRouter1)
103 .addEqualityGroup(router2)
104 .testEquals();
105 }
106
107 /**
108 * Test object construction.
109 */
110 @Test
111 public void testConstruction() {
112 KubevirtRouter router = router1;
113
114 assertEquals(NAME_1, router.name());
115 assertEquals(DESCRIPTION_1, router.description());
116 assertEquals(ENABLE_SNAT_1, router.enableSnat());
117 assertEquals(ImmutableSet.of(NETWORK_NAME_1), router.internal());
Jian Li7eb20782021-02-27 01:10:50 +0900118 assertEquals(ImmutableMap.of("10.10.10.10", NETWORK_NAME_1), router.external());
Jian Li70c32de2021-02-26 18:15:20 +0900119 assertEquals(PEER_ROUTER_1, router.peerRouter());
120 }
121}