Subversion-Projekte lars-tiefland.laravel_shop

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
148 lars 1
<?php
2
/**
3
 * Mockery
4
 *
5
 * LICENSE
6
 *
7
 * This source file is subject to the new BSD license that is bundled
8
 * with this package in the file LICENSE.txt.
9
 * It is also available through the world-wide-web at this URL:
10
 * http://github.com/padraic/mockery/blob/master/LICENSE
11
 * If you did not receive a copy of the license and are unable to
12
 * obtain it through the world-wide-web, please send an email
13
 * to padraic@php.net so we can send you a copy immediately.
14
 *
15
 * @category   Mockery
16
 * @package    Mockery
17
 * @copyright  Copyright (c) 2010 Pádraic Brady (http://blog.astrumfutura.com)
18
 * @license    http://github.com/padraic/mockery/blob/master/LICENSE New BSD License
19
 */
20
 
21
namespace Mockery;
22
 
23
class CompositeExpectation implements ExpectationInterface
24
{
25
    /**
26
     * Stores an array of all expectations for this composite
27
     *
28
     * @var array
29
     */
30
    protected $_expectations = array();
31
 
32
    /**
33
     * Add an expectation to the composite
34
     *
35
     * @param \Mockery\Expectation|\Mockery\CompositeExpectation $expectation
36
     * @return void
37
     */
38
    public function add($expectation)
39
    {
40
        $this->_expectations[] = $expectation;
41
    }
42
 
43
    /**
44
     * @param mixed ...$args
45
     */
46
    public function andReturn(...$args)
47
    {
48
        return $this->__call(__FUNCTION__, $args);
49
    }
50
 
51
    /**
52
     * Set a return value, or sequential queue of return values
53
     *
54
     * @param mixed ...$args
55
     * @return self
56
     */
57
    public function andReturns(...$args)
58
    {
59
        return call_user_func_array([$this, 'andReturn'], $args);
60
    }
61
 
62
    /**
63
     * Intercept any expectation calls and direct against all expectations
64
     *
65
     * @param string $method
66
     * @param array $args
67
     * @return self
68
     */
69
    public function __call($method, array $args)
70
    {
71
        foreach ($this->_expectations as $expectation) {
72
            call_user_func_array(array($expectation, $method), $args);
73
        }
74
        return $this;
75
    }
76
 
77
    /**
78
     * Return order number of the first expectation
79
     *
80
     * @return int
81
     */
82
    public function getOrderNumber()
83
    {
84
        reset($this->_expectations);
85
        $first = current($this->_expectations);
86
        return $first->getOrderNumber();
87
    }
88
 
89
    /**
90
     * Return the parent mock of the first expectation
91
     *
92
     * @return \Mockery\MockInterface|\Mockery\LegacyMockInterface
93
     */
94
    public function getMock()
95
    {
96
        reset($this->_expectations);
97
        $first = current($this->_expectations);
98
        return $first->getMock();
99
    }
100
 
101
    /**
102
     * Mockery API alias to getMock
103
     *
104
     * @return \Mockery\LegacyMockInterface|\Mockery\MockInterface
105
     */
106
    public function mock()
107
    {
108
        return $this->getMock();
109
    }
110
 
111
    /**
112
     * Starts a new expectation addition on the first mock which is the primary
113
     * target outside of a demeter chain
114
     *
115
     * @param mixed ...$args
116
     * @return \Mockery\Expectation
117
     */
118
    public function shouldReceive(...$args)
119
    {
120
        reset($this->_expectations);
121
        $first = current($this->_expectations);
122
        return call_user_func_array(array($first->getMock(), 'shouldReceive'), $args);
123
    }
124
 
125
    /**
126
     * Starts a new expectation addition on the first mock which is the primary
127
     * target outside of a demeter chain
128
     *
129
     * @param mixed ...$args
130
     * @return \Mockery\Expectation
131
     */
132
    public function shouldNotReceive(...$args)
133
    {
134
        reset($this->_expectations);
135
        $first = current($this->_expectations);
136
        return call_user_func_array(array($first->getMock(), 'shouldNotReceive'), $args);
137
    }
138
 
139
    /**
140
     * Return the string summary of this composite expectation
141
     *
142
     * @return string
143
     */
144
    public function __toString()
145
    {
146
        $return = '[';
147
        $parts = array();
148
        foreach ($this->_expectations as $exp) {
149
            $parts[] = (string) $exp;
150
        }
151
        $return .= implode(', ', $parts) . ']';
152
        return $return;
153
    }
154
}