public function testAddError() { $context = ['foo' => 'fooValue', 'bar' => 'barValue']; $options = ['left' => 'foo', 'right' => 'bar']; $this->condition->initialize($options); $message = 'Error message.'; $this->condition->setMessage($message); $this->condition->expects($this->once())->method('isConditionAllowed')->with($context)->will($this->returnValue(false)); $errors = new ArrayCollection(); $this->assertFalse($this->condition->evaluate($context, $errors)); $this->assertCount(1, $errors); $this->assertEquals(['message' => $message, 'parameters' => []], $errors->get(0)); }
public function testAddError() { $context = ['foo' => 'fooValue', 'bar' => 'barValue']; $options = ['left' => new PropertyPath('foo'), 'right' => new PropertyPath('bar')]; $left = $options['left']; $right = $options['right']; $keys = array_keys($context); $rightKey = end($keys); $leftKey = reset($keys); $this->condition->initialize($options); $message = 'Compare {{ left }} with {{ right }}.'; $this->condition->setMessage($message); $this->contextAccessor->expects($this->at(0))->method('getValue')->with($context, $left)->will($this->returnValue($context[$leftKey])); $this->contextAccessor->expects($this->at(1))->method('getValue')->with($context, $right)->will($this->returnValue($context[$rightKey])); $this->condition->expects($this->once())->method('doCompare')->with($context[$leftKey], $context[$rightKey])->will($this->returnValue(false)); $this->contextAccessor->expects($this->at(2))->method('getValue')->with($context, $left)->will($this->returnValue($context[$leftKey])); $this->contextAccessor->expects($this->at(3))->method('getValue')->with($context, $right)->will($this->returnValue($context[$rightKey])); $errors = new ArrayCollection(); $this->assertFalse($this->condition->evaluate($context, $errors)); $this->assertCount(1, $errors); $this->assertEquals(['message' => $message, 'parameters' => ['{{ left }}' => $context[$leftKey], '{{ right }}' => $context[$rightKey]]], $errors->get(0)); }