14 use AspectMock\Test as AspectMock;
32 $extendedDataObject = [
36 'extends' =>
"parent",
40 'value' =>
'testValue' 47 $this->setMockEntities($extendedDataObject);
49 $this->expectExceptionMessage(
"Parent Entity parent not defined for Entity extended.");
55 $extendedDataObjects = [
63 'extends' =>
"grandparent" 71 $this->setMockEntities($extendedDataObjects);
73 $this->expectExceptionMessage(
74 "Cannot extend an entity that already extends another entity. Entity: parent." . PHP_EOL
81 $extendedDataObjects = [
90 'someOtherEntity' => [
91 'entityType' =>
'someOtherEntity',
93 'key' =>
'someOtherEntity' 100 $this->setMockEntities($extendedDataObjects);
103 $this->assertEquals(
"someOtherEntity->id", $resultextendedDataObject->getVarReference(
"someOtherEntity"));
108 $extendedDataObjects = [
111 'type' =>
'testType',
112 'extends' =>
"parent" 116 'requiredEntity' => [
118 'type' =>
'linkedEntityType',
119 'value' =>
'linkedEntity1' 122 'type' =>
'otherEntityType',
123 'value' =>
'linkedEntity2' 130 $this->setMockEntities($extendedDataObjects);
133 $this->assertEquals(
"linkedEntity1", $resultextendedDataObject->getLinkedEntitiesOfType(
"linkedEntityType")[0]);
134 $this->assertEquals(
"linkedEntity2", $resultextendedDataObject->getLinkedEntitiesOfType(
"otherEntityType")[0]);
137 private function setMockEntities($mockEntityData)
139 $property = new \ReflectionProperty(DataObjectHandler::class,
'INSTANCE');
140 $property->setAccessible(
true);
141 $property->setValue(
null);
143 $mockDataProfileSchemaParser = AspectMock::double(DataProfileSchemaParser::class, [
144 'readDataProfiles' => $mockEntityData
147 $mockObjectManager = AspectMock::double(ObjectManager::class, [
148 'create' => $mockDataProfileSchemaParser
151 AspectMock::double(ObjectManagerFactory::class, [
152 'getObjectManager' => $mockObjectManager
testAlreadyExtendedParentData()