blob: 693fce40b271c703d020d379c20fc10d8d47088f [file] [log] [blame]
/*
* Copyright 2020-present Open Networking Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.onosproject.k8snode.api;
import com.google.common.collect.ImmutableSet;
import com.google.common.testing.EqualsTester;
import org.junit.Before;
import org.junit.Test;
import org.onlab.packet.IpAddress;
import java.util.Set;
import static junit.framework.TestCase.assertEquals;
import static org.onosproject.k8snode.api.K8sHostState.COMPLETE;
import static org.onosproject.k8snode.api.K8sHostState.INIT;
/**
* Unit test for DefaultK8sHost.
*/
public final class DefaultK8sHostTest {
private static final IpAddress HOST_IP_1 = IpAddress.valueOf("192.168.200.3");
private static final IpAddress HOST_IP_2 = IpAddress.valueOf("192.168.200.4");
private static final Set<String> NODE_NAMES_1 = ImmutableSet.of("1", "2");
private static final Set<String> NODE_NAMES_2 = ImmutableSet.of("3", "4");
private K8sHost refHost;
private static final K8sHost K8S_HOST_1 = createHost(
HOST_IP_1,
NODE_NAMES_1,
INIT
);
private static final K8sHost K8S_HOST_2 = createHost(
HOST_IP_1,
NODE_NAMES_1,
INIT
);
private static final K8sHost K8S_HOST_3 = createHost(
HOST_IP_2,
NODE_NAMES_2,
COMPLETE
);
/**
* Initial setup for this unit test.
*/
@Before
public void setUp() {
refHost = DefaultK8sHost.builder()
.hostIp(HOST_IP_1)
.nodeNames(NODE_NAMES_1)
.state(INIT)
.build();
}
/**
* Checks equals method works as expected.
*/
@Test
public void testEquality() {
new EqualsTester().addEqualityGroup(K8S_HOST_1, K8S_HOST_2)
.addEqualityGroup(K8S_HOST_3)
.testEquals();
}
/**
* Test object construction.
*/
@Test
public void testConstruction() {
assertEquals(refHost.hostIp(), HOST_IP_1);
assertEquals(refHost.nodeNames(), NODE_NAMES_1);
assertEquals(refHost.state(), INIT);
}
/**
* Checks the functionality of update state method.
*/
@Test
public void testUpdateState() {
K8sHost updatedHost = refHost.updateState(COMPLETE);
assertEquals(updatedHost.hostIp(), HOST_IP_1);
assertEquals(updatedHost.nodeNames(), NODE_NAMES_1);
assertEquals(updatedHost.state(), COMPLETE);
}
private static K8sHost createHost(IpAddress hostIp, Set<String> nodeNames, K8sHostState state) {
return DefaultK8sHost.builder()
.hostIp(hostIp)
.nodeNames(nodeNames)
.state(state)
.build();
}
}