function BackendChainImplementationUnitTest::setUp

Same name in other branches
  1. 9 core/tests/Drupal/Tests/Core/Cache/BackendChainImplementationUnitTest.php \Drupal\Tests\Core\Cache\BackendChainImplementationUnitTest::setUp()
  2. 8.9.x core/tests/Drupal/Tests/Core/Cache/BackendChainImplementationUnitTest.php \Drupal\Tests\Core\Cache\BackendChainImplementationUnitTest::setUp()
  3. 10 core/tests/Drupal/Tests/Core/Cache/BackendChainImplementationUnitTest.php \Drupal\Tests\Core\Cache\BackendChainImplementationUnitTest::setUp()

Overrides UnitTestCase::setUp

File

core/tests/Drupal/Tests/Core/Cache/BackendChainImplementationUnitTest.php, line 52

Class

BackendChainImplementationUnitTest
Unit test of backend chain implementation specifics.

Namespace

Drupal\Tests\Core\Cache

Code

protected function setUp() : void {
    parent::setUp();
    // Set up three memory backends to be used in the chain.
    $time = new Time();
    $this->firstBackend = new MemoryBackend($time);
    $this->secondBackend = new MemoryBackend($time);
    $this->thirdBackend = new MemoryBackend($time);
    // Set an initial fixed dataset for all testing. The next three data
    // collections will test two edge cases (last backend has the data, and
    // first backend has the data) and will test a normal use case (middle
    // backend has the data). We should have a complete unit test with those.
    // Note that in all cases, when the same key is set on more than one
    // backend, the values are voluntarily different, this ensures in which
    // backend we actually fetched the key when doing get calls.
    // Set a key present on all backends (for delete).
    $this->firstBackend
        ->set('t123', 1231);
    $this->secondBackend
        ->set('t123', 1232);
    $this->thirdBackend
        ->set('t123', 1233);
    // Set a key present on the second and the third (for get), those two will
    // be different, this will ensure from where we get the key.
    $this->secondBackend
        ->set('t23', 232);
    $this->thirdBackend
        ->set('t23', 233);
    // Set a key on only the third, we will ensure propagation using this one.
    $this->thirdBackend
        ->set('t3', 33);
    // Create the chain.
    $this->chain = new BackendChain();
    $this->chain
        ->appendBackend($this->firstBackend)
        ->appendBackend($this->secondBackend)
        ->appendBackend($this->thirdBackend);
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.