blob: c599b9f8bb3eec1bc852da81437e0b215e4535a7 [file] [log] [blame]
Jian Li3defa842019-02-12 00:31:35 +09001/*
2 * Copyright 2019-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.k8snode.api;
17
18import com.google.common.testing.EqualsTester;
19import org.junit.Before;
20import org.junit.Test;
21import org.onlab.packet.IpAddress;
Jian Lie2a04ce2020-07-01 19:07:02 +090022import org.onlab.packet.IpPrefix;
Jian Li3defa842019-02-12 00:31:35 +090023import org.onosproject.k8snode.api.K8sApiConfig.Scheme;
24
25import static junit.framework.TestCase.assertEquals;
26import static org.onlab.junit.ImmutableClassChecker.assertThatClassIsImmutable;
Jian Lie2a04ce2020-07-01 19:07:02 +090027import static org.onosproject.k8snode.api.K8sApiConfig.Mode;
28import static org.onosproject.k8snode.api.K8sApiConfig.Mode.NORMAL;
29import static org.onosproject.k8snode.api.K8sApiConfig.Mode.PASSTHROUGH;
Jian Li3defa842019-02-12 00:31:35 +090030import static org.onosproject.k8snode.api.K8sApiConfig.Scheme.HTTP;
31import static org.onosproject.k8snode.api.K8sApiConfig.Scheme.HTTPS;
Jian Li1cee9882019-02-13 11:25:25 +090032import static org.onosproject.k8snode.api.K8sApiConfig.State.CONNECTED;
33import static org.onosproject.k8snode.api.K8sApiConfig.State.DISCONNECTED;
Jian Li3defa842019-02-12 00:31:35 +090034
35/**
36 * Unit tests for DefaultK8sApiConfig.
37 */
38public final class DefaultK8sApiConfigTest {
39
Jian Lie2a04ce2020-07-01 19:07:02 +090040 private static final String CLUSTER_NAME = "kubernetes";
41
42 private static final int SEGMENT_ID_1 = 1;
43 private static final int SEGMENT_ID_2 = 2;
44
45 private static final IpPrefix EXT_NETWORK_CIDR = IpPrefix.valueOf("192.168.200.0/0");
46
Jian Li3defa842019-02-12 00:31:35 +090047 private static final Scheme SCHEME_1 = HTTP;
48 private static final Scheme SCHEME_2 = HTTPS;
49
Jian Lie2a04ce2020-07-01 19:07:02 +090050 private static final Mode MODE_1 = NORMAL;
51 private static final Mode MODE_2 = PASSTHROUGH;
52
Jian Li3defa842019-02-12 00:31:35 +090053 private static final IpAddress IP_ADDRESS_1 = IpAddress.valueOf("192.168.0.200");
54 private static final IpAddress IP_ADDRESS_2 = IpAddress.valueOf("192.168.0.201");
55
56 private static final int PORT_1 = 6443;
57 private static final int PORT_2 = 443;
58
59 private static final String TOKEN_1 = "token1";
60 private static final String TOKEN_2 = "token2";
61
62 private static final String CA_CERT_DATA_1 = "caCertData1";
63 private static final String CA_CERT_DATA_2 = "caCertData2";
64
65 private static final String CLIENT_CERT_DATA_1 = "clientCertData1";
66 private static final String CLIENT_CERT_DATA_2 = "clientCertData2";
67
68 private static final String CLIENT_KEY_DATA_1 = "clientKeyData1";
69 private static final String CLIENT_KEY_DATA_2 = "clientKeyData2";
70
Jian Lic2242bd2020-09-03 13:12:14 +090071 private static final boolean DVR_1 = true;
72 private static final boolean DVR_2 = false;
73
Jian Li3defa842019-02-12 00:31:35 +090074 private K8sApiConfig config1;
75 private K8sApiConfig sameAsConfig1;
76 private K8sApiConfig config2;
77
78 /**
79 * Tests class immutability.
80 */
81 @Test
82 public void testImmutability() {
83 assertThatClassIsImmutable(DefaultK8sApiConfig.class);
84 }
85
86 /**
87 * Initial setup for this unit test.
88 */
89 @Before
90 public void setUp() {
91 config1 = DefaultK8sApiConfig.builder()
Jian Lie2a04ce2020-07-01 19:07:02 +090092 .clusterName(CLUSTER_NAME)
93 .segmentId(SEGMENT_ID_1)
94 .extNetworkCidr(EXT_NETWORK_CIDR)
95 .mode(NORMAL)
Jian Li3defa842019-02-12 00:31:35 +090096 .scheme(SCHEME_1)
97 .ipAddress(IP_ADDRESS_1)
98 .port(PORT_1)
Jian Li1cee9882019-02-13 11:25:25 +090099 .state(CONNECTED)
Jian Li3defa842019-02-12 00:31:35 +0900100 .token(TOKEN_1)
101 .caCertData(CA_CERT_DATA_1)
102 .clientCertData(CLIENT_CERT_DATA_1)
103 .clientKeyData(CLIENT_KEY_DATA_1)
Jian Lic2242bd2020-09-03 13:12:14 +0900104 .dvr(DVR_1)
Jian Li3defa842019-02-12 00:31:35 +0900105 .build();
106
107 sameAsConfig1 = DefaultK8sApiConfig.builder()
Jian Lie2a04ce2020-07-01 19:07:02 +0900108 .clusterName(CLUSTER_NAME)
109 .segmentId(SEGMENT_ID_1)
110 .extNetworkCidr(EXT_NETWORK_CIDR)
111 .mode(NORMAL)
Jian Li3defa842019-02-12 00:31:35 +0900112 .scheme(SCHEME_1)
113 .ipAddress(IP_ADDRESS_1)
114 .port(PORT_1)
Jian Li1cee9882019-02-13 11:25:25 +0900115 .state(CONNECTED)
Jian Li3defa842019-02-12 00:31:35 +0900116 .token(TOKEN_1)
117 .caCertData(CA_CERT_DATA_1)
118 .clientCertData(CLIENT_CERT_DATA_1)
119 .clientKeyData(CLIENT_KEY_DATA_1)
Jian Lic2242bd2020-09-03 13:12:14 +0900120 .dvr(DVR_1)
Jian Li3defa842019-02-12 00:31:35 +0900121 .build();
122
123 config2 = DefaultK8sApiConfig.builder()
Jian Lie2a04ce2020-07-01 19:07:02 +0900124 .clusterName(CLUSTER_NAME)
125 .segmentId(SEGMENT_ID_2)
126 .extNetworkCidr(EXT_NETWORK_CIDR)
127 .mode(PASSTHROUGH)
Jian Li3defa842019-02-12 00:31:35 +0900128 .scheme(SCHEME_2)
129 .ipAddress(IP_ADDRESS_2)
130 .port(PORT_2)
Jian Li1cee9882019-02-13 11:25:25 +0900131 .state(DISCONNECTED)
Jian Li3defa842019-02-12 00:31:35 +0900132 .token(TOKEN_2)
133 .caCertData(CA_CERT_DATA_2)
134 .clientCertData(CLIENT_CERT_DATA_2)
135 .clientKeyData(CLIENT_KEY_DATA_2)
Jian Lic2242bd2020-09-03 13:12:14 +0900136 .dvr(DVR_2)
Jian Li3defa842019-02-12 00:31:35 +0900137 .build();
138 }
139
140 /**
141 * Tests object equality.
142 */
143 @Test
144 public void testEquality() {
145 new EqualsTester().addEqualityGroup(config1, sameAsConfig1)
146 .addEqualityGroup(config2)
147 .testEquals();
148 }
149
150 /**
151 * Test object construction.
152 */
153 @Test
154 public void testConstruction() {
155 K8sApiConfig config = config1;
156
Jian Lie2a04ce2020-07-01 19:07:02 +0900157 assertEquals(CLUSTER_NAME, config.clusterName());
158 assertEquals(SEGMENT_ID_1, config.segmentId());
159 assertEquals(EXT_NETWORK_CIDR, config.extNetworkCidr());
Jian Li3defa842019-02-12 00:31:35 +0900160 assertEquals(SCHEME_1, config.scheme());
Jian Lie2a04ce2020-07-01 19:07:02 +0900161 assertEquals(MODE_1, config.mode());
Jian Li3defa842019-02-12 00:31:35 +0900162 assertEquals(IP_ADDRESS_1, config.ipAddress());
163 assertEquals(PORT_1, config.port());
Jian Li1cee9882019-02-13 11:25:25 +0900164 assertEquals(CONNECTED, config.state());
Jian Li3defa842019-02-12 00:31:35 +0900165 assertEquals(TOKEN_1, config.token());
166 assertEquals(CA_CERT_DATA_1, config.caCertData());
167 assertEquals(CLIENT_CERT_DATA_1, config.clientCertData());
168 assertEquals(CLIENT_KEY_DATA_1, config.clientKeyData());
Jian Lic2242bd2020-09-03 13:12:14 +0900169 assertEquals(DVR_1, config.dvr());
Jian Li3defa842019-02-12 00:31:35 +0900170 }
171}