3 namespace Drupal\Tests\book\Unit;
5 use Drupal\simpletest\AssertHelperTrait;
6 use Drupal\Tests\UnitTestCase;
9 * @coversDefaultClass \Drupal\book\BookUninstallValidator
12 class BookUninstallValidatorTest extends UnitTestCase {
14 use AssertHelperTrait;
17 * @var \Drupal\book\BookUninstallValidator|\PHPUnit_Framework_MockObject_MockObject
19 protected $bookUninstallValidator;
24 protected function setUp() {
26 $this->bookUninstallValidator = $this->getMockBuilder('Drupal\book\BookUninstallValidator')
27 ->disableOriginalConstructor()
28 ->setMethods(['hasBookOutlines', 'hasBookNodes'])
30 $this->bookUninstallValidator->setStringTranslation($this->getStringTranslationStub());
36 public function testValidateNotBook() {
37 $this->bookUninstallValidator->expects($this->never())
38 ->method('hasBookOutlines');
39 $this->bookUninstallValidator->expects($this->never())
40 ->method('hasBookNodes');
44 $reasons = $this->bookUninstallValidator->validate($module);
45 $this->assertSame($expected, $this->castSafeStrings($reasons));
51 public function testValidateEntityQueryWithoutResults() {
52 $this->bookUninstallValidator->expects($this->once())
53 ->method('hasBookOutlines')
55 $this->bookUninstallValidator->expects($this->once())
56 ->method('hasBookNodes')
61 $reasons = $this->bookUninstallValidator->validate($module);
62 $this->assertSame($expected, $this->castSafeStrings($reasons));
68 public function testValidateEntityQueryWithResults() {
69 $this->bookUninstallValidator->expects($this->once())
70 ->method('hasBookOutlines')
72 $this->bookUninstallValidator->expects($this->once())
73 ->method('hasBookNodes')
77 $expected = ['To uninstall Book, delete all content that has the Book content type'];
78 $reasons = $this->bookUninstallValidator->validate($module);
79 $this->assertSame($expected, $this->castSafeStrings($reasons));
85 public function testValidateOutlineStorage() {
86 $this->bookUninstallValidator->expects($this->once())
87 ->method('hasBookOutlines')
89 $this->bookUninstallValidator->expects($this->never())
90 ->method('hasBookNodes');
93 $expected = ['To uninstall Book, delete all content that is part of a book'];
94 $reasons = $this->bookUninstallValidator->validate($module);
95 $this->assertSame($expected, $this->castSafeStrings($reasons));