1
0
mirror of https://github.com/danog/dns.git synced 2024-11-26 12:04:40 +01:00

Add config test

This commit is contained in:
Niklas Keller 2017-06-22 23:39:13 +02:00
parent 74e68587f7
commit 2815d8f694
3 changed files with 73 additions and 2 deletions

1
.gitignore vendored
View File

@ -3,3 +3,4 @@ composer.lock
phpunit.xml
vendor
.php_cs.cache
coverage

View File

@ -31,8 +31,8 @@ class Config {
$this->attempts = $attempts;
}
private function validateNameserver(string $nameserver) {
if (!$nameserver) {
private function validateNameserver($nameserver) {
if (!$nameserver || !\is_string($nameserver)) {
throw new ConfigException("Invalid nameserver: {$nameserver}");
}

70
test/ConfigTest.php Normal file
View File

@ -0,0 +1,70 @@
<?php
namespace Amp\Dns\Test;
use Amp\Dns\Config;
use Amp\Dns\ConfigException;
use Amp\PHPUnit\TestCase;
class ConfigTest extends TestCase {
/**
* @param string[] $nameservers Valid server array.
*
* @dataProvider provideValidServers
*/
public function testAcceptsValidServers(array $nameservers) {
$this->assertInstanceOf(Config::class, new Config($nameservers));
}
public function provideValidServers() {
return [
[["127.1.1.1"]],
[["127.1.1.1:1"]],
[["[::1]:52"]],
[["[::1]"]],
];
}
/**
* @param string[] $nameservers Invalid server array.
*
* @dataProvider provideInvalidServers
*/
public function testRejectsInvalidServers(array $nameservers) {
$this->expectException(ConfigException::class);
new Config($nameservers);
}
public function provideInvalidServers() {
return [
[[]],
[[42]],
[[null]],
[[true]],
[["foobar"]],
[["foobar.com"]],
[["127.1.1"]],
[["127.1.1.1.1"]],
[["126.0.0.5", "foobar"]],
[["42"]],
[["::1"]],
[["::1:53"]],
[["[::1]:"]],
[["[::1]:76235"]],
[["[::1]:0"]],
[["[::1]:-1"]],
[["[::1:51"]],
[["[::1]:abc"]],
];
}
public function testInvalidTimeout() {
$this->expectException(ConfigException::class);
new Config(["127.0.0.1"], [], -1);
}
public function testInvalidAttempts() {
$this->expectException(ConfigException::class);
new Config(["127.0.0.1"], [], 500, 0);
}
}