function __construct(array $config = [], array $deps = []) { if (isset($config['name'])) { $this->name = $config['name']; } if (isset($config['message'])) { $this->message = Message::ensure($config['message']); } }
public function format(\Fulfil\Message $message, $depth = 0) { list($path, $name) = $message->chop($depth); $out = ''; if ($name || $path) { $out .= implode(" > ", $name ?: $path) . ": "; } if ($message->id && $message->text) { $out .= '(' . Message::implodePath($message->id) . ') ' . $message->text; } elseif ($message->id) { $out .= Message::implodePath($message->id); } elseif ($message->text) { $out .= $message->text; } if ($message->params) { $out .= " " . json_encode($message->params); } $out = trim($out); if (!$out) { throw new \UnexpectedValueException(); } return $out; }
/** * @dataProvider dataMinMax */ function testMinMax($valid, $in, $min, $max, $error = null) { $check = new Check\Date(['min' => $min, 'max' => $max]); $ctx = new Context(); $in = \DateTime::createFromFormat(\DateTime::ISO8601, $in); if (!$in) { throw new \Exception(); } $check->apply($in, $ctx); $flat = $ctx->flatten(); $this->assertEquals($valid, $flat->valid); if ($error) { $this->assertCount(1, $flat->messages); $this->assertEquals($error, Message::implodePath($flat->messages[0]->id)); } }
function assertInvalidMsgId($ctxOrFlat, $id, $params = null) { if ($ctxOrFlat instanceof \Fulfil\Context) { $flat = $ctxOrFlat->flatten(); } else { $flat = $ctxOrFlat; } $this->assertFalse($flat->valid); $this->assertCount(1, $flat->messages); if (is_string($id)) { $id = \Fulfil\Message::explodePath($id); } $this->assertEquals($id, $flat->messages[0]->id); if ($params !== null) { $this->assertEquals($params, $flat->messages[0]->params); } }