+ /**
+ * Tests that an entity annotation can mark the data definition as internal.
+ *
+ * @dataProvider entityDefinitionIsInternalProvider
+ */
+ public function testEntityDefinitionIsInternal($internal, $expected) {
+ $entity_type_id = $this->randomMachineName();
+
+ $entity_type = $this->prophesize(EntityTypeInterface::class);
+ $entity_type->getLabel()->willReturn($this->randomString());
+ $entity_type->getConstraints()->willReturn([]);
+ $entity_type->isInternal()->willReturn($internal);
+
+ $entity_manager = $this->prophesize(EntityManagerInterface::class);
+ $entity_manager->getDefinitions()->willReturn([$entity_type_id => $entity_type->reveal()]);
+ $this->container->set('entity.manager', $entity_manager->reveal());
+
+ $entity_data_definition = EntityDataDefinition::create($entity_type_id);
+ $this->assertSame($expected, $entity_data_definition->isInternal());
+ }
+
+ /**
+ * Provides test cases for testEntityDefinitionIsInternal.
+ */
+ public function entityDefinitionIsInternalProvider() {
+ return [
+ 'internal' => [TRUE, TRUE],
+ 'external' => [FALSE, FALSE],
+ 'undefined' => [NULL, FALSE],
+ ];
+ }
+