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.

87 lines
3.0 KiB
PHP

<?php
// Copyright 1999-2021. Plesk International GmbH.
namespace PleskXTest;
use PleskXTest\Utility\KeyLimitChecker;
use PleskXTest\Utility\PasswordProvider;
class CustomerTest extends TestCase
{
private $_customerProperties;
public function setUp(): void
{
$this->_customerProperties = [
'cname' => 'Plesk',
'pname' => 'John Smith',
'login' => 'john-unit-test',
'passwd' => PasswordProvider::STRONG_PASSWORD,
'email' => 'john@smith.com',
'external-id' => 'link:12345',
'description' => 'Good guy',
];
}
public function testCreate()
{
$customer = static::$_client->customer()->create($this->_customerProperties);
$this->assertIsInt($customer->id);
$this->assertGreaterThan(0, $customer->id);
static::$_client->customer()->delete('id', $customer->id);
}
public function testDelete()
{
$customer = static::$_client->customer()->create($this->_customerProperties);
$result = static::$_client->customer()->delete('id', $customer->id);
$this->assertTrue($result);
}
public function testGet()
{
$customer = static::$_client->customer()->create($this->_customerProperties);
$customerInfo = static::$_client->customer()->get('id', $customer->id);
$this->assertEquals('Plesk', $customerInfo->company);
$this->assertEquals('John Smith', $customerInfo->personalName);
$this->assertEquals('john-unit-test', $customerInfo->login);
$this->assertEquals('john@smith.com', $customerInfo->email);
$this->assertEquals('Good guy', $customerInfo->description);
$this->assertEquals('link:12345', $customerInfo->externalId);
static::$_client->customer()->delete('id', $customer->id);
}
public function testGetAll()
{
$keyInfo = static::$_client->server()->getKeyInfo();
if (!KeyLimitChecker::checkByType($keyInfo, KeyLimitChecker::LIMIT_CLIENTS, 2)) {
$this->markTestSkipped('License does not allow to create more than 1 customer.');
}
static::$_client->customer()->create([
'pname' => 'John Smith',
'login' => 'customer-a',
'passwd' => PasswordProvider::STRONG_PASSWORD,
]);
static::$_client->customer()->create([
'pname' => 'Mike Black',
'login' => 'customer-b',
'passwd' => PasswordProvider::STRONG_PASSWORD,
]);
$customersInfo = static::$_client->customer()->getAll();
$this->assertIsArray($customersInfo);
$customersCheck = array_filter($customersInfo, function ($value) {
return $value->personalName === 'John Smith' || $value->personalName === 'Mike Black';
});
$this->assertCount(2, $customersCheck);
static::$_client->customer()->delete('login', 'customer-a');
static::$_client->customer()->delete('login', 'customer-b');
}
}