blob: e9ec47146a12610ef5b893c1081c295316c4678e [file] [log] [blame]
Jian Lidaa7d6a2021-04-13 17:22:56 +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.ImmutableSet;
19import com.google.common.testing.EqualsTester;
20import org.junit.Before;
21import org.junit.Test;
22import org.onlab.packet.IpAddress;
23
24import java.util.Set;
25
26import static junit.framework.TestCase.assertEquals;
27import static org.onlab.junit.ImmutableClassChecker.assertThatClassIsImmutable;
28
29/**
30 * Unit tests for the default kubevirt load balancer class.
31 */
32public class DefaultKubevirtLoadBalancerTest {
33
34 private static final String NAME_1 = "lb-1";
35 private static final String NAME_2 = "lb-2";
36 private static final String DESCRIPTION_1 = "dummy lb 1";
37 private static final String DESCRIPTION_2 = "dummy lb 2";
38 private static final String NETWORK_ID_1 = "net-1";
39 private static final String NETWORK_ID_2 = "net-2";
40 private static final IpAddress VIP_1 = IpAddress.valueOf("10.10.10.10");
41 private static final IpAddress VIP_2 = IpAddress.valueOf("20.20.20.20");
42 private static final Integer PORT_RANGE_MAX_1 = 80;
43 private static final Integer PORT_RANGE_MAX_2 = 8080;
44 private static final Integer PORT_RANGE_MIN_1 = 80;
45 private static final Integer PORT_RANGE_MIN_2 = 8080;
46 private static final String PROTOCOL_1 = "tcp";
47 private static final String PROTOCOL_2 = "udp";
48 private static final Set<IpAddress> MEMBERS_1 =
49 ImmutableSet.of(IpAddress.valueOf("10.10.10.11"),
50 IpAddress.valueOf("10.10.10.12"));
51 private static final Set<IpAddress> MEMBERS_2 =
52 ImmutableSet.of(IpAddress.valueOf("20.20.20.21"),
53 IpAddress.valueOf("20.20.20.22"));
54 private static final KubevirtLoadBalancerRule RULE_1 =
55 DefaultKubevirtLoadBalancerRule.builder()
56 .protocol(PROTOCOL_1)
57 .portRangeMax(PORT_RANGE_MAX_1)
58 .portRangeMin(PORT_RANGE_MIN_1)
59 .build();
60 private static final KubevirtLoadBalancerRule RULE_2 =
61 DefaultKubevirtLoadBalancerRule.builder()
62 .protocol(PROTOCOL_2)
63 .portRangeMax(PORT_RANGE_MAX_2)
64 .portRangeMin(PORT_RANGE_MIN_2)
65 .build();
66 private static final Set<KubevirtLoadBalancerRule> RULES_1 = ImmutableSet.of(RULE_1);
67 private static final Set<KubevirtLoadBalancerRule> RULES_2 = ImmutableSet.of(RULE_2);
68
69 private KubevirtLoadBalancer lb1;
70 private KubevirtLoadBalancer sameAsLb1;
71 private KubevirtLoadBalancer lb2;
72
73 /**
74 * Tests class immutability.
75 */
76 @Test
77 public void testImmutability() {
78 assertThatClassIsImmutable(DefaultKubevirtLoadBalancer.class);
79 }
80
81 /**
82 * Initial setup for this unit test.
83 */
84 @Before
85 public void setUp() {
86 lb1 = DefaultKubevirtLoadBalancer.builder()
87 .name(NAME_1)
88 .description(DESCRIPTION_1)
89 .networkId(NETWORK_ID_1)
90 .vip(VIP_1)
91 .members(MEMBERS_1)
92 .rules(RULES_1)
93 .build();
94
95 sameAsLb1 = DefaultKubevirtLoadBalancer.builder()
96 .name(NAME_1)
97 .description(DESCRIPTION_1)
98 .networkId(NETWORK_ID_1)
99 .vip(VIP_1)
100 .members(MEMBERS_1)
101 .rules(RULES_1)
102 .build();
103
104 lb2 = DefaultKubevirtLoadBalancer.builder()
105 .name(NAME_2)
106 .description(DESCRIPTION_2)
107 .networkId(NETWORK_ID_2)
108 .vip(VIP_2)
109 .members(MEMBERS_2)
110 .rules(RULES_2)
111 .build();
112 }
113
114 /**
115 * Tests object equality.
116 */
117 @Test
118 public void testEquality() {
119 new EqualsTester().addEqualityGroup(lb1, sameAsLb1)
120 .addEqualityGroup(lb2)
121 .testEquals();
122 }
123
124 /**
125 * Test object construction.
126 */
127 @Test
128 public void testConstruction() {
129 KubevirtLoadBalancer lb = lb1;
130
131 assertEquals(NAME_1, lb.name());
132 assertEquals(DESCRIPTION_1, lb.description());
133 assertEquals(NETWORK_ID_1, lb.networkId());
134 assertEquals(VIP_1, lb.vip());
135 assertEquals(MEMBERS_1, lb.members());
136 assertEquals(RULES_1, lb.rules());
137 }
138}