You are here

public function DateTimeIso8601NormalizerTest::testDenormalizeDateAndTimeException in Drupal 8

Same name and namespace in other branches
  1. 9 core/modules/serialization/tests/src/Unit/Normalizer/DateTimeIso8601NormalizerTest.php \Drupal\Tests\serialization\Unit\Normalizer\DateTimeIso8601NormalizerTest::testDenormalizeDateAndTimeException()
  2. 10 core/modules/serialization/tests/src/Unit/Normalizer/DateTimeIso8601NormalizerTest.php \Drupal\Tests\serialization\Unit\Normalizer\DateTimeIso8601NormalizerTest::testDenormalizeDateAndTimeException()

Tests the denormalize function with bad data for the date+time case.

@covers ::denormalize

File

core/modules/serialization/tests/src/Unit/Normalizer/DateTimeIso8601NormalizerTest.php, line 249

Class

DateTimeIso8601NormalizerTest
Unit test coverage for the "datetime_iso8601" @DataType.

Namespace

Drupal\Tests\serialization\Unit\Normalizer

Code

public function testDenormalizeDateAndTimeException() {
  $this
    ->expectException(UnexpectedValueException::class);
  $this
    ->expectExceptionMessage('The specified date "on a rainy day" is not in an accepted format: "Y-m-d\\TH:i:sP" (RFC 3339), "Y-m-d\\TH:i:sO" (ISO 8601), "Y-m-d\\TH:i:s" (backward compatibility — deprecated).');
  $normalized = 'on a rainy day';
  $field_definition = $this
    ->prophesize(FieldDefinitionInterface::class);
  $field_definition
    ->getSetting('datetime_type')
    ->willReturn(DateTimeItem::DATETIME_TYPE_DATETIME);
  $this->normalizer
    ->denormalize($normalized, DateTimeIso8601::class, NULL, [
    'field_definition' => $field_definition
      ->reveal(),
  ]);
}