$this->assertFalse(in_array($entity_3->id(),$called),'ConfigEntityInterface::onDependencyRemoval() is not called for entity 3.');
$this->assertSame([$entity_1->id(),$entity_4->id(),$entity_2->id()],$called,'The most dependent entities have ConfigEntityInterface::onDependencyRemoval() called first.');
// Perform a module rebuild so we can know where the node module is located
// and uninstall it.
// @todo Remove as part of https://www.drupal.org/node/2186491
system_rebuild_module_data();
// Perform the uninstall.
$config_manager->uninstall('module','node');
// Test that expected actions have been performed.
$entity_1=$storage->load($entity_1->id());
$this->assertTrue($entity_1,'Entity 1 not deleted');
$this->assertSame($entity_1->getThirdPartySettings('node'),[],'Entity 1 third party settings updated.');
$entity_2=$storage->load($entity_2->id());
$this->assertTrue($entity_2,'Entity 2 not deleted');
$this->assertSame($entity_2->getThirdPartySettings('node'),[],'Entity 2 third party settings updated.');
$this->assertSame($entity_2->calculateDependencies()->getDependencies()['config'],[$entity_1->getConfigDependencyName()],'Entity 2 still depends on entity 1.');
$entity_3=$storage->load($entity_3->id());
$this->assertTrue($entity_3,'Entity 3 not deleted');
$this->assertSame($entity_3->calculateDependencies()->getDependencies()['config'],[$entity_2->getConfigDependencyName()],'Entity 3 still depends on entity 2.');