Chris@0: beConstructedWith('getName', 'stdClass'); Chris@0: } Chris@0: Chris@0: function it_implements_TokenInterface() Chris@0: { Chris@0: $this->shouldBeAnInstanceOf('Prophecy\Argument\Token\TokenInterface'); Chris@0: } Chris@0: Chris@0: function it_is_not_last() Chris@0: { Chris@0: $this->shouldNotBeLast(); Chris@0: } Chris@0: Chris@0: function it_scores_8_if_argument_object_has_specific_method_state(\ReflectionClass $reflection) Chris@0: { Chris@0: $reflection->getName()->willReturn('stdClass'); Chris@0: Chris@0: $this->scoreArgument($reflection)->shouldReturn(8); Chris@0: } Chris@0: Chris@0: function it_scores_8_if_argument_object_has_specific_property_state(\stdClass $class) Chris@0: { Chris@0: $class->getName = 'stdClass'; Chris@0: Chris@0: $this->scoreArgument($class)->shouldReturn(8); Chris@0: } Chris@0: Chris@0: function it_does_not_score_if_argument_method_state_does_not_match() Chris@0: { Chris@0: $value = new ObjectStateTokenFixtureB('ABC'); Chris@0: $value2 = new ObjectStateTokenFixtureB('CBA'); Chris@0: Chris@0: $this->beConstructedWith('getSelf', $value); Chris@0: $this->scoreArgument($value2)->shouldReturn(false); Chris@0: } Chris@0: Chris@0: function it_does_not_score_if_argument_property_state_does_not_match(\stdClass $class) Chris@0: { Chris@0: $class->getName = 'SplFileInfo'; Chris@0: Chris@0: $this->scoreArgument($class)->shouldReturn(false); Chris@0: } Chris@0: Chris@0: function it_does_not_score_if_argument_object_does_not_have_method_or_property(ObjectStateTokenFixtureA $class) Chris@0: { Chris@0: $this->scoreArgument($class)->shouldReturn(false); Chris@0: } Chris@0: Chris@0: function it_does_not_score_if_argument_is_not_object() Chris@0: { Chris@0: $this->scoreArgument(42)->shouldReturn(false); Chris@0: } Chris@0: Chris@0: function it_has_simple_string_representation() Chris@0: { Chris@0: $this->__toString()->shouldReturn('state(getName(), "stdClass")'); Chris@0: } Chris@0: } Chris@0: Chris@0: class ObjectStateTokenFixtureA Chris@0: { Chris@0: public $errors; Chris@0: } Chris@0: Chris@0: class ObjectStateTokenFixtureB extends ObjectStateTokenFixtureA Chris@0: { Chris@0: public $errors; Chris@0: public $value = null; Chris@0: Chris@0: public function __construct($value) Chris@0: { Chris@0: $this->value = $value; Chris@0: } Chris@0: Chris@0: public function getSelf() Chris@0: { Chris@0: return $this; Chris@0: } Chris@0: }