PageRenderTime 14ms CodeModel.GetById 11ms app.highlight 1ms RepoModel.GetById 1ms app.codeStats 0ms

/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/IdenticalValueToken.php

https://bitbucket.org/alan_cordova/api-sb-map
PHP | 74 lines | 29 code | 9 blank | 36 comment | 1 complexity | d2ee5490e286d64a4e4d8be7309b0d71 MD5 | raw file
 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
12namespace Prophecy\Argument\Token;
13
14use Prophecy\Util\StringUtil;
15
16/**
17 * Identical value token.
18 *
19 * @author Florian Voutzinos <florian@voutzinos.com>
20 */
21class 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}