作者:edwardricard
项目:zensk
function it_does_not_generate_interface_when_prompt_is_answered_with_no(IO $io, ExampleEvent $exampleEvent, SuiteEvent $suiteEvent, GeneratorManager $generator)
{
$io->askConfirmation('Would you like me to generate an interface `Example\\ExampleClass` for you?')->willReturn(false);
$this->afterExample($exampleEvent);
$this->afterSuite($suiteEvent);
$generator->generate(Argument::cetera())->shouldNotHaveBeenCalled();
$suiteEvent->markAsWorthRerunning()->shouldNotHaveBeenCalled();
}
作者:drickferreir
项目:rastreado
function it_prompts_and_warns_when_one_method_name_is_correct_but_other_reserved($exampleEvent, SuiteEvent $suiteEvent, IO $io, NameCheckerInterface $nameChecker)
{
$this->callAfterExample($exampleEvent, $nameChecker, 'throw', false);
$this->callAfterExample($exampleEvent, $nameChecker, 'foo');
$io->writeBrokenCodeBlock("I cannot generate the method 'throw' for you because it is a reserved keyword", 2)->shouldBeCalled();
$io->askConfirmation('Do you want me to create `stdClass::foo()` for you?')->shouldBeCalled();
$suiteEvent->markAsNotWorthRerunning()->shouldBeCalled();
$this->afterSuite($suiteEvent);
}
作者:umpirsk
项目:phpspe
function it_outputs_progress_as_33_when_3_of_3_examples_have_run_and_one_passed(ExampleEvent $event, IO $io, StatisticsCollector $stats)
{
$stats->getEventsCount()->willReturn(3);
$stats->getCountsHash()->willReturn(array('passed' => 1, 'pending' => 0, 'skipped' => 0, 'failed' => 2, 'broken' => 0));
$stats->getTotalSpecs()->willReturn(3);
$stats->getTotalSpecsCount()->willReturn(3);
$this->afterExample($event);
$expected = '/ skipped: 0% / pending: 0% / passed: 33% / failed: 66% / broken: 0% / 3 examples';
$io->writeTemp($expected)->shouldHaveBeenCalled();
}
作者:Jvbzephi
项目:PhpSpecCodeCoverageExtensio
function it_should_provide_extra_output_in_verbose_mode(\PHP_CodeCoverage $coverage, \PHP_CodeCoverage_Report_HTML $html, SuiteEvent $event, IO $io)
{
$reports = array('html' => $html);
$this->beConstructedWith($coverage, $reports);
$this->setOptions(array('format' => 'html', 'output' => array('html' => 'coverage')));
$io->isVerbose()->willReturn(true);
$this->setIO($io);
$io->writeln('')->shouldBeCalled();
$io->writeln('Generating code coverage report in html format ...')->shouldBeCalled();
$this->afterSuite($event);
}
作者:focuslif
项目:v0.
public function displayFatal(CurrentExampleTracker $currentExample, $error)
{
if (null !== $error && $currentExample->getCurrentExample() || is_null($currentExample->getCurrentExample()) && defined('HHVM_VERSION')) {
ini_set('display_errors', "stderr");
$failedOpen = $this->io->isDecorated() ? '<failed>' : '';
$failedClosed = $this->io->isDecorated() ? '</failed>' : '';
$failedCross = $this->io->isDecorated() ? '✘' : '';
$this->io->writeln("{$failedOpen}{$failedCross} Fatal error happened while executing the following {$failedClosed}");
$this->io->writeln("{$failedOpen} {$currentExample->getCurrentExample()} {$failedClosed}");
$this->io->writeln("{$failedOpen} {$error['message']} in {$error['file']} on line {$error['line']} {$failedClosed}");
}
}
作者:focuslif
项目:v0.
function it_outputs_a_suite_summary(SuiteEvent $event, IO $io, StatisticsCollector $stats)
{
$stats->getEventsCount()->willReturn(1);
$stats->getFailedEvents()->willReturn(array());
$stats->getBrokenEvents()->willReturn(array());
$stats->getPendingEvents()->willReturn(array());
$stats->getSkippedEvents()->willReturn(array());
$stats->getTotalSpecs()->willReturn(15);
$event->getTime()->willReturn(12.345);
$stats->getCountsHash()->willReturn(array('passed' => 1, 'pending' => 0, 'skipped' => 0, 'failed' => 2, 'broken' => 0));
$this->afterSuite($event);
$io->writeln('15 specs')->shouldHaveBeenCalled();
$io->writeln("\n12345ms")->shouldHaveBeenCalled();
$io->write('1 example ')->shouldHaveBeenCalled();
$expected = '(<passed>1 passed</passed>, <failed>2 failed</failed>)';
$io->write($expected)->shouldHaveBeenCalled();
}
作者:qasem2rubi
项目:larave
function it_marks_the_suite_as_being_worth_rerunning_when_generation_happens(IO $io, ExampleEvent $event, SuiteEvent $suiteEvent, MethodNotFoundException $exception)
{
$io->askConfirmation(Argument::any())->willReturn(true);
$exception->getClassname()->willReturn('spec\\PhpSpec\\Listener\\DoubleOfInterface');
$exception->getMethodName()->willReturn('aMethod');
$this->afterExample($event);
$this->afterSuite($suiteEvent);
$suiteEvent->markAsWorthRerunning()->shouldHaveBeenCalled();
}
作者:EnmanuelCod
项目:backend-larave
function let(IO $io)
{
$io->isStopOnFailureEnabled()->willReturn(false);
$this->beConstructedWith($io);
}
作者:HarveyChen
项目:myblo
function it_invokes_method_body_generation_when_prompt_is_answered_yes(MethodCallEvent $methodCallEvent, ExampleEvent $exampleEvent, IO $io, GeneratorManager $generatorManager, ResourceManager $resourceManager, ResourceInterface $resource, SuiteEvent $event)
{
$io->askConfirmation(Argument::any())->willReturn(true);
$resourceManager->createResource(Argument::any())->willReturn($resource);
$methodCallEvent->getSubject()->willReturn(new \StdClass());
$methodCallEvent->getMethod()->willReturn('myMethod');
$this->afterMethodCall($methodCallEvent);
$this->afterExample($exampleEvent);
$this->afterSuite($event);
$generatorManager->generate($resource, 'returnConstant', array('method' => 'myMethod', 'expected' => 100))->shouldHaveBeenCalled();
}
作者:HarveyChen
项目:myblo
/**
* @param IO $io
* @param array $progress
* @param int $total
*/
private function updateProgressBar(IO $io, array $progress, $total)
{
if ($io->isDecorated()) {
$progressBar = implode('', $progress);
$pad = $this->getIO()->getBlockWidth() - strlen(strip_tags($progressBar));
$io->writeTemp($progressBar . str_repeat(' ', $pad + 1) . $total);
} else {
$io->writeTemp('/' . implode('/', $progress) . '/ ' . $total . ' examples');
}
}
作者:focuslif
项目:v0.
function it_outputs_undefined_progress_on_afterexample_event(SpecificationEvent $specEvent, ExampleEvent $exampleEvent, ExampleNode $example, SpecificationNode $spec, IO $io, StatisticsCollector $stats)
{
$specEvent->getSpecification()->willReturn($spec);
$exampleEvent->getExample()->willReturn($example);
$example->getTitle()->willReturn('foobar');
$exampleEvent->getResult()->willReturn(999);
$spec->getTitle()->willReturn('spec1');
$this->beforeSpecification($specEvent);
$this->afterExample($exampleEvent);
$expected = "not ok 1 - spec1: foobar\n ---\n message: 'The example result type was unknown to formatter'\n severity: fail\n ...";
$io->writeln($expected)->shouldHaveBeenCalled();
}
作者:EnmanuelCod
项目:backend-larave
public function beforeSuite()
{
if ($bootstrap = $this->io->getBootstrapPath()) {
if (!is_file($bootstrap)) {
throw new \RuntimeException(sprintf("Bootstrap file '%s' does not exist", $bootstrap));
}
require $bootstrap;
}
}
作者:ngitimfoy
项目:Nyari-AppPH
/**
*
* @param ExampleEvent $event
*
* @throws \PhpSpec\Exception\Example\StopOnFailureException
*/
public function afterExample(ExampleEvent $event)
{
if (!$this->io->isStopOnFailureEnabled()) {
return;
}
if ($event->getResult() === ExampleEvent::FAILED || $event->getResult() === ExampleEvent::BROKEN) {
throw new StopOnFailureException('Example failed', 0, null, $event->getResult());
}
}
作者:focuslif
项目:v0.
/**
* @param ResourceInterface $resource
* @param array $data
*/
public function generate(ResourceInterface $resource, array $data = array())
{
$filepath = $resource->getSrcFilename();
$methodName = $data['name'];
$arguments = $data['arguments'];
$content = $this->getContent($resource, $methodName, $arguments);
$code = $this->appendMethodToCode($this->filesystem->getFileContents($filepath), $content);
$this->filesystem->putFileContents($filepath, $code);
$this->io->writeln(sprintf("<info>Method <value>%s::%s()</value> has been created.</info>\n", $resource->getSrcClassname(), $methodName), 2);
}
作者:franzliedk
项目:phpspe
/**
* @param ResourceInterface $resource
* @param array $data
*/
public function generate(ResourceInterface $resource, array $data = array())
{
$filepath = $resource->getSrcFilename();
$methodName = $data['name'];
$arguments = $data['arguments'];
$content = $this->getContent($resource, $methodName, $arguments);
$code = $this->filesystem->getFileContents($filepath);
$code = preg_replace('/}[ \\n]*$/', rtrim($content) . "\n}\n", trim($code));
$this->filesystem->putFileContents($filepath, $code);
$this->io->writeln(sprintf("\n<info>Method <value>%s::%s()</value> has been created.</info>", $resource->getSrcClassname(), $methodName), 2);
}
作者:EnmanuelCod
项目:backend-larave
/**
* @param ResourceInterface $resource
* @param array $data
*/
public function generate(ResourceInterface $resource, array $data)
{
$filepath = $resource->getSrcFilename();
if (!($content = $this->templates->render('private-constructor', array()))) {
$content = $this->templates->renderString($this->getTemplate(), array());
}
$code = $this->filesystem->getFileContents($filepath);
$code = $this->codeWriter->insertMethodFirstInClass($code, $content);
$this->filesystem->putFileContents($filepath, $code);
$this->io->writeln("<info>Private constructor has been created.</info>\n", 2);
}
作者:araine
项目:phpspe
/**
* @param ResourceInterface $resource
* @param array $data
*/
public function generate(ResourceInterface $resource, array $data)
{
$filepath = $resource->getSrcFilename();
if (!($content = $this->templates->render('private-constructor', array()))) {
$content = $this->templates->renderString($this->getTemplate(), array());
}
$code = $this->filesystem->getFileContents($filepath);
$code = preg_replace('/}[ \\n]*$/', rtrim($content) . "\n}\n", trim($code));
$this->filesystem->putFileContents($filepath, $code);
$this->io->writeln("<info>Private constructor has been created.</info>\n", 2);
}
作者:edwardricard
项目:zensk
/**
* @param ResourceInterface $resource
* @param array $data
*/
public function generate(ResourceInterface $resource, array $data = array())
{
$filepath = $resource->getSrcFilename();
$name = $data['name'];
$arguments = $data['arguments'];
$argString = $this->buildArgumentString($arguments);
$values = array('%name%' => $name, '%arguments%' => $argString);
if (!($content = $this->templates->render('interface-method-signature', $values))) {
$content = $this->templates->renderString($this->getTemplate(), $values);
}
$this->insertMethodSignature($filepath, $content);
$this->io->writeln(sprintf("<info>Method signature <value>%s::%s()</value> has been created.</info>\n", $resource->getSrcClassname(), $name), 2);
}
作者:ulabo
项目:bus-spe
/**
* @param ResourceInterface $resource
* @param array $data
*/
public function generate(ResourceInterface $resource, array $data)
{
$destination = $this->getSavePath($resource);
if (file_exists($destination) && !$this->io->askConfirmation(sprintf('File "%s" already exists. Overwrite?', basename($destination)), false)) {
return;
}
$directory = dirname($destination);
if (!file_exists($directory)) {
$this->createDir($directory);
}
$code = $this->generateCodeForResource($resource, $data);
$this->filesystem->putFileContents($destination, $code);
$this->io->writeln($this->getPromptMessage($resource, $resource->getSrcFilename()));
}
作者:focuslif
项目:v0.
/**
* @param ResourceInterface $resource
* @param array $data
*/
public function generate(ResourceInterface $resource, array $data = array())
{
$filepath = $resource->getSrcFilename();
$name = $data['name'];
$arguments = $data['arguments'];
$argString = count($arguments) ? '$argument' . implode(', $argument', range(1, count($arguments))) : '';
$values = array('%name%' => $name, '%arguments%' => $argString);
if (!($content = $this->templates->render('method', $values))) {
$content = $this->templates->renderString($this->getTemplate(), $values);
}
$code = $this->filesystem->getFileContents($filepath);
$this->filesystem->putFileContents($filepath, $this->getUpdatedCode($name, $content, $code));
$this->io->writeln(sprintf("<info>Method <value>%s::%s()</value> has been created.</info>\n", $resource->getSrcClassname(), $name), 2);
}