/** * @return ExpressionInterface */ protected function getCondition() { if (!$this->condition) { $this->condition = $this->assembler->assemble($this->configuration); } return $this->condition; }
/** * @dataProvider configurationDataProvider */ public function testAssemble($configuration, $expected) { $factory = $this->getMock('Oro\\Component\\ConfigExpression\\ExpressionFactoryInterface'); $factory->expects($this->any())->method('create')->will($this->returnCallback(function ($type, $options) { $expr = new ExpressionStub($type); return $expr->initialize($options); })); $configurationPass = $this->getMockBuilder('Oro\\Component\\ConfigExpression\\ConfigurationPass\\ConfigurationPassInterface')->getMockForAbstractClass(); $configurationPass->expects($this->any())->method('passConfiguration')->will($this->returnCallback(function ($options) { return ['passed' => $options]; })); $assembler = new ExpressionAssembler($factory); $assembler->addConfigurationPass($configurationPass); $actual = $assembler->assemble($configuration); $this->assertEquals($expected, $actual); }