blob: 22c39e4ab297c23adffada64c17c348a92d2e852 [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
71 private K8sApiConfig config1;
72 private K8sApiConfig sameAsConfig1;
73 private K8sApiConfig config2;
74
75 /**
76 * Tests class immutability.
77 */
78 @Test
79 public void testImmutability() {
80 assertThatClassIsImmutable(DefaultK8sApiConfig.class);
81 }
82
83 /**
84 * Initial setup for this unit test.
85 */
86 @Before
87 public void setUp() {
88 config1 = DefaultK8sApiConfig.builder()
Jian Lie2a04ce2020-07-01 19:07:02 +090089 .clusterName(CLUSTER_NAME)
90 .segmentId(SEGMENT_ID_1)
91 .extNetworkCidr(EXT_NETWORK_CIDR)
92 .mode(NORMAL)
Jian Li3defa842019-02-12 00:31:35 +090093 .scheme(SCHEME_1)
94 .ipAddress(IP_ADDRESS_1)
95 .port(PORT_1)
Jian Li1cee9882019-02-13 11:25:25 +090096 .state(CONNECTED)
Jian Li3defa842019-02-12 00:31:35 +090097 .token(TOKEN_1)
98 .caCertData(CA_CERT_DATA_1)
99 .clientCertData(CLIENT_CERT_DATA_1)
100 .clientKeyData(CLIENT_KEY_DATA_1)
101 .build();
102
103 sameAsConfig1 = DefaultK8sApiConfig.builder()
Jian Lie2a04ce2020-07-01 19:07:02 +0900104 .clusterName(CLUSTER_NAME)
105 .segmentId(SEGMENT_ID_1)
106 .extNetworkCidr(EXT_NETWORK_CIDR)
107 .mode(NORMAL)
Jian Li3defa842019-02-12 00:31:35 +0900108 .scheme(SCHEME_1)
109 .ipAddress(IP_ADDRESS_1)
110 .port(PORT_1)
Jian Li1cee9882019-02-13 11:25:25 +0900111 .state(CONNECTED)
Jian Li3defa842019-02-12 00:31:35 +0900112 .token(TOKEN_1)
113 .caCertData(CA_CERT_DATA_1)
114 .clientCertData(CLIENT_CERT_DATA_1)
115 .clientKeyData(CLIENT_KEY_DATA_1)
116 .build();
117
118 config2 = DefaultK8sApiConfig.builder()
Jian Lie2a04ce2020-07-01 19:07:02 +0900119 .clusterName(CLUSTER_NAME)
120 .segmentId(SEGMENT_ID_2)
121 .extNetworkCidr(EXT_NETWORK_CIDR)
122 .mode(PASSTHROUGH)
Jian Li3defa842019-02-12 00:31:35 +0900123 .scheme(SCHEME_2)
124 .ipAddress(IP_ADDRESS_2)
125 .port(PORT_2)
Jian Li1cee9882019-02-13 11:25:25 +0900126 .state(DISCONNECTED)
Jian Li3defa842019-02-12 00:31:35 +0900127 .token(TOKEN_2)
128 .caCertData(CA_CERT_DATA_2)
129 .clientCertData(CLIENT_CERT_DATA_2)
130 .clientKeyData(CLIENT_KEY_DATA_2)
131 .build();
132 }
133
134 /**
135 * Tests object equality.
136 */
137 @Test
138 public void testEquality() {
139 new EqualsTester().addEqualityGroup(config1, sameAsConfig1)
140 .addEqualityGroup(config2)
141 .testEquals();
142 }
143
144 /**
145 * Test object construction.
146 */
147 @Test
148 public void testConstruction() {
149 K8sApiConfig config = config1;
150
Jian Lie2a04ce2020-07-01 19:07:02 +0900151 assertEquals(CLUSTER_NAME, config.clusterName());
152 assertEquals(SEGMENT_ID_1, config.segmentId());
153 assertEquals(EXT_NETWORK_CIDR, config.extNetworkCidr());
Jian Li3defa842019-02-12 00:31:35 +0900154 assertEquals(SCHEME_1, config.scheme());
Jian Lie2a04ce2020-07-01 19:07:02 +0900155 assertEquals(MODE_1, config.mode());
Jian Li3defa842019-02-12 00:31:35 +0900156 assertEquals(IP_ADDRESS_1, config.ipAddress());
157 assertEquals(PORT_1, config.port());
Jian Li1cee9882019-02-13 11:25:25 +0900158 assertEquals(CONNECTED, config.state());
Jian Li3defa842019-02-12 00:31:35 +0900159 assertEquals(TOKEN_1, config.token());
160 assertEquals(CA_CERT_DATA_1, config.caCertData());
161 assertEquals(CLIENT_CERT_DATA_1, config.clientCertData());
162 assertEquals(CLIENT_KEY_DATA_1, config.clientKeyData());
163 }
164}