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-2014 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\CountValidator;
22:
23: abstract class CountValidatorAbstract
24: {
25:
26: /**
27: * Expectation for which this validator is assigned
28: *
29: * @var \Mockery\Expectation
30: */
31: protected $_expectation = null;
32:
33: /**
34: * Call count limit
35: *
36: * @var int
37: */
38: protected $_limit = null;
39:
40: /**
41: * Set Expectation object and upper call limit
42: *
43: * @param \Mockery\Expectation $expectation
44: * @param int $limit
45: */
46: public function __construct(\Mockery\Expectation $expectation, $limit)
47: {
48: $this->_expectation = $expectation;
49: $this->_limit = $limit;
50: }
51:
52: /**
53: * Checks if the validator can accept an additional nth call
54: *
55: * @param int $n
56: * @return bool
57: */
58: public function isEligible($n)
59: {
60: return ($n < $this->_limit);
61: }
62:
63: /**
64: * Validate the call count against this validator
65: *
66: * @param int $n
67: * @return bool
68: */
69: abstract public function validate($n);
70:
71: }
72: