mirror of
https://gitlab.com/CIEFWorldwideSdnBhd/exchange-2.0.git
synced 2026-08-21 21:43:57 +00:00
Update: laravel 8 to 12, php 7.3 to php 8.3, Jenkinsfile, Unit/Feature testing, vapor, docker
This commit is contained in:
@@ -0,0 +1,105 @@
|
||||
<?php
|
||||
|
||||
namespace Tests\Unit\Modules\Segments\Services;
|
||||
|
||||
use App\Classes\Modules\Currencies\Services\FetchesCurrency;
|
||||
use App\Classes\Modules\Segments\Services\ConvertsConstantDetailsToResource;
|
||||
use App\Classes\ValueObjects\Constants\SegmentConstants;
|
||||
use App\Http\Resources\CurrencyResource;
|
||||
use App\Models\SegmentConstant;
|
||||
use App\Models\Currency;
|
||||
use App\Models\Country;
|
||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
||||
use PHPUnit\Framework\Attributes\Group;
|
||||
use Tests\TestCase;
|
||||
use Mockery;
|
||||
|
||||
#[Group('unit')]
|
||||
#[Group('segments')]
|
||||
#[Group('services')]
|
||||
#[Group('ok_to_run')]
|
||||
class ConvertsConstantDetailsToResourceTest extends TestCase
|
||||
{
|
||||
/**
|
||||
* Test it returns detail directly if not SUPPLIER_CURRENCIES.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function test_it_returns_detail_directly_if_not_supplier_currencies()
|
||||
{
|
||||
// A R R A N G E
|
||||
$mockFetchesCurrency = Mockery::mock(FetchesCurrency::class);
|
||||
$service = new ConvertsConstantDetailsToResource($mockFetchesCurrency);
|
||||
|
||||
$constant = new SegmentConstant();
|
||||
$constant->reference = 'test_it_returns_detail_directly_if_not_supplier_currencies';
|
||||
$constant->detail = (object) ['foo' => 'bar'];
|
||||
|
||||
// A C T
|
||||
$result = $service->execute($constant);
|
||||
|
||||
// A S S E R T
|
||||
$this->assertEquals($constant->detail, $result);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test it returns CurrencyResource if reference is SUPPLIER_CURRENCIES.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function test_it_returns_currency_resource_if_reference_is_supplier_currencies()
|
||||
{
|
||||
// A R R A N G E
|
||||
$currencyId = 123;
|
||||
$mockCurrency = new Currency();
|
||||
$mockCurrency->id = $currencyId;
|
||||
$mockCurrency->name = 'test_it_returns_currency_resource_if_reference_is_supplier_currencies';
|
||||
|
||||
$mockFetchesCurrency = Mockery::mock(FetchesCurrency::class);
|
||||
$mockFetchesCurrency->shouldReceive('execute')
|
||||
->with(['id' => $currencyId])
|
||||
->once()
|
||||
->andReturn($mockCurrency);
|
||||
|
||||
$service = new ConvertsConstantDetailsToResource($mockFetchesCurrency);
|
||||
|
||||
$constant = new SegmentConstant();
|
||||
$constant->reference = SegmentConstants::SUPPLIER_CURRENCIES;
|
||||
$constant->detail = (object) ['id' => $currencyId];
|
||||
|
||||
// A C T
|
||||
$result = $service->execute($constant);
|
||||
|
||||
// A S S E R T
|
||||
$this->assertInstanceOf(CurrencyResource::class, $result);
|
||||
$this->assertEquals($currencyId, $result->id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test it returns empty string if SUPPLIER_CURRENCIES but no id in detail.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function test_it_returns_empty_if_no_id_in_supplier_currencies()
|
||||
{
|
||||
// A R R A N G E
|
||||
$mockFetchesCurrency = Mockery::mock(FetchesCurrency::class);
|
||||
$service = new ConvertsConstantDetailsToResource($mockFetchesCurrency);
|
||||
|
||||
$constant = new SegmentConstant();
|
||||
$constant->reference = SegmentConstants::SUPPLIER_CURRENCIES;
|
||||
$constant->detail = (object) ['some' => 'other'];
|
||||
|
||||
// A C T
|
||||
$result = $service->execute($constant);
|
||||
|
||||
// A S S E R T
|
||||
$this->assertEquals('', $result);
|
||||
}
|
||||
|
||||
protected function tearDown(): void
|
||||
{
|
||||
Mockery::close();
|
||||
parent::tearDown();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user