/** * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ package org.apache.airavata.integration; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * Integration test class. */ public class WorkflowSamplesCaseIT extends WorkflowIntegrationTestBase { private final Logger log = LoggerFactory.getLogger(WorkflowSamplesCaseIT.class); public WorkflowSamplesCaseIT() throws Exception { // setUpEnvironment(); } // @BeforeTest // public void setUp() throws Exception { // this.airavataAPI = getAiravataAPI(); // } // @Test(groups = {"workflowSamplesGroup"}/*, dependsOnGroups = { "forEachGroup" }*/) // public void testWorkflowSamples() throws Exception { // log("Running tests ............................."); // executeExperiment("target/samples/workflows/SimpleEcho.xwf", Arrays.asList("Test_Value"), "Test_Value"); // executeExperiment("target/samples/workflows/LevenshteinDistance.xwf", Arrays.asList("abc", "def"), Arrays.asList("3")); // executeExperiment("target/samples/workflows/SimpleForEach.xwf", Arrays.asList("1,2","3,4"), Arrays.asList("4","6")); // executeExperiment("target/samples/workflows/ComplexMath.xwf", Arrays.asList("15","16","18","21","25","30","36","43"), "5554"); // executeExperiment("target/samples/workflows/SimpleMath.xwf", Arrays.asList("15","16","18","21","25","30","36","43"), "204"); // executeExperiment("target/samples/workflows/ComplexForEach.xwf", Arrays.asList("1,2","3,4","5,6","7,8","9,10","11,12","13,14","15,16"), Arrays.asList("2027025","10321920")); // } // private void executeExperiment(String workflowFilePath, // List<String> inputs, Object outputs) throws GraphException, // ComponentException, IOException, WorkflowAlreadyExistsException, // AiravataAPIInvocationException, Exception { // log("Saving workflow ..."); // // Workflow workflow = new Workflow(getWorkflowComposeContent(workflowFilePath)); // if (!airavataAPI.getWorkflowManager().isWorkflowExists(workflow.getName())) { // airavataAPI.getWorkflowManager().addWorkflow(workflow); // } // Assert.assertTrue(airavataAPI.getWorkflowManager().isWorkflowExists(workflow.getName())); // // log("Workflow setting up completed ..."); // // runWorkFlow(workflow, inputs, outputs); // } // // protected void runWorkFlow(Workflow workflow, List<String> inputValues, Object outputValue) throws Exception { // List<WorkflowInput> workflowInputs = setupInputs(workflow, inputValues); // String workflowName = workflow.getName(); // ExperimentAdvanceOptions options = airavataAPI.getExecutionManager().createExperimentAdvanceOptions( // workflowName, getUserName(), null); // // String experimentId = airavataAPI.getExecutionManager().runExperiment(workflowName, workflowInputs, options); // // Assert.assertNotNull(experimentId); // // log.info("Run workflow completed ...."); // // airavataAPI.getExecutionManager().waitForExperimentTermination(experimentId); // verifyOutput(experimentId, outputValue); // } // // protected void verifyOutput(String experimentId, Object outputVerifyingString) throws Exception { // log.info("Experiment ID Returned : " + experimentId); // // ExperimentData experimentData = airavataAPI.getProvenanceManager().getExperimentData(experimentId); // // log.info("Verifying output ..."); // // List<WorkflowExecutionDataImpl> workflowInstanceData = experimentData.getWorkflowExecutionDataList(); // // Assert.assertFalse("Workflow instance data cannot be empty !", workflowInstanceData.isEmpty()); // // for (WorkflowExecutionDataImpl data : workflowInstanceData) { // List<NodeExecutionData> nodeDataList = data.getNodeDataList(WorkflowNode.OUTPUTNODE); // Assert.assertFalse("Node execution data list cannot be empty !", nodeDataList.isEmpty()); // for (NodeExecutionData nodeData : nodeDataList) { // for (InputData inputData : nodeData.getInputData()) { // if (outputVerifyingString instanceof List) { // @SuppressWarnings("unchecked") // List<String> outputs = (List<String>) outputVerifyingString; // String[] outputValues = StringUtil.getElementsFromString(inputData.getValue()); // Assert.assertEquals(outputs.size(), outputValues.length); // for (int i = 0; i < outputValues.length; i++) { // Assert.assertEquals(outputs.get(i), outputValues[i]); // } // } else { // Assert.assertEquals(outputVerifyingString.toString(), inputData.getValue()); // } // // } // } // } // } }