/******************************************************************************* * 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. ******************************************************************************/ package com.openshift.internal.restclient.model.build; import static org.junit.Assert.*; import static com.openshift.internal.util.JBossDmrExtentions.*; import org.jboss.dmr.ModelNode; import org.junit.Before; import org.junit.Test; import org.mockito.Mock; import com.openshift.internal.restclient.model.BuildConfig; import com.openshift.restclient.IClient; import com.openshift.restclient.images.DockerImageURI; import com.openshift.restclient.model.build.BuildStrategyType; import com.openshift.restclient.model.build.IBuildStrategy; import com.openshift.restclient.model.build.ICustomBuildStrategy; import com.openshift.restclient.model.build.IDockerBuildStrategy; /** * @author Jeff Cantrill */ public class BuildConfigTest { @Mock private IClient client; private BuildConfig config; private ModelNode node = new ModelNode(); @Before public void setup(){ config = new BuildConfig(node, client, null); } @Test public void testGetCustomBuildStrategy(){ String[] key = new String[]{"spec", "strategy"}; node.get(key).get("type").set("Custom"); node.get(key).get("customStrategy").get("exposeDockerSocket").set(true); node.get(key).get("customStrategy").get("image").set("thebaseImage"); ModelNode env = new ModelNode(); env.get("name").set("foo"); env.get("value").set("bar"); node.get(key).get("customStrategy").get("env").add(env); IBuildStrategy strategy = config.getBuildStrategy(); assertEquals(BuildStrategyType.CUSTOM, strategy.getType()); ICustomBuildStrategy custom = (ICustomBuildStrategy) strategy; assertEquals(new DockerImageURI("thebaseImage"), custom.getImage()); assertTrue(custom.exposeDockerSocket()); assertEquals(1, custom.getEnvironmentVariables().size()); assertTrue("Exp. to find the environment variable", custom.getEnvironmentVariables().containsKey("foo")); assertEquals("bar", custom.getEnvironmentVariables().get("foo")); } @Test public void testGetDockerBuildStrategy() { node.get(getPath(BuildConfig.BUILDCONFIG_TYPE)).set("Docker"); node.get(getPath(BuildConfig.BUILDCONFIG_DOCKER_CONTEXTDIR)).set("aContextDir"); node.get(getPath(BuildConfig.BUILDCONFIG_DOCKER_NOCACHE)).set(true); node.get(getPath(BuildConfig.BUILDCONFIG_DOCKER_BASEIMAGE)).set("thebaseImage"); IBuildStrategy strategy = config.getBuildStrategy(); assertEquals(BuildStrategyType.DOCKER, strategy.getType()); IDockerBuildStrategy docker = (IDockerBuildStrategy) strategy; assertEquals("aContextDir", docker.getContextDir()); assertTrue(docker.isNoCache()); assertEquals(new DockerImageURI("thebaseImage"), docker.getBaseImage()); } }