diff vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/ObjectStateTokenSpec.php @ 0:4c8ae668cc8c

Initial import (non-working)
author Chris Cannam
date Wed, 29 Nov 2017 16:09:58 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/phpspec/prophecy/spec/Prophecy/Argument/Token/ObjectStateTokenSpec.php	Wed Nov 29 16:09:58 2017 +0000
@@ -0,0 +1,89 @@
+<?php
+
+namespace spec\Prophecy\Argument\Token;
+
+use PhpSpec\ObjectBehavior;
+
+class ObjectStateTokenSpec extends ObjectBehavior
+{
+    function let()
+    {
+        $this->beConstructedWith('getName', 'stdClass');
+    }
+
+    function it_implements_TokenInterface()
+    {
+        $this->shouldBeAnInstanceOf('Prophecy\Argument\Token\TokenInterface');
+    }
+
+    function it_is_not_last()
+    {
+        $this->shouldNotBeLast();
+    }
+
+    function it_scores_8_if_argument_object_has_specific_method_state(\ReflectionClass $reflection)
+    {
+        $reflection->getName()->willReturn('stdClass');
+
+        $this->scoreArgument($reflection)->shouldReturn(8);
+    }
+
+    function it_scores_8_if_argument_object_has_specific_property_state(\stdClass $class)
+    {
+        $class->getName = 'stdClass';
+
+        $this->scoreArgument($class)->shouldReturn(8);
+    }
+
+    function it_does_not_score_if_argument_method_state_does_not_match()
+    {
+        $value = new ObjectStateTokenFixtureB('ABC');
+        $value2 = new ObjectStateTokenFixtureB('CBA');
+
+        $this->beConstructedWith('getSelf', $value);
+        $this->scoreArgument($value2)->shouldReturn(false);
+    }
+
+    function it_does_not_score_if_argument_property_state_does_not_match(\stdClass $class)
+    {
+        $class->getName = 'SplFileInfo';
+
+        $this->scoreArgument($class)->shouldReturn(false);
+    }
+
+    function it_does_not_score_if_argument_object_does_not_have_method_or_property(ObjectStateTokenFixtureA $class)
+    {
+        $this->scoreArgument($class)->shouldReturn(false);
+    }
+
+    function it_does_not_score_if_argument_is_not_object()
+    {
+        $this->scoreArgument(42)->shouldReturn(false);
+    }
+
+    function it_has_simple_string_representation()
+    {
+        $this->__toString()->shouldReturn('state(getName(), "stdClass")');
+    }
+}
+
+class ObjectStateTokenFixtureA
+{
+    public $errors;
+}
+
+class ObjectStateTokenFixtureB extends ObjectStateTokenFixtureA
+{
+    public $errors;
+    public $value = null;
+
+    public function __construct($value)
+    {
+        $this->value = $value;
+    }
+
+    public function getSelf()
+    {
+        return $this;
+    }
+}