public function testRule() { $option = new Option('f'); $option->setRule(function ($value) { return is_numeric($value); }); $this->assertFalse($option->validate('a')); $this->assertFalse($option->validate('abc')); $this->assertTrue($option->validate('2')); $this->assertTrue($option->validate(2)); $this->assertTrue($option->validate(0)); $option->setValue(2); $caught = false; try { $option->setValue('abc'); } catch (\Exception $e) { $caught = true; } $this->assertTrue($caught); }