Update v1.0.6
This commit is contained in:
74
vendor/phpspec/phpspec/features/bootstrap/Matcher/ApplicationOutputMatcher.php
vendored
Normal file
74
vendor/phpspec/phpspec/features/bootstrap/Matcher/ApplicationOutputMatcher.php
vendored
Normal file
@@ -0,0 +1,74 @@
|
||||
<?php
|
||||
|
||||
namespace Matcher;
|
||||
|
||||
use PhpSpec\Exception\Example\FailureException;
|
||||
use PhpSpec\Matcher\MatcherInterface;
|
||||
use Symfony\Component\Console\Tester\ApplicationTester;
|
||||
|
||||
class ApplicationOutputMatcher implements MatcherInterface
|
||||
{
|
||||
|
||||
/**
|
||||
* Checks if matcher supports provided subject and matcher name.
|
||||
*
|
||||
* @param string $name
|
||||
* @param mixed $subject
|
||||
* @param array $arguments
|
||||
*
|
||||
* @return Boolean
|
||||
*/
|
||||
public function supports($name, $subject, array $arguments)
|
||||
{
|
||||
return ($name == 'haveOutput' && $subject instanceof ApplicationTester);
|
||||
}
|
||||
|
||||
/**
|
||||
* Evaluates positive match.
|
||||
*
|
||||
* @param string $name
|
||||
* @param mixed $subject
|
||||
* @param array $arguments
|
||||
*/
|
||||
public function positiveMatch($name, $subject, array $arguments)
|
||||
{
|
||||
$expected = $this->normalize($arguments[0]);
|
||||
$actual = $this->normalize($subject->getDisplay());
|
||||
if (strpos($actual, $expected) === false) {
|
||||
throw new FailureException(sprintf(
|
||||
"Application output did not contain expected '%s'. Actual output:\n'%s'" ,
|
||||
$expected,
|
||||
$subject->getDisplay()
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
private function normalize($string)
|
||||
{
|
||||
$string = preg_replace('/\([0-9]+ms\)/', '', $string);
|
||||
|
||||
return $string;
|
||||
}
|
||||
|
||||
/**
|
||||
* Evaluates negative match.
|
||||
*
|
||||
* @param string $name
|
||||
* @param mixed $subject
|
||||
* @param array $arguments
|
||||
*/
|
||||
public function negativeMatch($name, $subject, array $arguments)
|
||||
{
|
||||
throw new FailureException('Negative application output matcher not implemented');
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns matcher priority.
|
||||
*
|
||||
* @return integer
|
||||
*/
|
||||
public function getPriority()
|
||||
{
|
||||
return 51;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user