<?php
require_once 'PHPUnit/Framework.php';
require_once dirname(__FILE__) . '/../src/gtAutoload.php';


class gtOptionalSectionsTest extends PHPUnit_Framework_TestCase
{
  public function testBasic() {

    $clo = new gtCommandLineOptions();
    $clo->parse(array('generate-phpt.php', '-s', 'skipif:ini'));

    $opt = new gtOptionalSections();
    $opt->setOptions($clo);
    $a = $opt->getOptions();
    $this->assertEquals(true, $a['skipif']);
    $this->assertEquals(true, $a['ini']);
    $this->assertEquals(false, $a['clean']);
  }

  /**
   * @expectedException RuntimeException
   */
  public function testException() {
    $clo = new gtCommandLineOptions();
    $clo->parse(array('generate-phpt.php', '-s', 'blah'));
    $opt = new gtOptionalSections();
    $opt->setOptions($clo);
  }

  public function testSkip() {
    $clo = new gtCommandLineOptions();
    $clo->parse(array('generate-phpt.php', '-s', 'skipif', '-x', 'standard'));
    $opt = new gtOptionalSections();
    $opt->setOptions($clo);

    $opt = new gtOptionalSections();
    $opt->setOptions($clo);

    $this->assertEquals('standard', $opt->getSkipifExt() );

  }

  public function testSkipKey() {
    $clo = new gtCommandLineOptions();
    $clo->parse(array('generate-phpt.php', '-s', 'skipif', '-k', 'win'));
    $opt = new gtOptionalSections();
    $opt->setOptions($clo);

    $opt = new gtOptionalSections();
    $opt->setOptions($clo);

    $this->assertEquals('win', $opt->getSkipifKey() );

  }

}
?>
