public function MigratePhoneNumberTestTrait::testRollBack in SMS Framework 8
Same name and namespace in other branches
- 2.x tests/src/Kernel/Migrate/MigratePhoneNumberTestTrait.php \Drupal\Tests\sms\Kernel\Migrate\MigratePhoneNumberTestTrait::testRollBack()
 - 2.1.x tests/src/Kernel/Migrate/MigratePhoneNumberTestTrait.php \Drupal\Tests\sms\Kernel\Migrate\MigratePhoneNumberTestTrait::testRollBack()
 
Tests that conditions are reverted after rollback.
File
- tests/
src/ Kernel/ Migrate/ MigratePhoneNumberTestTrait.php, line 105  
Class
- MigratePhoneNumberTestTrait
 - This trait executes tests for D6 and D7 SMS Framework migrations.
 
Namespace
Drupal\Tests\sms\Kernel\MigrateCode
public function testRollBack() {
  $this
    ->loadFixture($this
    ->smsUserFixtureFilePath());
  $this
    ->installEntitySchema('sms');
  $this
    ->installEntitySchema('sms_phone_number_verification');
  // Create an entity form display.
  EntityFormDisplay::create([
    'targetEntityType' => 'user',
    'bundle' => 'user',
    'mode' => 'default',
  ])
    ->setStatus(TRUE)
    ->save();
  $this
    ->executeMigrations($this
    ->getMigrationsToTest());
  $this
    ->assertVerifiedPhoneNumber(User::load(40), '1234567890');
  // Test that the default entity form display has the field added.
  $entity_form_display = EntityFormDisplay::load('user.user.default');
  $this
    ->assertNotNull($entity_form_display
    ->getComponent('phone_number'));
  // Rollback migration and check that verifications, phone number settings
  // and phone number fields are removed.
  $this
    ->rollBackMigrations($this
    ->getMigrationsToRollBack());
  // Assert no phone number verifications, phone number settings or phone
  // number fields exist.
  $this
    ->assertEquals([], PhoneNumberVerification::loadMultiple());
  $this
    ->assertEquals([], PhoneNumberSettings::loadMultiple());
  $this
    ->assertNull(FieldConfig::loadByName('user', 'user', 'phone_number'));
  $this
    ->assertNull(FieldStorageConfig::loadByName('user', 'phone_number'));
  // Test that the display field is removed.
  $entity_form_display = EntityFormDisplay::load('user.user.default');
  $this
    ->assertNull($entity_form_display
    ->getComponent('phone_number'));
}