test(SearchComposerTest): add unit tests for getProviders with allowed providers restriction and empty configuration

Signed-off-by: Misha M.-Kupriyanov <kupriyanov@strato.de>
pull/54120/head
Misha M.-Kupriyanov 5 months ago committed by Mikhailo Matiyenko-Kupriyanov
parent 9dfc0b1b23
commit d0341bb323
  1. 59
      tests/lib/Search/SearchComposerTest.php

@ -156,6 +156,65 @@ class SearchComposerTest extends TestCase {
]);
}
public function testGetProvidersWithEmptyAllowedProvidersConfiguration(): void {
$providerConfigs = [
'provider1' => ['service' => 'provider1_service', 'appId' => 'app1', 'order' => 10],
'provider2' => ['service' => 'provider2_service', 'appId' => 'app2', 'order' => 5],
];
$mockData = $this->createMockProvidersAndRegistrations($providerConfigs);
$this->setupRegistrationContextWithProviders($mockData['registrations']);
$this->setupAppConfigForAllowedProviders();
$providers = $this->searchComposer->getProviders('/test/route', []);
$this->assertCount(2, $providers);
$this->assertProvidersAreSortedByOrder($providers);
$this->assertEquals('provider2', $providers[0]['id']);
$this->assertEquals('provider1', $providers[1]['id']);
}
public function testGetProvidersWithAllowedProvidersRestriction(): void {
$providerConfigs = [
'provider1' => ['service' => 'provider1_service', 'appId' => 'app1', 'order' => 10],
'provider2' => ['service' => 'provider2_service', 'appId' => 'app2', 'order' => 5],
'provider3' => ['service' => 'provider3_service', 'appId' => 'app3', 'order' => 15],
'provider4' => ['service' => 'provider4_service', 'appId' => 'app4', 'order' => 8],
];
$mockData = $this->createMockProvidersAndRegistrations($providerConfigs);
$this->setupRegistrationContextWithProviders($mockData['registrations']);
$this->setupAppConfigForAllowedProviders(['provider1', 'provider3']);
$providers = $this->searchComposer->getProviders('/test/route', []);
$this->assertProvidersStructureAndSorting($providers, [
['id' => 'provider1', 'name' => 'Provider provider1', 'appId' => 'app1', 'order' => 10, 'inAppSearch' => false],
['id' => 'provider3', 'name' => 'Provider provider3', 'appId' => 'app3', 'order' => 15, 'inAppSearch' => false],
]);
// Verify excluded providers are not present
$providerIds = array_column($providers, 'id');
$this->assertNotContains('provider2', $providerIds);
$this->assertNotContains('provider4', $providerIds);
}
public function testGetProvidersFiltersByAllowedProvidersCompletely(): void {
$providerConfigs = [
'provider1' => ['service' => 'provider1_service', 'appId' => 'app1', 'order' => 10],
'provider2' => ['service' => 'provider2_service', 'appId' => 'app2', 'order' => 5],
];
$mockData = $this->createMockProvidersAndRegistrations($providerConfigs);
$this->setupRegistrationContextWithProviders($mockData['registrations']);
$this->setupAppConfigForAllowedProviders(['provider_not_exists']);
$providers = $this->searchComposer->getProviders('/test/route', []);
$this->assertIsArray($providers);
$this->assertEmpty($providers);
}
public function testProviderIconGeneration(): void {
$providerConfigs = [
'provider1' => ['service' => 'provider1_service', 'appId' => 'app1', 'order' => 10],

Loading…
Cancel
Save