diff --git a/src/Domains/Validator/ApexDomain.php b/src/Domains/Validator/ApexDomain.php new file mode 100644 index 0000000..dc25c16 --- /dev/null +++ b/src/Domains/Validator/ApexDomain.php @@ -0,0 +1,40 @@ +getApex() === $value; + } +} diff --git a/tests/Validator/ApexDomainTest.php b/tests/Validator/ApexDomainTest.php new file mode 100644 index 0000000..00d6d56 --- /dev/null +++ b/tests/Validator/ApexDomainTest.php @@ -0,0 +1,42 @@ +domain = new ApexDomain(); + } + + public function tearDown(): void + { + $this->domain = null; + } + + public function testIsValid(): void + { + // Description + $this->assertEquals('Value must be a public apex domain', $this->domain->getDescription()); + + // Valid apex domains + $this->assertTrue($this->domain->isValid('example.com')); + $this->assertTrue($this->domain->isValid('google.com')); + $this->assertTrue($this->domain->isValid('bbc.co.uk')); + $this->assertTrue($this->domain->isValid('appwrite.io')); + $this->assertTrue($this->domain->isValid('usa.gov')); + $this->assertTrue($this->domain->isValid('stanford.edu')); + $this->assertTrue($this->domain->isValid('http://google.com')); + + // Invalid apex domains + $this->assertFalse($this->domain->isValid('blog.bbc.co.uk')); + $this->assertFalse($this->domain->isValid('www.google.com')); + $this->assertFalse($this->domain->isValid('test.usa.gov')); + $this->assertFalse($this->domain->isValid('test.com.test')); + $this->assertFalse($this->domain->isValid('http://www.google.com')); + } +}