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));
 }