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.
85 lines
2.5 KiB
PHP
85 lines
2.5 KiB
PHP
<?php
|
|
// Copyright 1999-2021. Plesk International GmbH.
|
|
|
|
namespace PleskXTest;
|
|
|
|
use PleskXTest\Utility\PasswordProvider;
|
|
|
|
class MailTest extends TestCase
|
|
{
|
|
/** @var \PleskX\Api\Struct\Webspace\Info */
|
|
private static $webspace;
|
|
|
|
/**
|
|
* @var bool
|
|
*/
|
|
private static $isMailSupported;
|
|
|
|
public static function setUpBeforeClass(): void
|
|
{
|
|
parent::setUpBeforeClass();
|
|
|
|
$serviceStates = static::$_client->server()->getServiceStates();
|
|
static::$isMailSupported = isset($serviceStates['smtp']) && ('running' == $serviceStates['smtp']['state']);
|
|
|
|
if (static::$isMailSupported) {
|
|
static::$webspace = static::_createWebspace();
|
|
}
|
|
}
|
|
|
|
protected function setUp(): void
|
|
{
|
|
parent::setUp();
|
|
|
|
if (!static::$isMailSupported) {
|
|
$this->markTestSkipped('Mail system is not supported.');
|
|
}
|
|
}
|
|
|
|
public function testCreate()
|
|
{
|
|
$mailname = static::$_client->mail()->create('test', static::$webspace->id, true, PasswordProvider::STRONG_PASSWORD);
|
|
|
|
$this->assertIsInt($mailname->id);
|
|
$this->assertGreaterThan(0, $mailname->id);
|
|
$this->assertEquals('test', $mailname->name);
|
|
|
|
static::$_client->mail()->delete('name', $mailname->name, static::$webspace->id);
|
|
}
|
|
|
|
public function testDelete()
|
|
{
|
|
$mailname = static::$_client->mail()->create('test', static::$webspace->id);
|
|
|
|
$result = static::$_client->mail()->delete('name', $mailname->name, static::$webspace->id);
|
|
$this->assertTrue($result);
|
|
}
|
|
|
|
public function testGet()
|
|
{
|
|
$mailname = static::$_client->mail()->create('test', static::$webspace->id);
|
|
|
|
$mailnameInfo = static::$_client->mail()->get('test', static::$webspace->id);
|
|
$this->assertEquals('test', $mailnameInfo->name);
|
|
|
|
static::$_client->mail()->delete('name', $mailname->name, static::$webspace->id);
|
|
}
|
|
|
|
public function testGetAll()
|
|
{
|
|
$mailname = static::$_client->mail()->create('test', static::$webspace->id);
|
|
|
|
$mailnamesInfo = static::$_client->mail()->getAll(static::$webspace->id);
|
|
$this->assertCount(1, $mailnamesInfo);
|
|
$this->assertEquals('test', $mailnamesInfo[0]->name);
|
|
|
|
static::$_client->mail()->delete('name', $mailname->name, static::$webspace->id);
|
|
}
|
|
|
|
public function testGetAllWithoutMailnames()
|
|
{
|
|
$mailnamesInfo = static::$_client->mail()->getAll(static::$webspace->id);
|
|
$this->assertCount(0, $mailnamesInfo);
|
|
}
|
|
}
|