public function ReplaceOpTest::testProcess in Drupal 9
Same name and namespace in other branches
- 8 core/tests/Drupal/Tests/Composer/Plugin/Scaffold/Integration/ReplaceOpTest.php \Drupal\Tests\Composer\Plugin\Scaffold\Integration\ReplaceOpTest::testProcess()
 
@covers ::process
File
- core/
tests/ Drupal/ Tests/ Composer/ Plugin/ Scaffold/ Integration/ ReplaceOpTest.php, line 22  
Class
- ReplaceOpTest
 - @coversDefaultClass \Drupal\Composer\Plugin\Scaffold\Operations\ReplaceOp
 
Namespace
Drupal\Tests\Composer\Plugin\Scaffold\IntegrationCode
public function testProcess() {
  $fixtures = new Fixtures();
  $destination = $fixtures
    ->destinationPath('[web-root]/robots.txt');
  $source = $fixtures
    ->sourcePath('drupal-assets-fixture', 'robots.txt');
  $options = ScaffoldOptions::create([]);
  $sut = new ReplaceOp($source, TRUE);
  // Assert that there is no target file before we run our test.
  $this
    ->assertFileDoesNotExist($destination
    ->fullPath());
  // Test the system under test.
  $sut
    ->process($destination, $fixtures
    ->io(), $options);
  // Assert that the target file was created.
  $this
    ->assertFileExists($destination
    ->fullPath());
  // Assert the target contained the contents from the correct scaffold file.
  $contents = trim(file_get_contents($destination
    ->fullPath()));
  $this
    ->assertEquals('# Test version of robots.txt from drupal/core.', $contents);
  // Confirm that expected output was written to our io fixture.
  $output = $fixtures
    ->getOutput();
  $this
    ->assertStringContainsString('Copy [web-root]/robots.txt from assets/robots.txt', $output);
}