Behat\Behat\Context\Snippet\Generator\ContextSnippetGenerator::generateSnippet PHP Method

generateSnippet() public method

public generateSnippet ( Behat\Testwork\Environment\Environment $environment, Behat\Gherkin\Node\StepNode $step )
$environment Behat\Testwork\Environment\Environment
$step Behat\Gherkin\Node\StepNode
    public function generateSnippet(Environment $environment, StepNode $step)
    {
        if (!$environment instanceof ContextEnvironment) {
            throw new EnvironmentSnippetGenerationException(sprintf('ContextSnippetGenerator does not support `%s` environment.', get_class($environment)), $environment);
        }
        $contextClass = $this->contextIdentifier->guessTargetContextClass($environment);
        $patternType = $this->patternIdentifier->guessPatternType($contextClass);
        $stepText = $step->getText();
        $pattern = $this->patternTransformer->generatePattern($patternType, $stepText);
        $methodName = $this->getMethodName($contextClass, $pattern->getCanonicalText(), $pattern->getPattern());
        $methodArguments = $this->getMethodArguments($step, $pattern->getPlaceholderCount());
        $snippetTemplate = $this->getSnippetTemplate($pattern->getPattern(), $methodName, $methodArguments);
        $usedClasses = $this->getUsedClasses($step);
        return new ContextSnippet($step, $snippetTemplate, $contextClass, $usedClasses);
    }