<?php

/**
 * Container for all possible variation test cases
 */
abstract class gtVariationContainer {

  protected $variationTests;

  protected $dataTypes = array (
                         'array',
                         'boolean',
                         'emptyUnsetUndefNull',
                         'float',
                         'int',
                         'object',
                         'string',
                         );



  /**
   * Return an instance of a containers for either function or method tests
   *
   * @param string $type
   * @return variation test container
   */
   public static function getInstance ($optionalSections, $type = 'function') {

    if($type == 'function') {
      return new gtVariationContainerFunction($optionalSections);
    }
    if($type =='method') {
      return new gtVariationContainerMethod($optionalSections);
    }

  }


  public function constructAll() {
  }


  /**
   * Returns all varaition tests as an array of arrays
   *
   * @return string
   */
  public function getVariationTests() {
    return $this->variationTests;
  }

}
?>
