/*
** Module   : Testable.java
** Abstract : API for delegating the execution and tracking of a single
**            testable activity
**
** Copyright (c) 2009-2021, Golden Code Development Corporation.
**
** -#- -I- --Date-- ---------------------------------------Description----------------------------------------
** 001 GES 20090113 API for delegating the execution and tracking of a single testable activity.
** 002 CA  20210827 Refactored to allow other test types, beside terminal (which can be executed from the same 
**                  test suite).  Added SOAP and REST web service tests.
*/

/*
** This program is free software: you can redistribute it and/or modify
** it under the terms of the GNU Affero General Public License as
** published by the Free Software Foundation, either version 3 of the
** License, or (at your option) any later version.
**
** This program 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 Affero General Public License for more details.
**
** You should have received a copy of the GNU Affero General Public License
** along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

package com.goldencode.harness.test;

import com.goldencode.harness.*;

/**
 * API for delegating the execution of a testable activity.
 */
public interface Testable
extends Reportable
{
   /**
    * Execute a testable activity. The results of the processing must be stored such that they can be 
    * retrieved after this method returns.
    */
   public void execute();
   
   /**
    * Get the executor type of this test.
    * 
    * @return   The {@link TestExecutor}, by default. 
    */
   public default Class<? extends TestExecutor> getExecutor()
   {
      return TestExecutor.class;
   }
}
