Pull merge.
[yaffs-website] / vendor / phpspec / prophecy / src / Prophecy / Argument / Token / IdenticalValueToken.php
1 <?php
2
3 /*
4  * This file is part of the Prophecy.
5  * (c) Konstantin Kudryashov <ever.zet@gmail.com>
6  *     Marcello Duarte <marcello.duarte@gmail.com>
7  *
8  * For the full copyright and license information, please view the LICENSE
9  * file that was distributed with this source code.
10  */
11
12 namespace Prophecy\Argument\Token;
13
14 use Prophecy\Util\StringUtil;
15
16 /**
17  * Identical value token.
18  *
19  * @author Florian Voutzinos <florian@voutzinos.com>
20  */
21 class IdenticalValueToken implements TokenInterface
22 {
23     private $value;
24     private $string;
25     private $util;
26
27     /**
28      * Initializes token.
29      *
30      * @param mixed      $value
31      * @param StringUtil $util
32      */
33     public function __construct($value, StringUtil $util = null)
34     {
35         $this->value = $value;
36         $this->util  = $util ?: new StringUtil();
37     }
38
39     /**
40      * Scores 11 if argument matches preset value.
41      *
42      * @param $argument
43      *
44      * @return bool|int
45      */
46     public function scoreArgument($argument)
47     {
48         return $argument === $this->value ? 11 : false;
49     }
50
51     /**
52      * Returns false.
53      *
54      * @return bool
55      */
56     public function isLast()
57     {
58         return false;
59     }
60
61     /**
62      * Returns string representation for token.
63      *
64      * @return string
65      */
66     public function __toString()
67     {
68         if (null === $this->string) {
69             $this->string = sprintf('identical(%s)', $this->util->stringify($this->value));
70         }
71
72         return $this->string;
73     }
74 }