io.cloudslang.lang.tools.build.tester.SlangTestCaseRunnable Maven / Gradle / Ivy
/*******************************************************************************
* (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.tools.build.tester;
import io.cloudslang.lang.entities.CompilationArtifact;
import io.cloudslang.lang.tools.build.tester.parallel.MultiTriggerTestCaseEventListener;
import io.cloudslang.lang.tools.build.tester.parallel.services.TestCaseEventDispatchService;
import io.cloudslang.lang.tools.build.tester.parallel.testcaseevents.BeginSlangTestCaseEvent;
import io.cloudslang.lang.tools.build.tester.parallel.testcaseevents.FailedSlangTestCaseEvent;
import io.cloudslang.lang.tools.build.tester.parallel.testcaseevents.PassedSlangTestCaseEvent;
import io.cloudslang.lang.tools.build.tester.parse.SlangTestCase;
import java.util.Map;
public class SlangTestCaseRunnable implements Runnable {
private final SlangTestCase testCase;
private final Map compiledFlows;
private final String projectPath;
private final TestCaseEventDispatchService testCaseEventDispatchService;
private final SlangTestRunner slangTestRunService;
private final MultiTriggerTestCaseEventListener multiTriggerTestCaseEventListener;
public SlangTestCaseRunnable(SlangTestCase testCase, Map compiledFlows,
String projectPath, SlangTestRunner slangTestRunService,
TestCaseEventDispatchService testCaseEventDispatchService,
MultiTriggerTestCaseEventListener multiTriggerTestCaseEventListener) {
this.testCase = testCase;
this.compiledFlows = compiledFlows;
this.projectPath = projectPath;
this.testCaseEventDispatchService = testCaseEventDispatchService;
this.slangTestRunService = slangTestRunService;
this.multiTriggerTestCaseEventListener = multiTriggerTestCaseEventListener;
}
@Override
public void run() {
try {
testCaseEventDispatchService.notifyListeners(new BeginSlangTestCaseEvent(testCase));
CompilationArtifact compiledTestFlow = slangTestRunService.getCompiledTestFlow(compiledFlows, testCase);
slangTestRunService
.runTestCaseParallel(testCase, compiledTestFlow, projectPath, multiTriggerTestCaseEventListener);
testCaseEventDispatchService.notifyListeners(new PassedSlangTestCaseEvent(testCase));
} catch (RuntimeException failureException) {
testCaseEventDispatchService.notifyListeners(
new FailedSlangTestCaseEvent(testCase, failureException.getMessage(), failureException));
}
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy