예제 #1
0
 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);
     });
 }
예제 #2
0
 protected function getOptionsSchema()
 {
     return V::arr()->keys(['time' => V::date()->dateTimeObject()]);
 }
예제 #3
0
 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());
     });
 }