You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

95 lines
2.7 KiB
PHP

<?php
// Copyright 1999-2021. Plesk International GmbH.
namespace PleskXTest;
class DnsTemplateTest extends TestCase
{
/**
* @var bool
*/
private static $_isDnsSupported;
public static function setUpBeforeClass(): void
{
parent::setUpBeforeClass();
$serviceStates = static::$_client->server()->getServiceStates();
static::$_isDnsSupported = $serviceStates['dns'] && ('running' == $serviceStates['dns']['state']);
}
protected function setUp(): void
{
parent::setUp();
if (!static::$_isDnsSupported) {
$this->markTestSkipped('DNS system is not supported.');
}
}
public function testCreate()
{
$dns = static::$_client->dnsTemplate()->create([
'type' => 'TXT',
'host' => 'test.create',
'value' => 'value',
]);
$this->assertIsInt($dns->id);
$this->assertGreaterThan(0, $dns->id);
$this->assertEquals(0, $dns->siteId);
$this->assertEquals(0, $dns->siteAliasId);
static::$_client->dnsTemplate()->delete('id', $dns->id);
}
public function testGetById()
{
$dns = static::$_client->dnsTemplate()->create([
'type' => 'TXT',
'host' => 'test.get.by.id',
'value' => 'value',
]);
$dnsInfo = static::$_client->dnsTemplate()->get('id', $dns->id);
$this->assertEquals('TXT', $dnsInfo->type);
$this->assertEquals('value', $dnsInfo->value);
static::$_client->dnsTemplate()->delete('id', $dns->id);
}
public function testGetAll()
{
$dns = static::$_client->dnsTemplate()->create([
'type' => 'TXT',
'host' => 'test.get.all',
'value' => 'value',
]);
$dns2 = static::$_client->dnsTemplate()->create([
'type' => 'TXT',
'host' => 'test.get.all',
'value' => 'value2',
]);
$dnsInfo = static::$_client->dnsTemplate()->getAll();
$dsRecords = [];
foreach ($dnsInfo as $dnsRec) {
if ('TXT' === $dnsRec->type && 0 === strpos($dnsRec->host, 'test.get.all')) {
$dsRecords[] = $dnsRec;
}
}
$this->assertCount(2, $dsRecords);
static::$_client->dnsTemplate()->delete('id', $dns->id);
static::$_client->dnsTemplate()->delete('id', $dns2->id);
}
public function testDelete()
{
$dns = static::$_client->dnsTemplate()->create([
'type' => 'TXT',
'host' => 'test.delete',
'value' => 'value',
]);
$result = static::$_client->dnsTemplate()->delete('id', $dns->id);
$this->assertTrue($result);
}
}