entityManager = $this->getMock('Drupal\Core\Entity\EntityManagerInterface'); $this->translation = $this->getStringTranslationStub(); $this->configFactory = $this->getConfigFactoryStub([]); $this->bookOutlineStorage = $this->getMock('Drupal\book\BookOutlineStorageInterface'); $this->renderer = $this->getMock('\Drupal\Core\Render\RendererInterface'); $this->bookManager = new BookManager($this->entityManager, $this->translation, $this->configFactory, $this->bookOutlineStorage, $this->renderer); } /** * Tests the getBookParents() method. * * @dataProvider providerTestGetBookParents */ public function testGetBookParents($book, $parent, $expected) { $this->assertEquals($expected, $this->bookManager->getBookParents($book, $parent)); } /** * Provides test data for testGetBookParents. * * @return array * The test data. */ public function providerTestGetBookParents() { $empty = [ 'p1' => 0, 'p2' => 0, 'p3' => 0, 'p4' => 0, 'p5' => 0, 'p6' => 0, 'p7' => 0, 'p8' => 0, 'p9' => 0, ]; return [ // Provides a book without an existing parent. [ ['pid' => 0, 'nid' => 12], [], ['depth' => 1, 'p1' => 12] + $empty, ], // Provides a book with an existing parent. [ ['pid' => 11, 'nid' => 12], ['nid' => 11, 'depth' => 1, 'p1' => 11], ['depth' => 2, 'p1' => 11, 'p2' => 12] + $empty, ], // Provides a book with two existing parents. [ ['pid' => 11, 'nid' => 12], ['nid' => 11, 'depth' => 2, 'p1' => 10, 'p2' => 11], ['depth' => 3, 'p1' => 10, 'p2' => 11, 'p3' => 12] + $empty, ], ]; } }