assertEquals([ 'value' => 'bar', 'flags' => 0, 'type' => 0, 'tooltip' => '', ], $param->jsonSerialize()); $param->setType(Param::VALUE_BOOLEAN); $param->setDefaultValue(true); $this->assertEquals([ 'value' => 'bar', 'flags' => 0, 'type' => Param::VALUE_BOOLEAN, 'tooltip' => '', 'defaultValue' => true, ], $param->jsonSerialize()); $param->setType(Param::VALUE_PASSWORD); $param->setFlag(Param::FLAG_OPTIONAL); $param->setDefaultValue(null); $this->assertEquals([ 'value' => 'bar', 'flags' => Param::FLAG_OPTIONAL, 'type' => Param::VALUE_PASSWORD, 'tooltip' => '', ], $param->jsonSerialize()); $param->setType(Param::VALUE_HIDDEN); $param->setFlags(Param::FLAG_NONE); $this->assertEquals([ 'value' => 'bar', 'flags' => Param::FLAG_NONE, 'type' => Param::VALUE_HIDDEN, 'tooltip' => '', ], $param->jsonSerialize()); } public function validateValueProvider() { return [ [Param::VALUE_TEXT, Param::FLAG_NONE, 'abc', true], [Param::VALUE_TEXT, Param::FLAG_NONE, '', false], [Param::VALUE_TEXT, Param::FLAG_OPTIONAL, '', true], [Param::VALUE_BOOLEAN, Param::FLAG_NONE, false, true], [Param::VALUE_BOOLEAN, Param::FLAG_NONE, 123, false], // conversion from string to boolean [Param::VALUE_BOOLEAN, Param::FLAG_NONE, 'false', true, false], [Param::VALUE_BOOLEAN, Param::FLAG_NONE, 'true', true, true], [Param::VALUE_PASSWORD, Param::FLAG_NONE, 'foobar', true], [Param::VALUE_PASSWORD, Param::FLAG_NONE, '', false], [Param::VALUE_HIDDEN, Param::FLAG_NONE, '', false] ]; } /** * @dataProvider validateValueProvider */ public function testValidateValue($type, $flags, $value, $success, $expectedValue = null): void { $param = new Param('foo', 'bar'); $param->setType($type); $param->setFlags($flags); $this->assertEquals($success, $param->validateValue($value)); if (isset($expectedValue)) { $this->assertEquals($expectedValue, $value); } } }