annotate 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
rev   line source
Chris@0 1 <?php
Chris@0 2
Chris@0 3 namespace spec\Prophecy\Argument\Token;
Chris@0 4
Chris@0 5 use PhpSpec\ObjectBehavior;
Chris@0 6
Chris@0 7 class ObjectStateTokenSpec extends ObjectBehavior
Chris@0 8 {
Chris@0 9 function let()
Chris@0 10 {
Chris@0 11 $this->beConstructedWith('getName', 'stdClass');
Chris@0 12 }
Chris@0 13
Chris@0 14 function it_implements_TokenInterface()
Chris@0 15 {
Chris@0 16 $this->shouldBeAnInstanceOf('Prophecy\Argument\Token\TokenInterface');
Chris@0 17 }
Chris@0 18
Chris@0 19 function it_is_not_last()
Chris@0 20 {
Chris@0 21 $this->shouldNotBeLast();
Chris@0 22 }
Chris@0 23
Chris@0 24 function it_scores_8_if_argument_object_has_specific_method_state(\ReflectionClass $reflection)
Chris@0 25 {
Chris@0 26 $reflection->getName()->willReturn('stdClass');
Chris@0 27
Chris@0 28 $this->scoreArgument($reflection)->shouldReturn(8);
Chris@0 29 }
Chris@0 30
Chris@0 31 function it_scores_8_if_argument_object_has_specific_property_state(\stdClass $class)
Chris@0 32 {
Chris@0 33 $class->getName = 'stdClass';
Chris@0 34
Chris@0 35 $this->scoreArgument($class)->shouldReturn(8);
Chris@0 36 }
Chris@0 37
Chris@0 38 function it_does_not_score_if_argument_method_state_does_not_match()
Chris@0 39 {
Chris@0 40 $value = new ObjectStateTokenFixtureB('ABC');
Chris@0 41 $value2 = new ObjectStateTokenFixtureB('CBA');
Chris@0 42
Chris@0 43 $this->beConstructedWith('getSelf', $value);
Chris@0 44 $this->scoreArgument($value2)->shouldReturn(false);
Chris@0 45 }
Chris@0 46
Chris@0 47 function it_does_not_score_if_argument_property_state_does_not_match(\stdClass $class)
Chris@0 48 {
Chris@0 49 $class->getName = 'SplFileInfo';
Chris@0 50
Chris@0 51 $this->scoreArgument($class)->shouldReturn(false);
Chris@0 52 }
Chris@0 53
Chris@0 54 function it_does_not_score_if_argument_object_does_not_have_method_or_property(ObjectStateTokenFixtureA $class)
Chris@0 55 {
Chris@0 56 $this->scoreArgument($class)->shouldReturn(false);
Chris@0 57 }
Chris@0 58
Chris@0 59 function it_does_not_score_if_argument_is_not_object()
Chris@0 60 {
Chris@0 61 $this->scoreArgument(42)->shouldReturn(false);
Chris@0 62 }
Chris@0 63
Chris@0 64 function it_has_simple_string_representation()
Chris@0 65 {
Chris@0 66 $this->__toString()->shouldReturn('state(getName(), "stdClass")');
Chris@0 67 }
Chris@0 68 }
Chris@0 69
Chris@0 70 class ObjectStateTokenFixtureA
Chris@0 71 {
Chris@0 72 public $errors;
Chris@0 73 }
Chris@0 74
Chris@0 75 class ObjectStateTokenFixtureB extends ObjectStateTokenFixtureA
Chris@0 76 {
Chris@0 77 public $errors;
Chris@0 78 public $value = null;
Chris@0 79
Chris@0 80 public function __construct($value)
Chris@0 81 {
Chris@0 82 $this->value = $value;
Chris@0 83 }
Chris@0 84
Chris@0 85 public function getSelf()
Chris@0 86 {
Chris@0 87 return $this;
Chris@0 88 }
Chris@0 89 }