/*******************************************************************************
* Copyright (c) 2012-2017 Red Hat, Inc.
* All rights reserved. This program and the accompanying materials
* are 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 org.eclipse.che.plugin.openshift.client;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import static org.testng.Assert.assertEquals;
import java.io.IOException;
import org.eclipse.che.plugin.docker.client.DockerApiVersionPathPrefixProvider;
import org.eclipse.che.plugin.docker.client.DockerConnectorConfiguration;
import org.eclipse.che.plugin.docker.client.DockerRegistryAuthResolver;
import org.eclipse.che.plugin.docker.client.connection.DockerConnectionFactory;
import org.eclipse.che.plugin.docker.client.json.ContainerConfig;
import org.eclipse.che.plugin.docker.client.params.CreateContainerParams;
import org.mockito.Mock;
import org.mockito.testng.MockitoTestNGListener;
import org.testng.annotations.Listeners;
import org.testng.annotations.Test;
@Listeners(MockitoTestNGListener.class)
public class OpenShiftConnectorTest {
private static final String[] CONTAINER_ENV_VARIABLES = {"CHE_WORKSPACE_ID=abcd1234"};
private static final String CHE_DEFAULT_OPENSHIFT_PROJECT_NAME = "eclipse-che";
private static final String CHE_DEFAULT_OPENSHIFT_SERVICEACCOUNT = "cheserviceaccount";
private static final int OPENSHIFT_LIVENESS_PROBE_DELAY = 300;
private static final int OPENSHIFT_LIVENESS_PROBE_TIMEOUT = 1;
@Mock
private DockerConnectorConfiguration dockerConnectorConfiguration;
@Mock
private DockerConnectionFactory dockerConnectionFactory;
@Mock
private DockerRegistryAuthResolver authManager;
@Mock
private DockerApiVersionPathPrefixProvider dockerApiVersionPathPrefixProvider;
@Mock
private CreateContainerParams createContainerParams;
private OpenShiftConnector openShiftConnector;
@Test
public void shouldGetWorkspaceIDWhenAValidOneIsProvidedInCreateContainerParams() throws IOException {
//Given
String expectedWorkspaceID="abcd1234";
ContainerConfig containerConfig = mock(ContainerConfig.class);
CreateContainerParams createContainerParams = CreateContainerParams.create(containerConfig);
when(containerConfig.getEnv()).thenReturn(CONTAINER_ENV_VARIABLES);
//When
openShiftConnector = new OpenShiftConnector(dockerConnectorConfiguration,
dockerConnectionFactory,
authManager,
dockerApiVersionPathPrefixProvider,
CHE_DEFAULT_OPENSHIFT_PROJECT_NAME,
CHE_DEFAULT_OPENSHIFT_SERVICEACCOUNT,
OPENSHIFT_LIVENESS_PROBE_DELAY,
OPENSHIFT_LIVENESS_PROBE_TIMEOUT);
String workspaceID = openShiftConnector.getCheWorkspaceId(createContainerParams);
//Then
assertEquals(workspaceID, expectedWorkspaceID);
}
}