/******************************************************************************* * (c) Copyright 2016 Hewlett-Packard Development Company, L.P. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Apache License v2.0 which accompany this distribution. * * The Apache License is available at * http://www.apache.org/licenses/LICENSE-2.0 * *******************************************************************************/ package io.cloudslang.lang.systemtests; import io.cloudslang.lang.compiler.SlangSource; import io.cloudslang.lang.entities.CompilationArtifact; import io.cloudslang.lang.entities.ScoreLangConstants; import io.cloudslang.lang.entities.SystemProperty; import io.cloudslang.lang.entities.bindings.values.Value; import io.cloudslang.score.api.ExecutionStep; import io.cloudslang.score.events.ScoreEvent; import java.net.URL; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import org.junit.Ignore; import org.junit.Test; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; public class OperationWithDependenciesSystemTest extends SystemsTestsParent { @Test(expected = RuntimeException.class) public void testCompileJavaActionWithoutDependencies() throws Exception { URL resource = getClass().getResource("/yaml/action_wo_dependencies_java_test.sl"); slang.compile(SlangSource.fromFile(resource.toURI()), null); } @Test public void testCompileJavaActionWithDependencies() throws Exception { URL resource = getClass().getResource("/yaml/action_w_dependencies_java_test.sl"); CompilationArtifact compilationArtifact = slang.compile(SlangSource.fromFile(resource.toURI()), null); ExecutionStep step = compilationArtifact.getExecutionPlan().getStep(2L); String gav = (String) step.getActionData().get(ScoreLangConstants.JAVA_ACTION_GAV_KEY); assertNotNull(gav); assertEquals("io.cloudslang:content.actions:1.1", gav); } @Test public void testCompilePythonActionWithoutDependencies() throws Exception { URL resource = getClass().getResource("/yaml/action_wo_dependencies_python_test.sl"); CompilationArtifact compilationArtifact = slang.compile(SlangSource.fromFile(resource.toURI()), null); ExecutionStep step = compilationArtifact.getExecutionPlan().getStep(2L); assertNull(step.getActionData().get(ScoreLangConstants.ACTION_DEPENDENCIES)); //Trigger ExecutionPlan Map<String, Value> userInputs = new HashMap<>(); ScoreEvent event = trigger(compilationArtifact, userInputs, new HashSet<SystemProperty>()); assertEquals(ScoreLangConstants.EVENT_EXECUTION_FINISHED, event.getEventType()); } @Ignore("Enable when `dependencies` tag will be added") @Test public void testCompilePythonActionWithDependencies() throws Exception { URL resource = getClass().getResource("/yaml/action_w_dependencies_python_test.sl"); CompilationArtifact compilationArtifact = slang.compile(SlangSource.fromFile(resource.toURI()), null); ExecutionStep step = compilationArtifact.getExecutionPlan().getStep(2L); List<String> dependencies = (List<String>) step.getActionData().get(ScoreLangConstants.ACTION_DEPENDENCIES); assertNotNull(dependencies); assertTrue(dependencies.size() == 2); assertEquals("some.group:some.artifact:some_version-1.1", dependencies.get(0)); assertEquals("some.group1:some.artifact:some_version-2.1", dependencies.get(1)); } }