function validate($input, $type) { /** * チェーンの作成 * typeの値によってチェーンを動的に変更 */ $chain = new Chain(); $chain->setHandler(new NotNullValidationHandler()); $chain->setHandler(new MaxLengthValidationHandler()); //$chain -> setHandler(new MaxLengthValidationHandler(8)); switch ($type) { case 1: $chain->setHandler(new AlphabetValidationHandler()); break; case 2: $chain->setHandler(new NumberValidationHandler()); break; } return $chain->validate($input); }
/** * @dataProvider provideTestFilter */ public function testFilter($options, $raw, $filtered, $valid) { $int = new Chain($options); $this->assertEquals($filtered, $int->filter($raw)); $this->assertEquals($valid, $int->validate($raw)); }