tenantId->equals($tenantId)); self::assertSame('excellent', $level->code); self::assertSame('Excellent', $level->name); self::assertSame('#9b59b6', $level->color); self::assertSame(5, $level->sortOrder); } #[Test] public function creerAllowsNullColor(): void { $level = CustomCompetencyLevel::creer( tenantId: TenantId::fromString(self::TENANT_ID), code: 'basic', name: 'Basique', color: null, sortOrder: 1, ); self::assertNull($level->color); } #[Test] public function reconstituteRestoresAllProperties(): void { $id = CustomCompetencyLevelId::generate(); $tenantId = TenantId::fromString(self::TENANT_ID); $level = CustomCompetencyLevel::reconstitute( id: $id, tenantId: $tenantId, code: 'progressing', name: 'En progression', color: '#f1c40f', sortOrder: 2, ); self::assertTrue($level->id->equals($id)); self::assertTrue($level->tenantId->equals($tenantId)); self::assertSame('progressing', $level->code); self::assertSame('En progression', $level->name); self::assertSame('#f1c40f', $level->color); self::assertSame(2, $level->sortOrder); } }