public function testDateConvertToObjectWithoutConversion() { $dateTime = new \DateTime(); V::validate($dateTime, V::date()->dateTimeObject(false), function ($err, $output) use($dateTime) { $this->assertNull($err); $this->assertInstanceOf('\\DateTime', $output); /** @var \DateTime $output */ $this->assertEquals($dateTime->format('Y-m-d'), $output->format('Y-m-d')); }); V::validate('2015-01-01', V::date()->dateTimeObject(false), function ($err, $output) { $this->assertEquals('value is not a DateTime object', $err); $this->assertNull($output); }); }
protected function getOptionsSchema() { return V::arr()->keys(['time' => V::date()->dateTimeObject()]); }
public function testAnyDefaultPreset() { $input = ['firstname' => 'Smok', 'lastname' => 'Wawelski', 'username' => 'foobar', 'created' => '2015-01-01', 'status' => 'foo']; $schema = V::arr()->keys(['username' => V::string()->defaultValue(function ($context) { return strtolower($context['firstname']) . '-' . strtolower($context['lastname']); }), 'firstname' => V::string(), 'lastname' => V::string(), 'created' => V::date()->dateTimeObject()->defaultValue(new \DateTime()), 'status' => V::string()->defaultValue('registered')]); $user = V::attempt($input, $schema); $this->assertEquals('foobar', $user['username']); $this->assertEquals('Smok', $user['firstname']); $this->assertEquals('Wawelski', $user['lastname']); $this->assertEquals('2015-01-01 00:00:00', $user['created']->format('Y-m-d H:i:s')); $this->assertEquals('foo', $user['status']); }
public function testBetween() { V::validate('2015-05-30', V::date()->between('2015-05-01', '2015-06-01'), function ($err, $output) { $this->assertNotNull($output); $this->assertNull($err); }); V::validate('2015-06-01 06:00:00', V::date()->between('2015-06-01 05:59:59', '2015-06-01 06:00:01'), function ($err, $output) { $this->assertNotNull($output); $this->assertNull($err); }); V::validate('2015-06-01 06:00:00', V::date()->between('2015-06-01 06:00:00', '2015-06-01 07:00:00'), function ($err, $output) { $this->assertNotNull($output); $this->assertNull($err); }); V::validate('2015-06-01 05:00:00', V::date()->between('2015-06-01 06:00:00', '2015-06-01 07:00:00'), function ($err, $output) { $this->assertNull($output); /** @var ValidationException $err */ $this->assertContains('Date should be between', $err->getMessage()); }); }