expectException('InvalidArgumentException'); $this->expectExceptionMessage($expectedExceptionMessage); } else { $this->setExpectedException('InvalidArgumentException', $expectedExceptionMessage); } $env = new Environment($this->getMockBuilder('\Twig\Loader\LoaderInterface')->getMock()); $env->addExtension($extension); $env->getUnaryOperators(); } public function provideInvalidExtensions() { return [ [new InvalidOperatorExtension(new \stdClass()), '"InvalidOperatorExtension::getOperators()" must return an array with operators, got "stdClass".'], [new InvalidOperatorExtension([1, 2, 3]), '"InvalidOperatorExtension::getOperators()" must return an array of 2 elements, got 3.'], ]; } } class InvalidOperatorExtension implements ExtensionInterface { private $operators; public function __construct($operators) { $this->operators = $operators; } public function initRuntime(Environment $environment) { } public function getTokenParsers() { return []; } public function getNodeVisitors() { return []; } public function getFilters() { return []; } public function getTests() { return []; } public function getFunctions() { return []; } public function getGlobals() { return []; } public function getOperators() { return $this->operators; } public function getName() { return __CLASS__; } }