Package com.softwaremill.common.test.web.soap

Source Code of com.softwaremill.common.test.web.soap.AbstractWebServiceTest

package com.softwaremill.common.test.web.soap;

import com.eviware.soapui.impl.wsdl.WsdlProject;
import com.eviware.soapui.model.support.PropertiesMap;
import com.eviware.soapui.model.testsuite.TestCase;
import com.eviware.soapui.model.testsuite.TestRunner;
import com.eviware.soapui.model.testsuite.TestSuite;

import java.util.List;

import static org.assertj.core.api.Assertions.assertThat;

/**
* Base class used to create web service test base on soapUI Test Suites
*/
public class AbstractWebServiceTest {

    private ArtifactPublisherListener listener;

    public AbstractWebServiceTest() {
        listener = new ArtifactPublisherListener();
    }

    /**
     * Runs all the tests defined in the given soapUI Test Suite,
     *
     * @param soapUITestSuite specify it like for example: System.getProperty("resources.dir") + "/src/test/resources/SoapUITestSuite.xml"
     * @throws Exception any exception
     */
    protected void run(String soapUITestSuite) throws Exception {
        run(new WsdlProject(soapUITestSuite));
    }

    /**
     * Runs SoapUI TestCase project
     *
     * @param project new WsdlProject("/path/to/soapui/testcase.xml")
     */
    protected void run(WsdlProject project) {
        for (TestSuite testSuite : project.getTestSuiteList()) {
            run(testSuite);
        }
    }

    /**
     * Runs all test cases in given SoapUI TestSuite
     *
     * @param testSuite SoapUI TestSuite
     */
    protected void run(TestSuite testSuite) {
        run(testSuite.getTestCaseList());
    }

    /**
     * Runs specified list of TestCases one by one
     *
     * @param testCases list of TestCases
     */
    protected void run(List<TestCase> testCases) {
        for (TestCase testCase : testCases) {
            run(testCase);
        }
    }

    /**
     * Runs one soapUI TestCase
     *
     * @param testCase single TestCase
     */
    protected void run(TestCase testCase) {
        testCase.addTestRunListener(listener);
        TestRunner runner = testCase.run(new PropertiesMap(), false);
        assertThat(runner.getStatus())
                .describedAs("TestCase [" + testCase.getLabel() + "] failed because of [" + runner.getReason() + "]")
                .isEqualTo(TestRunner.Status.FINISHED);
    }

}
TOP

Related Classes of com.softwaremill.common.test.web.soap.AbstractWebServiceTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.