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

Source Code of com.eviware.soapui.impl.wsdl.panels.support.MockTestRunContext

/*
*  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.panels.support;

import com.eviware.soapui.impl.wsdl.testcase.WsdlTestCase;
import com.eviware.soapui.impl.wsdl.teststeps.WsdlTestStep;
import com.eviware.soapui.model.ModelItem;
import com.eviware.soapui.model.settings.Settings;
import com.eviware.soapui.model.support.AbstractSubmitContext;
import com.eviware.soapui.model.testsuite.TestCase;
import com.eviware.soapui.model.testsuite.TestCaseRunContext;
import com.eviware.soapui.model.testsuite.TestCaseRunner;
import com.eviware.soapui.model.testsuite.TestStep;

/**
* Dummy TestRunContext used when executing TestSteps one by one
*
* @author ole.matzura
*/

public class MockTestRunContext extends AbstractSubmitContext<ModelItem> implements TestCaseRunContext
{
  private final MockTestRunner mockTestRunner;
  private final WsdlTestStep testStep;

  public MockTestRunContext( MockTestRunner mockTestRunner, WsdlTestStep testStep )
  {
    super( testStep == null ? mockTestRunner.getTestCase() : testStep );
    this.mockTestRunner = mockTestRunner;
    this.testStep = testStep;
    setProperty( "log", mockTestRunner.getLog() );
    mockTestRunner.setMockRunContext( this );
  }

  public TestStep getCurrentStep()
  {
    return testStep;
  }

  @Override
  public void setProperty( String name, Object value )
  {
    super.setProperty( name, value, getTestCase() );
  }

  public int getCurrentStepIndex()
  {
    return testStep == null ? -1 : testStep.getTestCase().getIndexOfTestStep( testStep );
  }

  public TestCaseRunner getTestRunner()
  {
    return mockTestRunner;
  }

  @Override
  public Object get( Object key )
  {
    if( "currentStep".equals( key ) )
      return getCurrentStep();

    if( "currentStepIndex".equals( key ) )
      return getCurrentStepIndex();

    if( "settings".equals( key ) )
      return getSettings();

    if( "testCase".equals( key ) )
      return getTestCase();

    if( "testRunner".equals( key ) )
      return getTestRunner();

    Object result = getProperty( key.toString() );

    if( result == null )
    {
      result = super.get( key );
    }

    return result;
  }

  @Override
  public Object put( String key, Object value )
  {
    Object oldValue = get( key );
    setProperty( key, value );
    return oldValue;
  }

  public Object getProperty( String name )
  {
    return getProperty( name, testStep, testStep == null ? null : ( WsdlTestCase )testStep.getTestCase() );
  }

  public Object getProperty( String testStepName, String propertyName )
  {
    TestStep ts = testStep == null ? null : testStep.getTestCase().getTestStepByName( testStepName );
    return ts == null ? null : ts.getPropertyValue( propertyName );
  }

  public TestCase getTestCase()
  {
    return testStep == null ? null : testStep.getTestCase();
  }

  public Settings getSettings()
  {
    return testStep == null ? null : testStep.getSettings();
  }
}
TOP

Related Classes of com.eviware.soapui.impl.wsdl.panels.support.MockTestRunContext

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.