/******************************************************************************* * Copyright (c) 2015 Red Hat, Inc. * Distributed under license by Red Hat, Inc. All rights reserved. * This program is made available under the terms of the * Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Red Hat, Inc. - initial API and implementation ******************************************************************************/ package com.openshift.internal.restclient.model.properties; import static org.junit.Assert.*; import static org.mockito.Mockito.*; import java.util.Arrays; import java.util.List; import org.junit.Before; import org.junit.Test; import com.openshift.internal.restclient.KubernetesAPIVersion; import com.openshift.internal.restclient.OpenShiftAPIVersion; /** * @author Jeff Cantrill */ public class ResourcePropertiesRegistryTest { private ResourcePropertiesRegistry registry; @Before public void setUp() throws Exception { registry = spy(ResourcePropertiesRegistry.getInstance()); } @Test public void theClientShouldUseTheSameVersionWhenTheyAreTheSame() { List<KubernetesAPIVersion> serverVersions = Arrays.asList(new KubernetesAPIVersion[] {KubernetesAPIVersion.v1, KubernetesAPIVersion.v1beta3}); assertEquals(KubernetesAPIVersion.v1, registry.getMaxSupportedKubernetesVersion(serverVersions)); } @Test public void theClientShouldUseTheServerVersionWhenTheServerIsBehindTheClient() { when(registry.getSupportedKubernetesVersions()).thenReturn(new KubernetesAPIVersion [] {KubernetesAPIVersion.v1, KubernetesAPIVersion.v1beta3}); List<KubernetesAPIVersion> serverVersions = Arrays.asList(new KubernetesAPIVersion[] {KubernetesAPIVersion.v1beta3}); assertEquals(KubernetesAPIVersion.v1beta3, registry.getMaxSupportedKubernetesVersion(serverVersions)); } @Test public void theClientShouldUseTheClientVersionVersionWhenTheClientIsBehindTheServer() { List<KubernetesAPIVersion> serverVersions = Arrays.asList(new KubernetesAPIVersion[] {KubernetesAPIVersion.v1, KubernetesAPIVersion.v1beta3}); when(registry.getSupportedKubernetesVersions()).thenReturn(new KubernetesAPIVersion [] {KubernetesAPIVersion.v1beta3}); assertEquals(KubernetesAPIVersion.v1beta3, registry.getMaxSupportedKubernetesVersion(serverVersions)); } @Test public void theClientShouldUseTheSameOpenShiftAPIVersionWhenTheyAreTheSame() { List<OpenShiftAPIVersion> serverVersions = Arrays.asList(new OpenShiftAPIVersion[] {OpenShiftAPIVersion.v1, OpenShiftAPIVersion.v1beta3}); assertEquals(OpenShiftAPIVersion.v1, registry.getMaxSupportedOpenShiftVersion(serverVersions)); } @Test public void theClientShouldUseTheOpenShiftAPIServerVersionWhenTheServerIsBehindTheClient() { when(registry.getSupportedOpenShiftVersions()).thenReturn(new OpenShiftAPIVersion [] {OpenShiftAPIVersion.v1, OpenShiftAPIVersion.v1beta3}); List<OpenShiftAPIVersion> serverVersions = Arrays.asList(new OpenShiftAPIVersion[] {OpenShiftAPIVersion.v1beta3}); assertEquals(OpenShiftAPIVersion.v1beta3, registry.getMaxSupportedOpenShiftVersion(serverVersions)); } @Test public void theClientShouldUseTheOpenShiftAPIClientVersionVersionWhenTheClientIsBehindTheServer() { List<OpenShiftAPIVersion> serverVersions = Arrays.asList(new OpenShiftAPIVersion[] {OpenShiftAPIVersion.v1, OpenShiftAPIVersion.v1beta3}); when(registry.getSupportedOpenShiftVersions()).thenReturn(new OpenShiftAPIVersion [] {OpenShiftAPIVersion.v1beta3}); assertEquals(OpenShiftAPIVersion.v1beta3, registry.getMaxSupportedOpenShiftVersion(serverVersions)); } }