public function AcquiaSearchApiClientTest::testAcquiaSearchApiCache in Acquia Search 3.x
Tests invalidation if cache.
File
- tests/
src/ Unit/ AcquiaSearchApiClientTest.php, line 192
Class
- AcquiaSearchApiClientTest
- @coversDefaultClass \Drupal\acquia_search\AcquiaSearchApiClient @group Acquia Search Solr
Namespace
Drupal\Tests\acquia_search\UnitCode
public function testAcquiaSearchApiCache() {
$indexes = [
'WXYZ-12345' => [
'balancer' => 'example.com',
'core_id' => 'WXYZ-12345',
'data' => [
'key' => 'WXYZ-12345',
'secret_key' => 'secret_key',
'product_policies' => [
'salt' => 'salt',
],
'host' => 'example.com',
],
],
'WXYZ-12345.dev.drupal8' => [
'balancer' => 'example.com',
'core_id' => 'WXYZ-12345.dev.drupal8',
'data' => [
'key' => 'WXYZ-12345.dev.drupal8',
'secret_key' => 'secret_key',
'product_policies' => [
'salt' => 'salt',
],
'host' => 'example.com',
],
],
];
$auth_info = [
'host' => Storage::getApiHost(),
'app_uuid' => Storage::getUuid(),
'key' => Storage::getApiKey(),
];
$this
->assertEquals('WXYZ-12345', Storage::getIdentifier());
$client = new AcquiaSearchApiClient($auth_info, $this->guzzleClient
->reveal(), $this->cacheBackend
->reveal());
$fresh_cache = (object) [
'data' => $indexes,
'expire' => \Drupal::time()
->getRequestTime() + 24 * 60 * 60,
];
$this->cacheBackend
->get('acquia_search.indexes.WXYZ-12345')
->willReturn($fresh_cache);
$client
->getSearchIndexes('WXYZ-12345');
// New cache should not have been set when there is already a valid cache.
$this->cacheBackend
->set('acquia_search.indexes.WXYZ-12345', $indexes, \Drupal::time()
->getRequestTime() + 24 * 60 * 60)
->shouldHaveBeenCalledTimes(0);
$expired_cache = (object) [
'data' => $indexes,
'expire' => 0,
];
$this->cacheBackend
->get('acquia_search.indexes.WXYZ-12345')
->willReturn($expired_cache);
$client
->getSearchIndexes('WXYZ-12345');
// When the current cache value is expired, it should have set a new one.
$this->cacheBackend
->set('acquia_search.indexes.WXYZ-12345', $indexes, \Drupal::time()
->getRequestTime() + 24 * 60 * 60)
->shouldHaveBeenCalledTimes(1);
}