You are here

class NameGeneratorSpec in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 vendor/phpspec/prophecy/spec/Prophecy/Doubler/NameGeneratorSpec.php \spec\Prophecy\Doubler\NameGeneratorSpec

Hierarchy

Expanded class hierarchy of NameGeneratorSpec

File

vendor/phpspec/prophecy/spec/Prophecy/Doubler/NameGeneratorSpec.php, line 7

Namespace

spec\Prophecy\Doubler
View source
class NameGeneratorSpec extends ObjectBehavior {

  /**
   * @param \ReflectionClass $class
   */
  function its_name_generates_name_based_on_simple_class_reflection($class) {
    $class
      ->getName()
      ->willReturn('stdClass');
    $this
      ->name($class, array())
      ->shouldStartWith('Double\\stdClass\\');
  }

  /**
   * @param \ReflectionClass $class
   */
  function its_name_generates_name_based_on_namespaced_class_reflection($class) {
    $class
      ->getName()
      ->willReturn('Some\\Custom\\Class');
    $this
      ->name($class, array())
      ->shouldStartWith('Double\\Some\\Custom\\Class\\P');
  }

  /**
   * @param \ReflectionClass $interface1
   * @param \ReflectionClass $interface2
   */
  function its_name_generates_name_based_on_interface_shortnames($interface1, $interface2) {
    $interface1
      ->getShortName()
      ->willReturn('HandlerInterface');
    $interface2
      ->getShortName()
      ->willReturn('LoaderInterface');
    $this
      ->name(null, array(
      $interface1,
      $interface2,
    ))
      ->shouldStartWith('Double\\HandlerInterface\\LoaderInterface\\P');
  }
  function it_generates_proper_name_for_no_class_and_interfaces_list() {
    $this
      ->name(null, array())
      ->shouldStartWith('Double\\stdClass\\P');
  }

  /**
   * @param \ReflectionClass $class
   * @param \ReflectionClass $interface1
   * @param \ReflectionClass $interface2
   */
  function its_name_generates_name_based_only_on_class_if_its_available($class, $interface1, $interface2) {
    $class
      ->getName()
      ->willReturn('Some\\Custom\\Class');
    $interface1
      ->getShortName()
      ->willReturn('HandlerInterface');
    $interface2
      ->getShortName()
      ->willReturn('LoaderInterface');
    $this
      ->name($class, array(
      $interface1,
      $interface2,
    ))
      ->shouldStartWith('Double\\Some\\Custom\\Class\\P');
  }
  public function getMatchers() {
    return array(
      'startWith' => function ($subject, $string) {
        return 0 === strpos($subject, $string);
      },
    );
  }

}

Members