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

Source Code of com.eviware.soapui.impl.wsdl.panels.testcase.TestRunLogTestRunListener

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

import java.text.SimpleDateFormat;
import java.util.Date;

import javax.swing.SwingUtilities;

import com.eviware.soapui.SoapUI;
import com.eviware.soapui.impl.wsdl.testcase.WsdlTestCaseRunner;
import com.eviware.soapui.model.support.TestRunListenerAdapter;
import com.eviware.soapui.model.testsuite.TestCaseRunContext;
import com.eviware.soapui.model.testsuite.TestCaseRunner;
import com.eviware.soapui.model.testsuite.TestStepResult;

public class TestRunLogTestRunListener extends TestRunListenerAdapter
{
  protected SimpleDateFormat dateFormat;
  protected final JTestRunLog runLog;
  protected final boolean clearOnRun;

  public TestRunLogTestRunListener( JTestRunLog runLog, boolean clearOnRun )
  {
    this.runLog = runLog;
    this.clearOnRun = clearOnRun;
    dateFormat = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss.SSS" );
  }

  public void beforeRun( TestCaseRunner testRunner, TestCaseRunContext runContext )
  {
    if( SoapUI.getTestMonitor().hasRunningLoadTest( testRunner.getTestCase() )
        || SoapUI.getTestMonitor().hasRunningSecurityTest( testRunner.getTestCase() ) )
      return;

    if( clearOnRun )
      runLog.clear();

    String testCaseName = testRunner.getTestCase().getName();
    runLog.addBoldText( "TestCase [" + testCaseName + "] started at " + dateFormat.format( new Date() ) );
    runLog.setStepIndex( 0 );
  }

  public void afterRun( TestCaseRunner testRunner, TestCaseRunContext runContext )
  {
    if( SoapUI.getTestMonitor().hasRunningLoadTest( testRunner.getTestCase() )
        || SoapUI.getTestMonitor().hasRunningSecurityTest( testRunner.getTestCase() ) )
      return;

    WsdlTestCaseRunner wsdlRunner = ( WsdlTestCaseRunner )testRunner;

    String testCaseName = testRunner.getTestCase().getName();
    if( testRunner.getStatus() == TestCaseRunner.Status.CANCELED )
      runLog.addText( "TestCase [" + testCaseName + "] canceled [" + testRunner.getReason() + "], time taken = "
          + wsdlRunner.getTimeTaken() );
    else if( testRunner.getStatus() == TestCaseRunner.Status.FAILED )
    {
      String msg = wsdlRunner.getReason();
      if( wsdlRunner.getError() != null )
      {
        if( msg != null )
          msg += ":";

        msg += wsdlRunner.getError();
      }

      runLog.addText( "TestCase [" + testCaseName + "] failed [" + msg + "], time taken = "
          + wsdlRunner.getTimeTaken() );
    }
    else
      runLog.addText( "TestCase [" + testCaseName + "] finished with status [" + testRunner.getStatus()
          + "], time taken = " + wsdlRunner.getTimeTaken() );
  }

  public synchronized void afterStep( TestCaseRunner testRunner, TestCaseRunContext runContext,
      final TestStepResult stepResult )
  {
    if( SoapUI.getTestMonitor().hasRunningLoadTest( testRunner.getTestCase() )
        || SoapUI.getTestMonitor().hasRunningSecurityTest( testRunner.getTestCase() ) )
      return;

    SwingUtilities.invokeLater( new Runnable()
    {

      public void run()
      {
        runLog.addTestStepResult( stepResult );
      }
    } );
  }
}
TOP

Related Classes of com.eviware.soapui.impl.wsdl.panels.testcase.TestRunLogTestRunListener

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.