Package com.eviware.soapui.security

Source Code of com.eviware.soapui.security.AbstractSecurityTestCaseWithMockService

/*
*  soapUI, copyright (C) 2004-2011 eviware.com
*
*  soapUI is free software; you can redistribute it and/or modify it under the
*  terms of version 2.1 of the GNU Lesser General Public License as published by
*  the Free Software Foundation.
*
*  soapUI is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
*  even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*  See the GNU Lesser General Public License for more details at gnu.org.
*/

package com.eviware.soapui.security;

import java.io.File;
import java.util.List;

import junit.framework.TestCase;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import com.eviware.soapui.config.SecurityScanConfig;
import com.eviware.soapui.config.SecurityTestConfig;
import com.eviware.soapui.config.TestStepSecurityTestConfig;
import com.eviware.soapui.impl.wsdl.WsdlInterface;
import com.eviware.soapui.impl.wsdl.WsdlOperation;
import com.eviware.soapui.impl.wsdl.WsdlProject;
import com.eviware.soapui.impl.wsdl.mock.WsdlMockOperation;
import com.eviware.soapui.impl.wsdl.mock.WsdlMockResponse;
import com.eviware.soapui.impl.wsdl.mock.WsdlMockService;
import com.eviware.soapui.impl.wsdl.testcase.WsdlTestCase;
import com.eviware.soapui.impl.wsdl.teststeps.HttpTestRequestStep;
import com.eviware.soapui.impl.wsdl.teststeps.WsdlTestRequestStep;
import com.eviware.soapui.impl.wsdl.teststeps.WsdlTestStep;
import com.eviware.soapui.model.testsuite.TestStep;
import com.eviware.soapui.model.testsuite.TestSuite;

public class AbstractSecurityTestCaseWithMockService extends TestCase
{
  WsdlTestCase testCase;
  WsdlTestStep testStep;
  SecurityTestConfig config = SecurityTestConfig.Factory.newInstance();
  WsdlMockService mockService;

  String testStepName;
  String securityCheckType;
  String securityCheckName;

  /**
   * always override this method to call
   *
   * super.setUp();
   *
   * and initialise there three variables testStepName = "SEK to USD Test";
   * securityCheckType = GroovySecurityCheck.TYPE; securityCheckName =
   * GroovySecurityCheck.TYPE;
   *
   * @throws java.lang.Exception
   */
  @Before
  public void setUp() throws Exception
  {
    WsdlProject project = new WsdlProject( "src" + File.separatorChar + "test-resources" + File.separatorChar
        + "sample-soapui-project.xml" );
    TestSuite testSuite = project.getTestSuiteByName( "Test Suite" );
    testCase = ( WsdlTestCase )testSuite.getTestCaseByName( "Test Conversions" );

    WsdlInterface iface = ( WsdlInterface )project.getInterfaceAt( 0 );

    mockService = ( WsdlMockService )project.addNewMockService( "MockService 1" );

    mockService.setPort( 9081 );
    mockService.setPath( "/testmock" );

    WsdlOperation operation = ( WsdlOperation )iface.getOperationAt( 0 );
    WsdlMockOperation mockOperation = ( WsdlMockOperation )mockService.addNewMockOperation( operation );
    WsdlMockResponse mockResponse = mockOperation.addNewMockResponse( "Test Response", true );
    mockResponse.setResponseContent( "Tjohoo!" );

    mockService.start();

    String endpoint = "http://" + mockService.getHost() + ":" + mockService.getPort() + mockService.getPath();
    iface.addEndpoint( endpoint );
    List<TestStep> testStepList = testCase.getTestStepList();
    for( TestStep testStep : testStepList )
    {
      if( testStep instanceof WsdlTestRequestStep )
      {
        ( ( WsdlTestRequestStep )testStep ).getTestRequest().setEndpoint( endpoint );
      }
      if( testStep instanceof HttpTestRequestStep )
      {
        ( ( HttpTestRequestStep )testStep ).getTestRequest().setEndpoint( endpoint );
      }
    }
  }

  /**
   * @throws java.lang.Exception
   */
  @After
  public void tearDown() throws Exception
  {
    if( mockService.getMockRunner().isRunning() )
    {
      mockService.getMockRunner().stop();
    }
  }

  /*
   * creates SecurityTest
   */
  protected SecurityTest createSecurityTest()
  {
    SecurityTest securityTest = new SecurityTest( testCase, config );
    SecurityScanConfig securityCheckConfig = addCheckToConfig();
    addSecurityScanConfig( securityCheckConfig );
    return securityTest;
  }

  /*
   * adds specific config which is ANY TYPE in soapui.xsd implement it by
   * create specific SecurityTest with constructor
   */
  protected void addSecurityScanConfig( SecurityScanConfig securityCheckConfig )
  {

  }

  /*
   * creates basic SecurityScanConfig
   */
  protected SecurityScanConfig addCheckToConfig()
  {
    testStep = testCase.getTestStepByName( testStepName );

    TestStepSecurityTestConfig testStepSecurityTest = config.addNewTestStepSecurityTest();
    testStepSecurityTest.setTestStepId( testStep.getId() );

    SecurityScanConfig securityCheckConfig = testStepSecurityTest.addNewTestStepSecurityScan();
    securityCheckConfig.setType( securityCheckType );
    securityCheckConfig.setName( securityCheckName );

    return securityCheckConfig;
  }

  @Test
  public void testDummy()
  {

    assertTrue( "Dummy SecurityTest", true );
  }
}
TOP

Related Classes of com.eviware.soapui.security.AbstractSecurityTestCaseWithMockService

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.