/* * Copyright OpenSearch Contributors * SPDX-License-Identifier: Apache-2.0 */ package org.opensearch.knn.index; import org.opensearch.Version; import org.opensearch.cluster.service.ClusterService; import org.opensearch.knn.KNNTestCase; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import static org.opensearch.knn.index.KNNClusterTestUtils.mockClusterService; public class KNNClusterUtilTests extends KNNTestCase { public void testSingleNodeCluster() { ClusterService clusterService = mockClusterService(Version.V_2_4_0); final KNNClusterUtil knnClusterUtil = KNNClusterUtil.instance(); knnClusterUtil.initialize(clusterService); final Version minVersion = knnClusterUtil.getClusterMinVersion(); assertTrue(Version.V_2_4_0.equals(minVersion)); } public void testMultipleNodesCluster() { ClusterService clusterService = mockClusterService(Version.V_2_3_0); final KNNClusterUtil knnClusterUtil = KNNClusterUtil.instance(); knnClusterUtil.initialize(clusterService); final Version minVersion = knnClusterUtil.getClusterMinVersion(); assertTrue(Version.V_2_3_0.equals(minVersion)); } public void testWhenErrorOnClusterStateDiscover() { ClusterService clusterService = mock(ClusterService.class); when(clusterService.state()).thenThrow(new RuntimeException("Cluster state is not ready")); final KNNClusterUtil knnClusterUtil = KNNClusterUtil.instance(); knnClusterUtil.initialize(clusterService); final Version minVersion = knnClusterUtil.getClusterMinVersion(); assertTrue(Version.CURRENT.equals(minVersion)); } }