mageekguy\atoum\asserters\adapter\call::exactly PHP Метод

exactly() публичный Метод

public exactly ( $number, $failMessage = null )
    public function exactly($number, $failMessage = null)
    {
        $callsNumber = $this->removeFromManager()->countBeforeAndAfterCalls();
        if ((int) $number != $number) {
            throw new atoum\exceptions\logic\invalidArgument('Argument 1 of ' . __FUNCTION__ . ' must be an integer');
        }
        if ($callsNumber == $number) {
            $this->pass();
        } else {
            if ($failMessage === null) {
                $failMessage = $this->__('%s is called %d time instead of %d', '%s is called %d times instead of %d', $callsNumber, $this->call, $callsNumber, $number);
                if (sizeof($this->beforeCalls) > 0) {
                    $beforeCalls = array();
                    foreach ($this->beforeCalls as $asserter) {
                        $beforeCalls[] = (string) $asserter->getCall();
                    }
                    $failMessage = $this->_('%s before %s', $failMessage, join(', ', $beforeCalls));
                }
                if (sizeof($this->afterCalls) > 0) {
                    $afterCalls = array();
                    foreach ($this->afterCalls as $asserter) {
                        $afterCalls[] = (string) $asserter->getCall();
                    }
                    $failMessage = $this->_('%s after %s', $failMessage, join(', ', $afterCalls));
                }
                $failMessage .= $this->getCallsAsString();
            }
            $this->fail($failMessage);
        }
        return $this;
    }