| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 | <?php
require_once 'Swift/Tests/IdenticalBinaryExpectation.php';
/**
 * A base test case with some custom expectations.
 * @package Swift
 * @subpackage Tests
 * @author Chris Corbyn
 */
class Swift_Tests_SwiftUnitTestCase extends UnitTestCase
{
  /** An instance of the Yay_Mockery class */
  private $_mockery;
  
  /**
   * Decorates SimpleTest's implementation to auto-validate mock objects.
   */
  public function after($method)
  {
    try
    {
      $this->_mockery()->assertIsSatisfied();
    }
    catch (Yay_NotSatisfiedException $e)
    {
      $this->fail($e->getMessage());
    }
    $this->_mockery = null;
    return parent::after($method); 
  }
  
  /**
   * Assert two binary strings are an exact match.
   * @param string $a
   * @param string $b
   * @param string $s formatted message
   */
  public function assertIdenticalBinary($a, $b, $s = '%s')
  {
    return $this->assert(new Swift_Tests_IdenticalBinaryExpectation($a), $b, $s);
  }
  // -- Protected methods
  
  /**
   * Returns a singleton-per-test method for Yay_Mockery.
   * @return Yay_Mockery
   */
  protected function _mockery()
  {
    if (!isset($this->_mockery))
    {
      $this->_mockery = new Yay_Mockery();
    }
    return $this->_mockery;
  }
  /**
   * Create a mock object.
   * @param string $class
   * @return Yay_Mock
   */
  protected function _mock($class)
  {
    return $this->_mockery()->mock($class);
  }
  
  /**
   * Add mock expectations.
   * @param Yay_Expectations $expectations
   */
  protected function _checking($expectations)
  {
    return $this->_mockery()->checking($expectations);
  }
  
  /**
   * Create a mock object which does nothing.
   * @param string $class
   * @return Yay_Mock
   */
  protected function _stub($class)
  {
    $stub = $this->_mockery()->mock($class);
    $this->_mockery()->checking(Yay_Expectations::create()
      -> ignoring($stub)
      );
    return $stub;
  }
  
  protected function _states($machineName)
  {
    return $this->_mockery()->states($machineName);
  }
  
  protected function _sequence($sequenceName)
  {
    return $this->_mockery()->sequence($sequenceName);
  }
  
}
 |