public function ApidocEntityTest::testRevisions in Apigee API Catalog 8.2
Same name and namespace in other branches
- 8 tests/src/Kernel/ApidocEntityTest.php \Drupal\Tests\apigee_api_catalog\Kernel\ApidocEntityTest::testRevisions()
 
Test revisioning functionality on an apidocs entity.
File
- tests/
src/ Kernel/ ApidocEntityTest.php, line 114  
Class
- ApidocEntityTest
 - Test basic CRUD operations for ApiDoc.
 
Namespace
Drupal\Tests\apigee_api_catalog\KernelCode
public function testRevisions() {
  /* @var \Drupal\node\NodeInterface $entity */
  $description_v1 = 'Test API';
  $entity = $this->nodeStorage
    ->create([
    'type' => 'apidoc',
    'title' => 'API 1',
    'body' => [
      'value' => $description_v1,
      'format' => 'basic_html',
    ],
    'field_apidoc_spec' => NULL,
  ]);
  // Test saving a revision.
  $entity
    ->setNewRevision();
  $entity
    ->setRevisionLogMessage('v1');
  $entity
    ->save();
  $v1_id = $entity
    ->getRevisionId();
  $this
    ->assertNotNull($v1_id);
  // Test saving a new revision.
  $new_log = 'v2';
  $entity->body = [
    'value' => 'Test API v2',
    'format' => 'basic_html',
  ];
  $entity
    ->setNewRevision();
  $entity
    ->setRevisionLogMessage($new_log);
  $entity
    ->save();
  $v2_id = $entity
    ->getRevisionId();
  $this
    ->assertLessThan($v2_id, $v1_id);
  // Test saving without a new revision.
  $entity->body = [
    'value' => 'Test API v3',
    'format' => 'basic_html',
  ];
  $entity
    ->save();
  $this
    ->assertEquals($v2_id, $entity
    ->getRevisionId());
  // Test that the revision log message wasn't overriden.
  $this
    ->assertEquals($new_log, $entity
    ->getRevisionLogMessage());
  // Revert to the first revision.
  $entity_v1 = $this->nodeStorage
    ->loadRevision($v1_id);
  $entity_v1
    ->setNewRevision();
  $entity_v1
    ->isDefaultRevision(TRUE);
  $entity_v1
    ->setRevisionLogMessage('Copy of revision ' . $v1_id);
  $entity_v1
    ->save();
  // Load and check reverted values.
  $this->nodeStorage
    ->resetCache();
  $reverted = $this->nodeStorage
    ->load($entity
    ->id());
  $this
    ->assertLessThan($reverted
    ->getRevisionId(), $v1_id);
  $this
    ->assertTrue($reverted
    ->isDefaultRevision());
  $this
    ->assertEquals($description_v1, $reverted->body->value);
}