Package com.eviware.soapui.impl.wsdl.support.wsrm

Source Code of com.eviware.soapui.impl.wsdl.support.wsrm.WsrmTestRunListener

/*
*  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.impl.wsdl.support.wsrm;

import java.util.HashMap;

import com.eviware.soapui.config.WsrmVersionTypeConfig;
import com.eviware.soapui.impl.wsdl.WsdlRequest;
import com.eviware.soapui.impl.wsdl.support.soap.SoapVersion;
import com.eviware.soapui.impl.wsdl.support.wsmc.WsmcInjection;
import com.eviware.soapui.impl.wsdl.testcase.WsdlTestCase;
import com.eviware.soapui.impl.wsdl.teststeps.WsdlTestRequestStep;
import com.eviware.soapui.model.testsuite.TestCaseRunContext;
import com.eviware.soapui.model.testsuite.TestCaseRunner;
import com.eviware.soapui.model.testsuite.TestRunListener;
import com.eviware.soapui.model.testsuite.TestStep;
import com.eviware.soapui.model.testsuite.TestStepResult;

public class WsrmTestRunListener implements TestRunListener
{

  private HashMap<String, WsrmSequence> wsrmMap;

  public void afterRun( TestCaseRunner testRunner, TestCaseRunContext runContext )
  {

    if( wsrmMap != null )
    {
      for( String endpoint : wsrmMap.keySet() )
      {
        WsrmSequence sequence = wsrmMap.get( endpoint );
        WsrmUtils utils = new WsrmUtils( sequence.getSoapVersion() );
        utils.closeSequence( endpoint, sequence.getSoapVersion(), sequence.getWsrmNameSpace(), sequence.getUuid(),
            sequence.getIdentifier(), sequence.getLastMsgNumber(), sequence.getOperation() );
      }
    }

    wsrmMap = null;
  }

  public void afterStep( TestCaseRunner testRunner, TestCaseRunContext runContext, TestStepResult result )
  {
    // TestStep currentStep = runContext.getCurrentStep();
    // WsdlTestCase testCase = (WsdlTestCase) runContext.getTestCase();
    // if (currentStep instanceof WsdlTestRequestStep
    // && testCase.getWsrmEnabled()) {
    // if (wsrmMap == null) {
    // wsrmMap = new HashMap<String, WsrmSequence>();
    // }
    // WsdlTestRequestStep requestStep = (WsdlTestRequestStep) currentStep;
    // String endpoint = requestStep.getHttpRequest().getEndpoint();
    // if (wsrmMap.containsKey(endpoint)) {
    // SoapVersion soapVersion = requestStep.getOperation()
    // .getInterface().getSoapVersion();
    //
    // WsrmSequence sequence = wsrmMap.get(endpoint);
    //
    // WsmcUtils wsmcUtils = new WsmcUtils();
    // wsmcUtils.sendMakeConnectionRequest(endpoint, soapVersion,
    // requestStep.getOperation(), sequence.getUuid());
    //
    // }
    //
    // }
  }

  public void beforeRun( TestCaseRunner testRunner, TestCaseRunContext runContext )
  {
  }

  public void beforeStep( TestCaseRunner testRunner, TestCaseRunContext runContext )
  {
  }

  public void beforeStep( TestCaseRunner testRunner, TestCaseRunContext runContext, TestStep testStep )
  {
    TestStep currentStep = testStep;
    WsdlTestCase testCase = ( WsdlTestCase )runContext.getTestCase();
    if( currentStep instanceof WsdlTestRequestStep && testCase.getWsrmEnabled() )
    {
      if( wsrmMap == null )
      {
        wsrmMap = new HashMap<String, WsrmSequence>();
      }
      WsdlTestRequestStep requestStep = ( WsdlTestRequestStep )currentStep;
      String endpoint = requestStep.getHttpRequest().getEndpoint();
      SoapVersion soapVersion = requestStep.getOperation().getInterface().getSoapVersion();
      if( !wsrmMap.containsKey( endpoint ) )
      {

        WsrmUtils utils = new WsrmUtils( soapVersion );
        WsrmSequence sequence = utils.createSequence( endpoint, soapVersion, testCase.getWsrmVersionNamespace(),
            testCase.getWsrmAckTo(), testCase.getWsrmExpires(), requestStep.getOperation(), null );

        wsrmMap.put( endpoint, sequence );
      }

      WsrmSequence sequence = wsrmMap.get( endpoint );
      WsdlRequest wsdlRequest = ( WsdlRequest )requestStep.getHttpRequest();

      wsdlRequest.getWsrmConfig().setVersion( testCase.getWsrmVersion() );
      wsdlRequest.getWsrmConfig().setSequenceIdentifier( sequence.getIdentifier() );
      wsdlRequest.getWsrmConfig().setLastMessageId( sequence.incrementLastMsgNumber() );
      wsdlRequest.getWsrmConfig().setUuid( sequence.getUuid() );
      wsdlRequest.getWsrmConfig().setWsrmEnabled( true );

      if( !testCase.getWsrmVersion().equals( WsrmVersionTypeConfig.X_1_0.toString() ) )
      {
        WsmcInjection injection = new WsmcInjection( wsdlRequest.getEndpoint(), wsdlRequest.getOperation(),
            soapVersion, wsdlRequest.getWsrmConfig().getUuid() );
        wsdlRequest.setAfterRequestInjection( injection );
      }

    }

  }

}
TOP

Related Classes of com.eviware.soapui.impl.wsdl.support.wsrm.WsrmTestRunListener

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.