<?php 
 
class MultipleParameterTest extends PHPUnit_Framework_TestCase { 
 
    public $test_data; 
 
    public function setUp() { 
        $this->test_data = array( 
            'test1' => 'test data 1', 
            'test2' => 'test data 2', 
            'test3' => 'test data 3' 
        ); 
    } 
 
    public function testValidValidation() { 
        $rules = array( 
            'test1' => array( 
                'rule1(:test2,3,:test3)' => function($input, $test2, $value, $test3) { 
                    if (($input == "test data 1") && ($value == 3) && ($test2 == "test data 2") && ($test3 == "test data 3")) 
                        return true; 
                    return false; 
                } 
            ) 
        ); 
        $validation = \SimpleValidator\Validator::validate($this->test_data, $rules); 
        $this->assertTrue($validation->isSuccess()); 
    } 
 
    public function testInvalidValidation() { 
        $rules = array( 
            'test1' => array( 
                'rule1(:test2,3,:test3)' => function($input, $test2, $value, $test3) { 
                    if (($input == "test data 1") && ($value == 3) && ($test2 == "test data 1") && ($test3 == "test data 1")) 
                        return true; 
                    return false; 
                } 
            ) 
        ); 
        $naming = array( 
            'test2' => 'Test 2' 
        ); 
        $validation = \SimpleValidator\Validator::validate($this->test_data, $rules, $naming); 
        $this->assertFalse($validation->isSuccess()); 
        $validation->customErrors(array( 
            'rule1' => "Foo :params(0) bar :params(1) baz :params(2)" 
        )); 
        $errors = $validation->getErrors(); 
        $this->assertEquals("Foo Test 2 bar 3 baz test3", $errors[0]); 
    } 
 
} 
 
?> 
 
 |