Package com.eviware.soapui.report

Source Code of com.eviware.soapui.report.JUnitSecurityReportCollector

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

import java.util.List;

import com.eviware.soapui.junit.Testcase;
import com.eviware.soapui.model.security.SecurityScan;
import com.eviware.soapui.model.testsuite.TestCase;
import com.eviware.soapui.model.testsuite.TestCaseRunner;
import com.eviware.soapui.model.testsuite.TestStep;
import com.eviware.soapui.model.testsuite.TestStepResult;
import com.eviware.soapui.security.SecurityTest;
import com.eviware.soapui.security.SecurityTestRunContext;
import com.eviware.soapui.security.SecurityTestRunner;
import com.eviware.soapui.security.result.SecurityResult.ResultStatus;
import com.eviware.soapui.security.result.SecurityScanRequestResult;
import com.eviware.soapui.security.result.SecurityScanResult;
import com.eviware.soapui.security.result.SecurityTestStepResult;
import com.eviware.soapui.security.support.SecurityTestRunListener;
import com.eviware.soapui.support.xml.XmlUtils;

/**
* Collects Security Test results and creates JUnitReports
*
* @author nebojsa.tasic
*/

public class JUnitSecurityReportCollector extends JUnitReportCollector implements SecurityTestRunListener
{
  @Override
  public void afterOriginalStep( TestCaseRunner testRunner, SecurityTestRunContext runContext,
      SecurityTestStepResult result )
  {
  }

  @Override
  public void afterRun( TestCaseRunner testRunner, SecurityTestRunContext runContext )
  {
    TestCase testCase = testRunner.getTestCase();

    SecurityTest securityTest = ( ( SecurityTestRunner )testRunner ).getSecurityTest();

    JUnitReport report = new JUnitReport();
    String reportName = securityTest.getName();
    report.setTestSuiteName( reportName );
    report.setPackage( testCase.getTestSuite().getProject().getName() );
    int errorCount = 0;

    for( TestStep ts : testCase.getTestStepList() )
    {
      SecurityTestStepResult secuTestStepResult = securityTest.getSecurityTestStepResultMap().get( ts );
      if( secuTestStepResult != null )
      {
        for( SecurityScanResult scanResult : secuTestStepResult.getSecurityScanResultList() )
        {
          List<SecurityScanRequestResult> resultList = scanResult.getSecurityRequestResultList();
          Testcase secTestCase = report.addTestCase( ts.getName() + " - " + scanResult.getSecurityScanName(),
              scanResult.getTimeTaken() );

          secTestCase.setPackage( testCase.getTestSuite().getProject().getName() );

          for( int i = 0; i < resultList.size(); i++ )
          {
            SecurityScanRequestResult scanRequestResult = resultList.get( i );
            if( scanRequestResult.getStatus() == ResultStatus.FAILED )
            {
              StringBuffer result = new StringBuffer();
              result.append( "<pre>" )
                  .append( XmlUtils.entitize( scanRequestResult.getChangedParamsInfo( i + 1 ) ) )
                  .append( "</pre>" );

              for( String message : scanRequestResult.getMessages() )
              {
                result.append( "<pre>" ).append( XmlUtils.entitize( message ) ).append( "</pre>" );
              }

              secTestCase.addNewError().setStringValue( result.toString() );
              errorCount++ ;
            }
          }
        }
      }

      report.setNoofErrorsInTestSuite( errorCount );
      report.setTotalTime( testRunner.getTimeTaken() );

      reports.put( reportName, report );
    }
  }

  @Override
  public void afterSecurityScan( TestCaseRunner testRunner, SecurityTestRunContext runContext,
      SecurityScanResult securityScanResult )
  {

  }

  @Override
  public void afterSecurityScanRequest( TestCaseRunner testRunner, SecurityTestRunContext runContext,
      SecurityScanRequestResult securityScanReqResult )
  {
  }

  @Override
  public void afterStep( TestCaseRunner testRunner, SecurityTestRunContext runContext, SecurityTestStepResult result )
  {
  }

  @Override
  public void beforeRun( TestCaseRunner testRunner, SecurityTestRunContext runContext )
  {

  }

  @Override
  public void beforeSecurityScan( TestCaseRunner testRunner, SecurityTestRunContext runContext,
      SecurityScan securityScan )
  {
  }

  @Override
  public void beforeStep( TestCaseRunner testRunner, SecurityTestRunContext runContext, TestStepResult testStepResult )
  {
  }
}
TOP

Related Classes of com.eviware.soapui.report.JUnitSecurityReportCollector

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.