Something went wrong. Try again.
Parse and validate AT Protocol Lexicons with DTO generation for Laravel
Something went wrong. Try again.
2.3 kB · 94 lines
PHP
at dev
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495<?php
namespace SocialDept\AtpSchema\Tests\Unit\Validation\Rules;
use Orchestra\Testbench\TestCase;use SocialDept\AtpSchema\Validation\Rules\AtDatetime;
class AtDatetimeTest extends TestCase{ protected AtDatetime $rule;
protected function setUp(): void { parent::setUp();
$this->rule = new AtDatetime(); }
public function test_it_validates_valid_datetime_with_z(): void { $valid = '2024-01-01T00:00:00Z';
$failed = false; $this->rule->validate('datetime', $valid, function () use (&$failed) { $failed = true; });
$this->assertFalse($failed); }
public function test_it_validates_datetime_with_milliseconds(): void { $valid = '2024-01-01T12:34:56.789Z';
$failed = false; $this->rule->validate('datetime', $valid, function () use (&$failed) { $failed = true; });
$this->assertFalse($failed); }
public function test_it_validates_various_datetime_formats(): void { $validDatetimes = [ '2024-01-01T00:00:00Z', '2024-12-31T23:59:59Z', '2024-06-15T12:30:45Z', ];
foreach ($validDatetimes as $datetime) { $failed = false; $this->rule->validate('datetime', $datetime, function () use (&$failed) { $failed = true; });
$this->assertFalse($failed, "Expected {$datetime} to be valid"); } }
public function test_it_rejects_invalid_datetime(): void { $invalid = 'not-a-datetime';
$failed = false; $this->rule->validate('datetime', $invalid, function () use (&$failed) { $failed = true; });
$this->assertTrue($failed); }
public function test_it_rejects_datetime_without_timezone(): void { $invalid = '2024-01-01T00:00:00';
$failed = false; $this->rule->validate('datetime', $invalid, function () use (&$failed) { $failed = true; });
$this->assertTrue($failed); }
public function test_it_rejects_non_string(): void { $failed = false; $this->rule->validate('datetime', 123, function () use (&$failed) { $failed = true; });
$this->assertTrue($failed); }}