test(casts): add tests for ShopperEstablishmentCodeCast functionality test(casts): add tests for ShopperServiceCodeCast functionality test(casts): add tests for ShopperSiteCodeCast functionality test(dto): update ProductDtoTest to include additional fields test(dto): update SettingDtoTest to remove arcadiaSites assertions test(events): update AnOrderHasBeenPlacedTest to use value objects test(entities): update OrderTest to use value objects for employee details test(value-objects): update EmployeeUpsertDataTest to use value objects test(pagination): update PaginationTest to access value properties test(services): update AppCustomerAuthServiceTest to use CrmHashcode test(services): update CrmServiceTest to use CrmHashcode for customer retrieval
49 lines
1.5 KiB
PHP
49 lines
1.5 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Tests\Unit\Domain\Models\ValueObjects;
|
|
|
|
use Carbon\CarbonImmutable;
|
|
use Domain\Models\ValueObjects\Code;
|
|
use Domain\Models\ValueObjects\EmployeeUpsertData;
|
|
use Domain\Models\ValueObjects\Matricule;
|
|
use Domain\Models\ValueObjects\ShopperEstablishmentCode;
|
|
use Domain\Models\ValueObjects\ShopperServiceCode;
|
|
use Domain\Models\ValueObjects\ShopperSiteCode;
|
|
|
|
describe('EmployeeUpsertData', function (): void {
|
|
it('can be instantiated', function (): void {
|
|
// GIVEN
|
|
$matricule = new Matricule('1234567');
|
|
$code = new Code('ABCDEFGH12');
|
|
$start = CarbonImmutable::now();
|
|
$etablissement = new ShopperEstablishmentCode('ETAB01');
|
|
$service = new ShopperServiceCode('101');
|
|
$site = new ShopperSiteCode('SITEA');
|
|
|
|
// WHEN
|
|
$data = new EmployeeUpsertData(
|
|
$matricule,
|
|
'Jean',
|
|
'Dupont',
|
|
$etablissement,
|
|
$service,
|
|
$site,
|
|
$start,
|
|
null,
|
|
$code
|
|
);
|
|
|
|
// THEN
|
|
expect($data->matricule)->toBe($matricule)
|
|
->and($data->firstname)->toBe('Jean')
|
|
->and($data->lastname)->toBe('Dupont')
|
|
->and($data->etablissement)->toBe($etablissement)
|
|
->and($data->service)->toBe($service)
|
|
->and($data->site)->toBe($site)
|
|
->and($data->startDate)->toBe($start)
|
|
->and($data->endDate)->toBeNull()
|
|
->and($data->code)->toBe($code);
|
|
});
|
|
});
|