All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.testtoolinterfaces.testresult.TestStepResult Maven / Gradle / Ivy

/**
 * 
 */
package org.testtoolinterfaces.testresult;

import java.util.ArrayList;
//import java.util.Hashtable;
import java.util.Iterator;
//import java.util.Map;

import org.testtoolinterfaces.testsuite.ParameterArrayList;
import org.testtoolinterfaces.testsuite.TestStep;
import org.testtoolinterfaces.testsuite.TestStepCommand;
import org.testtoolinterfaces.testsuite.TestStepScript;

import org.testtoolinterfaces.utils.Trace;

/**
 * @author arjan.kranenburg
 *
 */
public class TestStepResult extends TestResult
{
	private TestStep myTestStep;

    private ArrayList myObserverCollection;
    private ArrayList mySubStepResults;

    private ArrayList myParameterResults;

	/**
	 * @param aTestCaseName
	 */
	public TestStepResult(TestStep aTestStep)
	{
		super();

	    Trace.println(Trace.CONSTRUCTOR, "TestStepResult( " + aTestStep + " )" );
		myTestStep = aTestStep;

		myObserverCollection = new ArrayList();
	    mySubStepResults = new ArrayList();
	}

	public int getSequenceNr()
	{
	    Trace.println(Trace.GETTER);
		return myTestStep.getSequenceNr();
	}
	
	public String getDescription()
	{
	    Trace.println(Trace.GETTER);
		return myTestStep.getDescription();
	}

	public void setDisplayName( String aDisplayName )
	{
	    Trace.println(Trace.SETTER);
		myTestStep.setDisplayName(aDisplayName);
	}
	
	public String getDisplayName()
	{
	    Trace.println(Trace.GETTER);
		return myTestStep.getDisplayName();
	}
	
	public String getCommand()
	{
	    Trace.println(Trace.GETTER);
	    if ( myTestStep.getClass().equals(TestStepCommand.class) )
	    {
			return ((TestStepCommand) myTestStep).getCommand();	    	
	    }
	    return "";
	}

	public String getScript()
	{
	    Trace.println(Trace.GETTER);
	    if ( myTestStep.getClass().equals(TestStepScript.class) )
	    {
			return ((TestStepScript) myTestStep).getScript();	    	
	    }
	    return "";
	}

	@Override
	public void setExecutionPath(String anExecutionPath)
	{
		super.setExecutionPath(anExecutionPath);

		Iterator subStepItr = mySubStepResults.iterator();
		while (subStepItr.hasNext())
		{
			subStepItr.next().setExecutionPath(anExecutionPath + "." + this.getId());
		}
	}

	public ParameterArrayList getParameters()
	{
	    Trace.println(Trace.GETTER);
		return myTestStep.getParameters();
	}

	public void addSubStep( TestStepResult aSubStepResult )
	{
	    Trace.println(Trace.SETTER);
	    mySubStepResults.add(aSubStepResult);
	    
	    this.setResult( aSubStepResult.getResult() );
	}

	public ArrayList getSubSteps()
	{
	    Trace.println(Trace.GETTER);
		return mySubStepResults;
	}
	
    public ArrayList getParameterResults()
    {
		return myParameterResults;
	}

	public void setParameterResults(ArrayList aParameterResults)
	{
		myParameterResults = aParameterResults;
	}

	// Implementation of the Observer Pattern
	protected void notifyObservers()
	{
	    Trace.println(Trace.EXEC_PLUS);

	    for (TestStepResultObserver observer : myObserverCollection)
	    {
	    	observer.notify(this);
	    }
	}
	
	public void register( TestStepResultObserver anObserver )
	{
	    Trace.println(Trace.SETTER);
	    myObserverCollection.add(anObserver);
	}

	public void unRegisterObserver( TestStepResultObserver anObserver )
	{
	    Trace.println(Trace.SETTER);
	    myObserverCollection.remove( anObserver );
	}

	@Override
	public String getId()
	{
		if ( myTestStep instanceof TestStepCommand )
		{
			return ((TestStepCommand) myTestStep).getCommand() + "_" + myTestStep.getSequenceNr();
		} //else
		if ( myTestStep instanceof TestStepScript )
		{
			return ((TestStepScript) myTestStep).getScript() + "_" + myTestStep.getSequenceNr();
		} //else

		return myTestStep.getType().toString() + "_" + myTestStep.getSequenceNr();
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy