1<?php
2/*
3 * This file is part of the PHPUnit_MockObject package.
4 *
5 * (c) Sebastian Bergmann <sebastian@phpunit.de>
6 *
7 * For the full copyright and license information, please view the LICENSE
8 * file that was distributed with this source code.
9 */
10
11/**
12 * Builder interface for parameter matchers.
13 *
14 * @since Interface available since Release 1.0.0
15 */
16interface PHPUnit_Framework_MockObject_Builder_ParametersMatch extends PHPUnit_Framework_MockObject_Builder_Match
17{
18    /**
19     * Sets the parameters to match for, each parameter to this funtion will
20     * be part of match. To perform specific matches or constraints create a
21     * new PHPUnit_Framework_Constraint and use it for the parameter.
22     * If the parameter value is not a constraint it will use the
23     * PHPUnit_Framework_Constraint_IsEqual for the value.
24     *
25     * Some examples:
26     * <code>
27     * // match first parameter with value 2
28     * $b->with(2);
29     * // match first parameter with value 'smock' and second identical to 42
30     * $b->with('smock', new PHPUnit_Framework_Constraint_IsEqual(42));
31     * </code>
32     *
33     * @return PHPUnit_Framework_MockObject_Builder_ParametersMatch
34     */
35    public function with(...$arguments);
36
37    /**
38     * Sets a matcher which allows any kind of parameters.
39     *
40     * Some examples:
41     * <code>
42     * // match any number of parameters
43     * $b->withAnyParameters();
44     * </code>
45     *
46     * @return PHPUnit_Framework_MockObject_Matcher_AnyParameters
47     */
48    public function withAnyParameters();
49}
50