Refactoring

This commit is contained in:
René Preuß
2022-10-01 14:00:25 +02:00
parent 7ba3cdffb0
commit a2405875ad
26 changed files with 569 additions and 391 deletions

View File

@@ -0,0 +1,26 @@
<?php
declare(strict_types=1);
namespace Bitinflow\Payments\Tests;
use Bitinflow\Accounts\Contracts\AppTokenRepository;
use Bitinflow\Payments\Tests\TestCases\ApiTestCase;
/**
* @author René Preuß <rene@preuss.io>
*/
class ApiOauthTest extends ApiTestCase
{
public function testGetOauthToken(): void
{
$token = app(AppTokenRepository::class)->getAccessToken();
$this->getPaymentsClient()->withToken($this->getToken());
$this->registerResult($result = $this->getPaymentsClient()->createSubscription([
]));
$result->dump();
}
}

View File

@@ -0,0 +1,80 @@
<?php
declare(strict_types=1);
namespace Bitinflow\Payments\Tests\TestCases;
use Bitinflow\Accounts\BitinflowAccounts;
use Bitinflow\Accounts\Result;
use Bitinflow\Payments\BitinflowPayments;
/**
* @author René Preuß <rene@preuss.io>
*/
abstract class ApiTestCase extends TestCase
{
protected static $rateLimitRemaining = null;
protected function setUp(): void
{
parent::setUp();
if ($this->getAccountsBaseUrl()) {
BitinflowAccounts::setBaseUrl($this->getAccountsBaseUrl());
}
if ($this->getPaymentsBaseUrl()) {
BitinflowPayments::setBaseUrl($this->getPaymentsBaseUrl());
}
if (!$this->getClientId()) {
$this->markTestSkipped('No Client-ID given');
}
if (self::$rateLimitRemaining !== null && self::$rateLimitRemaining < 3) {
$this->markTestSkipped('Rate Limit exceeded (' . self::$rateLimitRemaining . ')');
}
$this->getAccountsClient()->setClientId($this->getClientId());
$this->getPaymentsClient()->setClientId($this->getClientId());
}
protected function registerResult(Result $result): Result
{
self::$rateLimitRemaining = $result->rateLimit('remaining');
return $result;
}
protected function getAccountsBaseUrl()
{
return getenv('ACCOUNTS_BASE_URL');
}
protected function getPaymentsBaseUrl()
{
return getenv('PAYMENTS_BASE_URL');
}
protected function getClientId()
{
return getenv('CLIENT_ID');
}
protected function getClientSecret()
{
return getenv('CLIENT_KEY');
}
protected function getToken()
{
return getenv('CLIENT_ACCESS_TOKEN');
}
public function getPaymentsClient(): BitinflowPayments
{
return app(BitinflowPayments::class);
}
public function getAccountsClient(): BitinflowAccounts
{
return app(BitinflowAccounts::class);
}
}

View File

@@ -0,0 +1,30 @@
<?php
declare(strict_types=1);
namespace Bitinflow\Payments\Tests\TestCases;
use Bitinflow\Accounts\BitinflowAccounts;
use Bitinflow\Accounts\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,
];
}
}