mirror of
https://gitlab.com/CIEFWorldwideSdnBhd/shipping-portal.git
synced 2026-08-28 08:54:05 +00:00
55 lines
1.5 KiB
PHP
55 lines
1.5 KiB
PHP
<?php
|
|
|
|
namespace Tests\Feature\Companies\Processors;
|
|
|
|
use App\Classes\Modules\Companies\Processors\CreateCompanyProcessor;
|
|
use App\Classes\ValueObjects\Constants\ApprovalStatus;
|
|
use App\Classes\ValueObjects\Constants\CompanyType;
|
|
use App\Models\Company;
|
|
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
|
use Tests\TestCaseChild;
|
|
|
|
use PHPUnit\Framework\Attributes\Group;
|
|
|
|
#[Group('feature')]
|
|
#[Group('companies')]
|
|
#[Group('processors')]
|
|
#[Group('ok_to_run')]
|
|
class CreateCompanyTest extends TestCaseChild
|
|
{
|
|
// use DatabaseTransactions;
|
|
|
|
/**
|
|
* @return void
|
|
*/
|
|
public function test_it_can_create_a_company_via_processor()
|
|
{
|
|
// A R R A N G E
|
|
/** @var CreateCompanyProcessor $processor */
|
|
$processor = app(CreateCompanyProcessor::class);
|
|
|
|
$name = 'Test Integration Company ' . uniqid();
|
|
|
|
// A C T
|
|
$company = $processor->execute(
|
|
$name,
|
|
CompanyType::COMPANY_BUSINESS,
|
|
ApprovalStatus::APPROVED
|
|
);
|
|
|
|
// A S S E R T
|
|
$this->assertInstanceOf(Company::class, $company);
|
|
$this->assertEquals($name, $company->name);
|
|
$this->assertEquals(CompanyType::COMPANY_BUSINESS, $company->type);
|
|
$this->assertEquals(ApprovalStatus::APPROVED, $company->status);
|
|
$this->assertNotEmpty($company->reference);
|
|
|
|
// Final database verification
|
|
$this->assertDatabaseHas('companies', [
|
|
'id' => $company->id,
|
|
'name' => $name,
|
|
'reference' => $company->reference
|
|
]);
|
|
}
|
|
}
|