public function testMacroTranslateNotPair() { $returnValue = '<?php echo Latte\\Runtime\\Filters::escapeHtml(Nedryse\\Latte\\Macros\\TemplateMacroSet::template(call_user_func_array(array($template, \'translate\'), array_merge(array(%node.word), $_args = ((is_array(current($_args = array(\'notempty\'))) === TRUE) ? current($_args) : $_args))), array_merge($template->getParameters(), get_defined_vars(), $_args)), ENT_NOQUOTES) ?>'; /* @var $macroNodeMock MacroNode */ $macroNodeMock = $this->getMockBuilder('Latte\\MacroNode')->disableOriginalConstructor()->getMock(); $macroNodeMock->closing = FALSE; $macroNodeMock->args = 'notempty'; /* @var $phpWriterMock PhpWriter */ $phpWriterMock = $this->getMockBuilder('Latte\\PhpWriter')->disableOriginalConstructor()->getMock(); $phpWriterMock->expects($this->once())->method('write')->with($this->equalTo('echo %modify(Nedryse\\Latte\\Macros\\TemplateMacroSet::template(call_user_func_array(array($template, \'translate\'), array_merge(array(%node.word), $_args = ((is_array(current($_args = %node.array)) === TRUE) ? current($_args) : $_args))), array_merge($template->getParameters(), get_defined_vars(), $_args)))'))->will($this->returnValue($returnValue)); /* @var $compilerMock Compiler */ $compilerMock = $this->getMock('Latte\\Compiler'); /* @var $templateMacroSetMock TemplateMacroSet */ $templateMacroSet = new TemplateMacroSet($compilerMock); $this->assertSame($returnValue, $templateMacroSet->macroTranslate($macroNodeMock, $phpWriterMock)); }