public function testMultipleField()
{
$this->specify('Test confirmation validator with multiple field.', function () {
$validation = new Validation();
$validationMessages = ['name' => 'Name must be same as nameWith.', 'type' => 'Type must be same as typeWith.'];
$validation->add(['name', 'type'], new Confirmation(['with' => ['name' => 'nameWith', 'type' => 'typeWith'], 'message' => $validationMessages]));
$messages = $validation->validate(['name' => 'SomeValue', 'nameWith' => 'SomeValue', 'type' => 'SomeValue', 'typeWith' => 'SomeValue']);
expect($messages->count())->equals(0);
$messages = $validation->validate(['name' => 'SomeValue', 'nameWith' => 'SomeValue123', 'type' => 'SomeValue', 'typeWith' => 'SomeValue']);
expect($messages->count())->equals(1);
expect($messages->offsetGet(0)->getMessage())->equals($validationMessages['name']);
$messages = $validation->validate(['name' => 'SomeValue', 'nameWith' => 'SomeValue123', 'type' => 'SomeValue', 'typeWith' => 'SomeValue123']);
expect($messages->count())->equals(2);
expect($messages->offsetGet(0)->getMessage())->equals($validationMessages['name']);
expect($messages->offsetGet(1)->getMessage())->equals($validationMessages['type']);
});
}