function ComposerInspectorTest::testComposerUnavailable
@covers ::validate
File
-
core/
modules/ package_manager/ tests/ src/ Kernel/ ComposerInspectorTest.php, line 158
Class
- ComposerInspectorTest
- @coversDefaultClass \Drupal\package_manager\ComposerInspector
Namespace
Drupal\Tests\package_manager\KernelCode
public function testComposerUnavailable() : void {
$precondition = $this->prophesize(ComposerIsAvailableInterface::class);
$mocked_precondition = $precondition->reveal();
$this->container
->set(ComposerIsAvailableInterface::class, $mocked_precondition);
$message = $this->createComposeStagerMessage("Well, that didn't work.");
$precondition->assertIsFulfilled(Argument::cetera())
->willThrow(new PreconditionException($mocked_precondition, $message))
->shouldBeCalledOnce();
$project_root = $this->container
->get(PathLocator::class)
->getProjectRoot();
/** @var \Drupal\package_manager\ComposerInspector $inspector */
$inspector = $this->container
->get(ComposerInspector::class);
try {
$inspector->validate($project_root);
$this->fail('Expected an exception to be thrown, but it was not.');
} catch (ComposerNotReadyException $e) {
$this->assertNull($e->workingDir);
$this->assertSame("Well, that didn't work.", $e->getMessage());
}
// Call validate() again to ensure the precondition is called once.
$this->expectException(ComposerNotReadyException::class);
$this->expectExceptionMessage("Well, that didn't work.");
$inspector->validate($project_root);
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.