public function FilteredStorageTest::testWriteFilter in Config Filter 8
Same name and namespace in other branches
- 8.2 src/Tests/FilteredStorageTest.php \Drupal\config_filter\Tests\FilteredStorageTest::testWriteFilter()
Test the write method invokes the filterWrite in filters.
@dataProvider writeFilterProvider
File
- src/
Tests/ FilteredStorageTest.php, line 210
Class
- FilteredStorageTest
- Tests StorageWrapper operations using the CachedStorage.
Namespace
Drupal\config_filter\TestsCode
public function testWriteFilter($interim, $expected, $exists = TRUE) {
$name = $this
->randomString();
$data = $this
->randomArray();
$source = $this
->prophesize(StorageInterface::class);
$filterA = $this
->prophesizeFilter();
$filterB = $this
->prophesizeFilter();
$filterA
->filterWrite($name, $data)
->willReturn($interim);
$interim = is_array($interim) ? $interim : [];
$filterB
->filterWrite($name, $interim)
->willReturn($expected);
if ($expected) {
$source
->write($name, $expected)
->willReturn(TRUE);
}
else {
$source
->write(Argument::any())
->shouldNotBeCalled();
$source
->exists($name)
->willReturn($exists);
if ($exists) {
$filterA
->filterWriteEmptyIsDelete($name)
->willReturn(TRUE);
$source
->delete($name)
->willReturn(TRUE);
}
}
$storage = new FilteredStorage($source
->reveal(), [
$filterA
->reveal(),
$filterB
->reveal(),
]);
$this
->assertTrue($storage
->write($name, $data));
}