mirror of
https://github.com/bitinflow/accounts.git
synced 2026-03-13 13:35:52 +00:00
Initial commit
This commit is contained in:
42
tests/ApiSshKeysTest.php
Normal file
42
tests/ApiSshKeysTest.php
Normal file
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace GhostZero\BitinflowAccounts\Tests;
|
||||
|
||||
use GhostZero\BitinflowAccounts\Result;
|
||||
use GhostZero\BitinflowAccounts\Tests\TestCases\ApiTestCase;
|
||||
|
||||
/**
|
||||
* @author René Preuß <rene@preuss.io>
|
||||
*/
|
||||
class ApiSshKeysTest extends ApiTestCase
|
||||
{
|
||||
|
||||
public function testGetSshKeyByUserId()
|
||||
{
|
||||
$this->registerResult($result = $this->getClient()->getSshKeysByUserId(38));
|
||||
$this->assertInstanceOf(Result::class, $result);
|
||||
$this->assertEquals('rene.preuss@check24.de', $result->shift()->name);
|
||||
$this->assertGreaterThanOrEqual(2, $result->count());
|
||||
}
|
||||
|
||||
public function testSshKeyManagement()
|
||||
{
|
||||
$customName = 'Hello World!';
|
||||
$publicKey = 'ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEA3H7sYVrVCwwYIuRm3on3S9n/BCd2mBJrgCk6xTerbNmt0RyUZ+RtGsK6UYkgnRR2WWq9/Pv2s3RXJXPxbsIEYmKCcTdLUvDk56x9385cIVUX4w016mpe/8lyu+mIdqWYKsJMoab0oReCDX8Y9qBcaffDh8AgmYVN+86gXgoP1ITe9BDYrFiR6U571VyLDVN3OYOYPMF3/L9f0knMfM0T4LrS8oi6faVBCxZHRoBGtGmsTBkE0KwplYQFN2aa4Mxab+rTUFmJr3LYEcJF0J8wNJ3eEDFNOR0254jrjbGGAXGsc+cxJoNzech+GBkRMKMpNU0lds6VxP0ZB25VfzjEmQ== René Preuß';
|
||||
|
||||
$this->getClient()->withToken($this->getToken());
|
||||
$this->registerResult($result = $this->getClient()->createSshKey($publicKey, $customName));
|
||||
$this->assertInstanceOf(Result::class, $result);
|
||||
$this->assertEquals('6b:fa:33:da:6c:3a:08:05:6f:71:8b:d8:ed:06:37:b6', $result->data()->fingerprint);
|
||||
$this->assertEquals($customName, $result->data()->name);
|
||||
|
||||
$keyId = $result->data()->id;
|
||||
|
||||
$this->getClient()->withToken($this->getToken());
|
||||
$this->registerResult($result = $this->getClient()->deleteSshKey($keyId));
|
||||
$this->assertInstanceOf(Result::class, $result);
|
||||
$this->assertTrue($result->success());
|
||||
}
|
||||
}
|
||||
23
tests/ApiUsersTest.php
Normal file
23
tests/ApiUsersTest.php
Normal file
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace GhostZero\BitinflowAccounts\Tests;
|
||||
|
||||
use GhostZero\BitinflowAccounts\Result;
|
||||
use GhostZero\BitinflowAccounts\Tests\TestCases\ApiTestCase;
|
||||
|
||||
/**
|
||||
* @author René Preuß <rene@preuss.io>
|
||||
*/
|
||||
class ApiUsersTest extends ApiTestCase
|
||||
{
|
||||
|
||||
public function testGetAuthedUser()
|
||||
{
|
||||
$this->getClient()->withToken($this->getToken());
|
||||
$this->registerResult($result = $this->getClient()->getAuthedUser());
|
||||
$this->assertInstanceOf(Result::class, $result);
|
||||
$this->assertEquals('rene@preuss.io', $result->data()->email);
|
||||
}
|
||||
}
|
||||
26
tests/ServiceInstantiationTest.php
Normal file
26
tests/ServiceInstantiationTest.php
Normal file
@@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace GhostZero\BitinflowAccounts\Tests;
|
||||
|
||||
use GhostZero\BitinflowAccounts\BitinflowAccounts;
|
||||
use GhostZero\BitinflowAccounts\Facades\BitinflowAccounts as BitinflowAccountsFacade;
|
||||
use GhostZero\BitinflowAccounts\Tests\TestCases\TestCase;
|
||||
|
||||
/**
|
||||
* @author René Preuß <rene@preuss.io>
|
||||
*/
|
||||
class ServiceInstantiationTest extends TestCase
|
||||
{
|
||||
|
||||
public function testInstance()
|
||||
{
|
||||
$this->assertInstanceOf(BitinflowAccounts::class, app(BitinflowAccounts::class));
|
||||
}
|
||||
|
||||
public function testFacade()
|
||||
{
|
||||
$this->assertInstanceOf(BitinflowAccounts::class, BitinflowAccountsFacade::getFacadeRoot());
|
||||
}
|
||||
}
|
||||
56
tests/TestCases/ApiTestCase.php
Normal file
56
tests/TestCases/ApiTestCase.php
Normal file
@@ -0,0 +1,56 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace GhostZero\BitinflowAccounts\Tests\TestCases;
|
||||
|
||||
use GhostZero\BitinflowAccounts\BitinflowAccounts;
|
||||
use GhostZero\BitinflowAccounts\Result;
|
||||
|
||||
/**
|
||||
* @author René Preuß <rene@preuss.io>
|
||||
*/
|
||||
abstract class ApiTestCase extends TestCase
|
||||
{
|
||||
|
||||
protected static $rateLimitRemaining = null;
|
||||
|
||||
protected function setUp(): void
|
||||
{
|
||||
parent::setUp();
|
||||
if (!$this->getClientId()) {
|
||||
$this->markTestSkipped('No Client-ID given');
|
||||
}
|
||||
if (self::$rateLimitRemaining !== null && self::$rateLimitRemaining < 3) {
|
||||
$this->markTestSkipped('Rate Limit exceeded (' . self::$rateLimitRemaining . ')');
|
||||
}
|
||||
$this->getClient()->setClientId($this->getClientId());
|
||||
}
|
||||
|
||||
protected function registerResult(Result $result): Result
|
||||
{
|
||||
self::$rateLimitRemaining = $result->rateLimit('remaining');
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
protected function getClientId()
|
||||
{
|
||||
return getenv('CLIENT_ID');
|
||||
}
|
||||
|
||||
protected function getClientSecret()
|
||||
{
|
||||
return getenv('CLIENT_KEY');
|
||||
}
|
||||
|
||||
protected function getToken()
|
||||
{
|
||||
return getenv('CLIENT_ACCESS_TOKEN');
|
||||
}
|
||||
|
||||
public function getClient(): BitinflowAccounts
|
||||
{
|
||||
return app(BitinflowAccounts::class);
|
||||
}
|
||||
}
|
||||
30
tests/TestCases/TestCase.php
Normal file
30
tests/TestCases/TestCase.php
Normal file
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace GhostZero\BitinflowAccounts\Tests\TestCases;
|
||||
|
||||
use GhostZero\BitinflowAccounts\BitinflowAccounts;
|
||||
use GhostZero\BitinflowAccounts\Providers\BitinflowAccountsServiceProvider;
|
||||
use Orchestra\Testbench\TestCase as BaseTestCase;
|
||||
|
||||
/**
|
||||
* @author René Preuß <rene@preuss.io>
|
||||
*/
|
||||
abstract class TestCase extends BaseTestCase
|
||||
{
|
||||
|
||||
protected function getPackageProviders($app)
|
||||
{
|
||||
return [
|
||||
BitinflowAccountsServiceProvider::class,
|
||||
];
|
||||
}
|
||||
|
||||
protected function getPackageAliases($app)
|
||||
{
|
||||
return [
|
||||
'BitinflowAccounts' => BitinflowAccounts::class,
|
||||
];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user