BookUninstallValidatorTest.php in Drupal 9
File
core/modules/book/tests/src/Unit/BookUninstallValidatorTest.php
View source
<?php
namespace Drupal\Tests\book\Unit;
use Drupal\Tests\UnitTestCase;
class BookUninstallValidatorTest extends UnitTestCase {
protected $bookUninstallValidator;
protected function setUp() : void {
parent::setUp();
$this->bookUninstallValidator = $this
->getMockBuilder('Drupal\\book\\BookUninstallValidator')
->disableOriginalConstructor()
->setMethods([
'hasBookOutlines',
'hasBookNodes',
])
->getMock();
$this->bookUninstallValidator
->setStringTranslation($this
->getStringTranslationStub());
}
public function testValidateNotBook() {
$this->bookUninstallValidator
->expects($this
->never())
->method('hasBookOutlines');
$this->bookUninstallValidator
->expects($this
->never())
->method('hasBookNodes');
$module = 'not_book';
$expected = [];
$reasons = $this->bookUninstallValidator
->validate($module);
$this
->assertEquals($expected, $reasons);
}
public function testValidateEntityQueryWithoutResults() {
$this->bookUninstallValidator
->expects($this
->once())
->method('hasBookOutlines')
->willReturn(FALSE);
$this->bookUninstallValidator
->expects($this
->once())
->method('hasBookNodes')
->willReturn(FALSE);
$module = 'book';
$expected = [];
$reasons = $this->bookUninstallValidator
->validate($module);
$this
->assertEquals($expected, $reasons);
}
public function testValidateEntityQueryWithResults() {
$this->bookUninstallValidator
->expects($this
->once())
->method('hasBookOutlines')
->willReturn(FALSE);
$this->bookUninstallValidator
->expects($this
->once())
->method('hasBookNodes')
->willReturn(TRUE);
$module = 'book';
$expected = [
'To uninstall Book, delete all content that has the Book content type',
];
$reasons = $this->bookUninstallValidator
->validate($module);
$this
->assertEquals($expected, $reasons);
}
public function testValidateOutlineStorage() {
$this->bookUninstallValidator
->expects($this
->once())
->method('hasBookOutlines')
->willReturn(TRUE);
$this->bookUninstallValidator
->expects($this
->never())
->method('hasBookNodes');
$module = 'book';
$expected = [
'To uninstall Book, delete all content that is part of a book',
];
$reasons = $this->bookUninstallValidator
->validate($module);
$this
->assertEquals($expected, $reasons);
}
}