diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 5519c82..9e6b1b8 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -18,6 +18,8 @@ jobs: - 7.2 - 7.3 - 7.4 + - 8.0 + - 8.1 steps: - name: Checkout uses: actions/checkout@v2 @@ -31,36 +33,6 @@ jobs: - name: PHP lint run: "find *.php Classes Configuration Tests -name '*.php' -print0 | xargs -0 -n 1 -P 4 php -l" - check-dependencies: - runs-on: ubuntu-latest - needs: [check-composer] - steps: - - uses: actions/checkout@v2 - - - name: Install PHP - uses: shivammathur/setup-php@v2 - with: - php-version: "7.4" - tools: composer:v2 - - - name: Get Composer Cache Directory - id: composer-cache - run: | - echo "::set-output name=dir::$(composer config cache-files-dir)" - - - uses: actions/cache@v1 - with: - path: ${{ steps.composer-cache.outputs.dir }} - key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} - restore-keys: | - ${{ runner.os }}-composer- - - - name: Install dependencies - run: composer install --prefer-dist --no-progress --no-suggest --no-plugins - - - name: Missing composer requirements - run: ./vendor/bin/composer-require-checker check --config-file dependency-checker.json - xml-linting: runs-on: ubuntu-latest needs: [check-composer] @@ -103,7 +75,7 @@ jobs: coding-guideline: runs-on: ubuntu-latest needs: - - check-dependencies + - php-linting - xml-linting steps: - uses: actions/checkout@v2 @@ -134,13 +106,23 @@ jobs: code-quality: runs-on: ubuntu-latest - needs: [check-dependencies] + needs: + - php-linting strategy: matrix: - php-version: - - 7.2 - - 7.3 - - 7.4 + include: + - php-version: '7.2' + typo3-version: '^10.4' + - php-version: '7.3' + typo3-version: '^10.4' + - php-version: '7.4' + typo3-version: '^10.4' + - php-version: '7.4' + typo3-version: '^11.5' + - php-version: '8.0' + typo3-version: '^11.5' + - php-version: '8.1' + typo3-version: '^11.5' steps: - uses: actions/checkout@v2 @@ -150,20 +132,8 @@ jobs: php-version: "${{ matrix.php-version }}" tools: composer:v2 - - name: Get Composer Cache Directory - id: composer-cache - run: | - echo "::set-output name=dir::$(composer config cache-files-dir)" - - - uses: actions/cache@v1 - with: - path: ${{ steps.composer-cache.outputs.dir }} - key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} - restore-keys: | - ${{ runner.os }}-composer- - - - name: Install dependencies - run: composer install --prefer-dist --no-progress --no-suggest + - name: Install dependencies with expected TYPO3 version + run: composer require --no-interaction --prefer-dist --no-progress "typo3/cms-backend:${{ matrix.typo3-version }}" "typo3/cms-core:${{ matrix.typo3-version }}" "typo3/cms-extbase:${{ matrix.typo3-version }}" "typo3/cms-frontend:${{ matrix.typo3-version }}" "typo3/cms-fluid-styled-content:${{ matrix.typo3-version }}" - name: Code Quality (by PHPStan) run: ./vendor/bin/phpstan analyse @@ -171,14 +141,23 @@ jobs: tests-sqlite: runs-on: ubuntu-latest needs: - - check-dependencies + - php-linting - xml-linting strategy: matrix: - php-version: - - 7.2 - - 7.3 - - 7.4 + include: + - php-version: '7.2' + typo3-version: '^10.4' + - php-version: '7.3' + typo3-version: '^10.4' + - php-version: '7.4' + typo3-version: '^10.4' + - php-version: '7.4' + typo3-version: '^11.5' + - php-version: '8.0' + typo3-version: '^11.5' + - php-version: '8.1' + typo3-version: '^11.5' steps: - uses: actions/checkout@v2 @@ -188,35 +167,41 @@ jobs: php-version: "${{ matrix.php-version }}" tools: composer:v2 - - name: Get Composer Cache Directory - id: composer-cache - run: | - echo "::set-output name=dir::$(composer config cache-files-dir)" - - - uses: actions/cache@v1 - with: - path: ${{ steps.composer-cache.outputs.dir }} - key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} - restore-keys: | - ${{ runner.os }}-composer- - - name: Install dependencies - run: composer install --prefer-dist --no-progress --no-suggest + run: composer require --no-interaction --prefer-dist --no-progress "typo3/cms-backend:${{ matrix.typo3-version }}" "typo3/cms-core:${{ matrix.typo3-version }}" "typo3/cms-extbase:${{ matrix.typo3-version }}" "typo3/cms-frontend:${{ matrix.typo3-version }}" "typo3/cms-fluid-styled-content:${{ matrix.typo3-version }}" - name: PHPUnit Tests run: ./vendor/bin/phpunit --testdox - tests-mysql-8: + tests-mysql: runs-on: ubuntu-latest needs: - - check-dependencies + - php-linting - xml-linting strategy: matrix: - php-version: - - 7.2 - - 7.3 - - 7.4 + include: + - php-version: '7.2' + typo3-version: '^10.4' + db-version: '5.6' + - php-version: '7.3' + typo3-version: '^10.4' + db-version: '5.6' + - php-version: '7.4' + typo3-version: '^10.4' + db-version: '5.6' + - php-version: '7.4' + typo3-version: '^10.4' + db-version: '8' + - php-version: '7.4' + typo3-version: '^11.5' + db-version: '8' + - php-version: '8.0' + typo3-version: '^11.5' + db-version: '8' + - php-version: '8.1' + typo3-version: '^11.5' + db-version: '8' steps: - uses: actions/checkout@v2 @@ -226,18 +211,6 @@ jobs: php-version: "${{ matrix.php-version }}" tools: composer:v2 - - name: Get Composer Cache Directory - id: composer-cache - run: | - echo "::set-output name=dir::$(composer config cache-files-dir)" - - - uses: actions/cache@v1 - with: - path: ${{ steps.composer-cache.outputs.dir }} - key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} - restore-keys: | - ${{ runner.os }}-composer- - - name: Setup MySQL uses: mirromutth/mysql-action@v1.1 with: @@ -246,7 +219,7 @@ jobs: mysql root password: 'root' - name: Install dependencies - run: composer install --prefer-dist --no-progress --no-suggest + run: composer require --no-interaction --prefer-dist --no-progress "typo3/cms-backend:${{ matrix.typo3-version }}" "typo3/cms-core:${{ matrix.typo3-version }}" "typo3/cms-extbase:${{ matrix.typo3-version }}" "typo3/cms-frontend:${{ matrix.typo3-version }}" "typo3/cms-fluid-styled-content:${{ matrix.typo3-version }}" - name: PHPUnit Tests run: |- diff --git a/Classes/Domain/Import/UrlProvider/UrlProvider.php b/Classes/Domain/Import/UrlProvider/UrlProvider.php index 6deab24..09c5c6c 100644 --- a/Classes/Domain/Import/UrlProvider/UrlProvider.php +++ b/Classes/Domain/Import/UrlProvider/UrlProvider.php @@ -28,7 +28,7 @@ use WerkraumMedia\ThueCat\Domain\Import\ImportConfiguration; interface UrlProvider { /** - * @var string[] + * @return string[] */ public function getUrls(): array; diff --git a/Classes/Domain/Model/Frontend/Offers.php b/Classes/Domain/Model/Frontend/Offers.php index 1e30c81..9821edf 100644 --- a/Classes/Domain/Model/Frontend/Offers.php +++ b/Classes/Domain/Model/Frontend/Offers.php @@ -88,7 +88,7 @@ class Offers implements TypeInterface, \Iterator, \Countable $this->position = 0; } - public function count() + public function count(): int { return count($this->array); } diff --git a/Classes/Domain/Model/Frontend/OpeningHours.php b/Classes/Domain/Model/Frontend/OpeningHours.php index 1970a02..c69046c 100644 --- a/Classes/Domain/Model/Frontend/OpeningHours.php +++ b/Classes/Domain/Model/Frontend/OpeningHours.php @@ -50,7 +50,7 @@ class OpeningHours implements TypeInterface, \Iterator, \Countable $this->serialized = $serialized; $this->array = array_map( [OpeningHour::class, 'createFromArray'], - json_decode($serialized, true) + json_decode($serialized, true) ?? [] ); } @@ -84,7 +84,7 @@ class OpeningHours implements TypeInterface, \Iterator, \Countable $this->position = 0; } - public function count() + public function count(): int { return count($this->array); } diff --git a/Classes/Frontend/DataProcessing/ResolveEntities.php b/Classes/Frontend/DataProcessing/ResolveEntities.php index 96c48aa..55d361e 100644 --- a/Classes/Frontend/DataProcessing/ResolveEntities.php +++ b/Classes/Frontend/DataProcessing/ResolveEntities.php @@ -67,9 +67,9 @@ class ResolveEntities implements DataProcessorInterface return $processedData; } - $as = $cObj->stdWrapValue('as', $processorConfiguration, 'entities'); - $tableName = $cObj->stdWrapValue('table', $processorConfiguration, ''); - $uids = $cObj->stdWrapValue('uids', $processorConfiguration, ''); + $as = (string) $cObj->stdWrapValue('as', $processorConfiguration, 'entities'); + $tableName = (string) $cObj->stdWrapValue('table', $processorConfiguration, ''); + $uids = (string) $cObj->stdWrapValue('uids', $processorConfiguration, ''); $uids = GeneralUtility::intExplode(',', $uids); if ($uids === [] || $tableName === '') { diff --git a/Resources/Private/Templates/Frontend/ContentElement/TouristAttraction.html b/Resources/Private/Templates/Frontend/ContentElement/TouristAttraction.html index b8b854b..bd0c39b 100644 --- a/Resources/Private/Templates/Frontend/ContentElement/TouristAttraction.html +++ b/Resources/Private/Templates/Frontend/ContentElement/TouristAttraction.html @@ -9,7 +9,7 @@
- +
@@ -68,8 +68,8 @@
- @@ -135,7 +135,7 @@
- +
diff --git a/Tests/Functional/Fixtures/Import/Guzzle/cdb.thuecat.org/api/ext-sync/get-updated-nodes/GET_c4796659430e72ef994a68ca29ac5e8c.txt b/Tests/Functional/Fixtures/Import/Guzzle/cdb.thuecat.org/api/ext-sync/get-updated-nodes/GET_c4796659430e72ef994a68ca29ac5e8c.txt deleted file mode 100644 index 2cba660..0000000 --- a/Tests/Functional/Fixtures/Import/Guzzle/cdb.thuecat.org/api/ext-sync/get-updated-nodes/GET_c4796659430e72ef994a68ca29ac5e8c.txt +++ /dev/null @@ -1,19 +0,0 @@ -HTTP/1.1 200 OK -Date: Mon, 31 May 2021 07:45:26 GMT -Content-Type: application/json; charset=utf-8 -Content-Length: 34 -Connection: keep-alive -access-control-allow-origin: https://cdb.thuecat.org -content-security-policy: default-src 'self'; script-src 'self' 'sha256-xfTbtWk8kVI65iLJs8LB3lWf2g0g10DS71pDdoutFHc='; style-src 'self' 'unsafe-inline' https://stackpath.bootstrapcdn.com; img-src 'self' data: blob: * -feature-policy: microphone 'none'; camera 'none'; payment 'none' -referrer-policy: same-origin -x-content-type-options: nosniff -x-xss-protection: 1; mode=block -x-frame-options: deny -access-control-allow-credentials: true -strict-transport-security: max-age=15724800; includeSubDomains -access-control-allow-headers: Authorization, Content-Type -access-control-allow-methods: HEAD, GET, POST, DELETE, OPTIONS -set-cookie: ahSession=3d594be0a8f63b6e5aa0683d86c33f0014462fff;path=/;expires=Thu, 01 Jul 2021 07:45:26 GMT;httpOnly=true; - -{"data":{"createdOrUpdated":["835224016581-dara","165868194223-zmqf","215230952334-yyno"],"removed":["319489049949-yzpe","440865870518-kcka","057564926026-ambc","502105041571-gtmz","956950809461-mkyx","505212346932-dgdj","304166137220-qegp","052993102595-yytg","008779699609-ettg","992865433390-jqcw","678174286034-dpza","473249269683-mxjj","r_20704386-oapoi","121412224073-roqx","067447662224-fhpb","103385129122-pypq","764328419582-bdhj","303605630412-cygb","891743863902-bkeb"]}} diff --git a/Tests/Functional/Fixtures/Import/Guzzle/cdb.thuecat.org/api/ext-sync/get-updated-nodes/dd4615dc-58a6-4648-a7ce-4950293a06db.json b/Tests/Functional/Fixtures/Import/Guzzle/cdb.thuecat.org/api/ext-sync/get-updated-nodes/dd4615dc-58a6-4648-a7ce-4950293a06db.json new file mode 100644 index 0000000..c6a4be7 --- /dev/null +++ b/Tests/Functional/Fixtures/Import/Guzzle/cdb.thuecat.org/api/ext-sync/get-updated-nodes/dd4615dc-58a6-4648-a7ce-4950293a06db.json @@ -0,0 +1,30 @@ +{ + "data": { + "createdOrUpdated": [ + "835224016581-dara", + "165868194223-zmqf", + "215230952334-yyno" + ], + "removed": [ + "319489049949-yzpe", + "440865870518-kcka", + "057564926026-ambc", + "502105041571-gtmz", + "956950809461-mkyx", + "505212346932-dgdj", + "304166137220-qegp", + "052993102595-yytg", + "008779699609-ettg", + "992865433390-jqcw", + "678174286034-dpza", + "473249269683-mxjj", + "r_20704386-oapoi", + "121412224073-roqx", + "067447662224-fhpb", + "103385129122-pypq", + "764328419582-bdhj", + "303605630412-cygb", + "891743863902-bkeb" + ] + } +} diff --git a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/018132452787-ngbe.json b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/018132452787-ngbe.json new file mode 100644 index 0000000..16fa9e0 --- /dev/null +++ b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/018132452787-ngbe.json @@ -0,0 +1,175 @@ +{ + "@context": { + "cdb": "https://thuecat.org/ontology/cdb/1.0/", + "dachkg": "https://thuecat.org/ontology/dachkg/1.0/", + "dbo": "http://dbpedia.org/ontology/", + "dsv": "http://ontologies.sti-innsbruck.at/dsv/", + "foaf": "http://xmlns.com/foaf/0.1/", + "owl": "http://www.w3.org/2002/07/owl#", + "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", + "rdfs": "http://www.w3.org/2000/01/rdf-schema#", + "schema": "http://schema.org/", + "sh": "http://www.w3.org/ns/shacl#", + "thuecat": "https://thuecat.org/ontology/thuecat/1.0/", + "ttgds": "https://thuecat.org/ontology/ttgds/1.0/", + "xsd": "http://www.w3.org/2001/XMLSchema#" + }, + "@graph": [ + { + "@id": "https://thuecat.org/resources/018132452787-ngbe", + "@type": [ + "schema:Organization", + "schema:Thing", + "ttgds:Organization", + "thuecat:TouristMarketingCompany" + ], + "schema:address": { + "@id": "genid-5958021d95614a2193e3f66fdc21fad1-b74252", + "@type": [ + "schema:Intangible", + "schema:PostalAddress", + "schema:StructuredValue", + "schema:Thing", + "schema:ContactPoint" + ], + "schema:addressCountry": { + "@type": "thuecat:AddressCountry", + "@value": "thuecat:Germany" + }, + "schema:addressLocality": { + "@language": "de", + "@value": "Erfurt" + }, + "schema:addressRegion": { + "@type": "thuecat:AddressFederalState", + "@value": "thuecat:Thuringia" + }, + "schema:email": { + "@language": "de", + "@value": "management@erfurt-tourismus.de" + }, + "schema:faxNumber": { + "@language": "de", + "@value": "+49 361 66 40 290" + }, + "schema:postalCode": { + "@language": "de", + "@value": "99084" + }, + "schema:streetAddress": { + "@language": "de", + "@value": "Benediktsplatz 1" + }, + "schema:telephone": { + "@language": "de", + "@value": "+49 361 66 40 200" + }, + "thuecat:typOfAddress": [ + { + "@type": "thuecat:TypOfAddress", + "@value": "thuecat:HouseAddress" + }, + { + "@type": "thuecat:TypOfAddress", + "@value": "thuecat:PostalAddressEnum" + }, + { + "@type": "thuecat:TypOfAddress", + "@value": "thuecat:BillingAddress" + } + ] + }, + "schema:description": { + "@language": "de", + "@value": "Die Erfurt Tourismus & Marketing GmbH (ETMG) wurde 1997 als offizielle Organisation zur Tourismusf\u00f6rderung in der Landeshauptstadt Erfurt gegr\u00fcndet und nahm am 01.01.1998 die Gesch\u00e4ftst\u00e4tigkeit auf.\n\nZu den Aufgaben z\u00e4hlen die kommunale Tourismusf\u00f6rderung als wesentliches Instrument der Wirtschafts- und Stadtentwicklung der Landeshauptstadt Erfurt, die Positionierung der Stadt Erfurt auf dem nationalen und internationalen Tourismusmarkt als dynamische und sympathische Landeshauptstadt, attraktives St\u00e4dtereiseziel und Tagungsstandort, die Vervollkommnung des touristischen Serviceangebotes entsprechend den Bed\u00fcrfnissen der individuellen G\u00e4ste und der Tourismuswirtschaft und das Betreiben der Erfurt Tourist Information.\n\nIm Januar 2009 wurde das Marketing f\u00fcr die Landeshauptstadt Erfurt an die ETMG \u00fcbertragen und neu geordnet. Die Hauptaufgaben im Stadtmarketing liegen darin, die Wahrnehmung der Stadt in folgenden Bereichen zu verst\u00e4rken: traditionsreicher und innovativer Wirtschaftsstandort, lebendiger und kreativer Wissenschaftsstandort, attraktiver Wohnstandort mit Flair und Sportstandort mit exzellenten Bedingungen f\u00fcr Nachwuchs- und Spitzensportler.\n\nGesellschafter: Stadt Erfurt\n\nGesch\u00e4ftsf\u00fchrerin: Frau Dr. Carmen Hildebrandt\n\nAufsichtsratsvorsitzender: Herr Dominik Kordon\n\nMitarbeiter: ca. 30 Angestellte, 4 Auszubildende" + }, + "schema:geo": { + "@id": "genid-5958021d95614a2193e3f66fdc21fad1-b74253", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:GeoCoordinates" + ], + "schema:latitude": { + "@type": "schema:Number", + "@value": "50.978437" + }, + "schema:longitude": { + "@type": "schema:Number", + "@value": "11.029873" + } + }, + "schema:hasMap": { + "@type": "schema:URL", + "@value": "https://www.google.de/maps/place/Benediktspl.+1,+99084+Erfurt/@50.9784152,11.0276505,17z/data=!4m13!1m7!3m6!1s0x47a472961021c18b:0xc2d4b6b7eb27d4c1!2sBenediktspl.+1,+99084+Erfurt!3b1!8m2!3d50.9784118!4d11.0298392!3m4!1s0x47a472961021c18b:0xc2d4b6b7eb27d4c1!8m2!3d50.9784118!4d11.0298392?hl=de" + }, + "schema:name": { + "@language": "de", + "@value": "Erfurt Tourismus und Marketing GmbH" + }, + "schema:openingHoursSpecification": { + "@id": "genid-5958021d95614a2193e3f66fdc21fad1-b74254", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:OpeningHoursSpecification" + ], + "schema:closes": { + "@type": "schema:Time", + "@value": "16:00:00" + }, + "schema:dayOfWeek": [ + { + "@type": "schema:DayOfWeek", + "@value": "schema:Friday" + }, + { + "@type": "schema:DayOfWeek", + "@value": "schema:Thursday" + }, + { + "@type": "schema:DayOfWeek", + "@value": "schema:Tuesday" + }, + { + "@type": "schema:DayOfWeek", + "@value": "schema:Monday" + }, + { + "@type": "schema:DayOfWeek", + "@value": "schema:Wednesday" + } + ], + "schema:opens": { + "@type": "schema:Time", + "@value": "08:30:00" + }, + "schema:validFrom": { + "@type": "schema:Date", + "@value": "2020-12-01" + }, + "schema:validThrough": { + "@type": "schema:Date", + "@value": "2021-12-31" + } + }, + "schema:url": { + "@type": "schema:URL", + "@value": "https://www.erfurt-tourismus.de/en/" + }, + "thuecat:contentResponsible": { + "@id": "https://thuecat.org/resources/018132452787-ngbe" + }, + "thuecat:managedObjects": [ + { + "@id": "https://thuecat.org/resources/333039283321-xxwg" + }, + { + "@id": "https://thuecat.org/resources/186583376407-xkwx" + } + ] + } + ] +} diff --git a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/018132452787-ngbe/GET_db6ddab431e478674213d8b4742da8d9.txt b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/018132452787-ngbe/GET_db6ddab431e478674213d8b4742da8d9.txt deleted file mode 100644 index 5a95e9f..0000000 --- a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/018132452787-ngbe/GET_db6ddab431e478674213d8b4742da8d9.txt +++ /dev/null @@ -1,19 +0,0 @@ -HTTP/1.1 200 OK -Date: Wed, 17 Feb 2021 08:02:02 GMT -Content-Type: application/ld+json; charset=utf-8 -Content-Length: 5022 -Connection: keep-alive -Set-Cookie: ahSession=888eb5d2b37183f9da12f899eb1edd7560d7cbca;path=/;expires=Sat, 20 Mar 2021 08:02:02 GMT;httpOnly=true; -Access-Control-Allow-Methods: HEAD, GET, POST, DELETE, OPTIONS -Access-Control-Allow-Headers: Authorization, Content-Type -Strict-Transport-Security: max-age=15724800; includeSubDomains -Access-Control-Allow-Credentials: true -X-Frame-Options: deny -X-XSS-Protection: 1; mode=block -X-Content-Type-Options: nosniff -Referrer-Policy: same-origin -Feature-Policy: microphone 'none'; camera 'none'; payment 'none' -Content-Security-Policy: default-src 'self'; script-src 'self' 'sha256-xfTbtWk8kVI65iLJs8LB3lWf2g0g10DS71pDdoutFHc='; style-src 'self' 'unsafe-inline' https://stackpath.bootstrapcdn.com; img-src 'self' data: blob: * -Access-Control-Allow-Origin: https://cdb.thuecat.org - -{"@context":{"schema":"http://schema.org/","dbo":"http://dbpedia.org/ontology/","dsv":"http://ontologies.sti-innsbruck.at/dsv/","foaf":"http://xmlns.com/foaf/0.1/","owl":"http://www.w3.org/2002/07/owl#","rdf":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","rdfs":"http://www.w3.org/2000/01/rdf-schema#","sh":"http://www.w3.org/ns/shacl#","xsd":"http://www.w3.org/2001/XMLSchema#","ttgds":"https://thuecat.org/ontology/ttgds/1.0/","cdb":"https://thuecat.org/ontology/cdb/1.0/","dachkg":"https://thuecat.org/ontology/dachkg/1.0/","thuecat":"https://thuecat.org/ontology/thuecat/1.0/"},"@graph":[{"@id":"https://thuecat.org/resources/018132452787-ngbe","@type":["schema:Organization","schema:Thing","ttgds:Organization","thuecat:TouristMarketingCompany"],"schema:description":{"@language":"de","@value":"Die Erfurt Tourismus & Marketing GmbH (ETMG) wurde 1997 als offizielle Organisation zur Tourismusförderung in der Landeshauptstadt Erfurt gegründet und nahm am 01.01.1998 die Geschäftstätigkeit auf.\n\nZu den Aufgaben zählen die kommunale Tourismusförderung als wesentliches Instrument der Wirtschafts- und Stadtentwicklung der Landeshauptstadt Erfurt, die Positionierung der Stadt Erfurt auf dem nationalen und internationalen Tourismusmarkt als dynamische und sympathische Landeshauptstadt, attraktives Städtereiseziel und Tagungsstandort, die Vervollkommnung des touristischen Serviceangebotes entsprechend den Bedürfnissen der individuellen Gäste und der Tourismuswirtschaft und das Betreiben der Erfurt Tourist Information.\n\nIm Januar 2009 wurde das Marketing für die Landeshauptstadt Erfurt an die ETMG übertragen und neu geordnet. Die Hauptaufgaben im Stadtmarketing liegen darin, die Wahrnehmung der Stadt in folgenden Bereichen zu verstärken: traditionsreicher und innovativer Wirtschaftsstandort, lebendiger und kreativer Wissenschaftsstandort, attraktiver Wohnstandort mit Flair und Sportstandort mit exzellenten Bedingungen für Nachwuchs- und Spitzensportler.\n\nGesellschafter: Stadt Erfurt\n\nGeschäftsführerin: Frau Dr. Carmen Hildebrandt\n\nAufsichtsratsvorsitzender: Herr Dominik Kordon\n\nMitarbeiter: ca. 30 Angestellte, 4 Auszubildende"},"schema:name":{"@language":"de","@value":"Erfurt Tourismus und Marketing GmbH"},"schema:hasMap":{"@type":"schema:URL","@value":"https://www.google.de/maps/place/Benediktspl.+1,+99084+Erfurt/@50.9784152,11.0276505,17z/data=!4m13!1m7!3m6!1s0x47a472961021c18b:0xc2d4b6b7eb27d4c1!2sBenediktspl.+1,+99084+Erfurt!3b1!8m2!3d50.9784118!4d11.0298392!3m4!1s0x47a472961021c18b:0xc2d4b6b7eb27d4c1!8m2!3d50.9784118!4d11.0298392?hl=de"},"schema:geo":{"@id":"genid-5958021d95614a2193e3f66fdc21fad1-b74253","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:GeoCoordinates"],"schema:longitude":{"@type":"schema:Number","@value":"11.029873"},"schema:latitude":{"@type":"schema:Number","@value":"50.978437"}},"schema:openingHoursSpecification":{"@id":"genid-5958021d95614a2193e3f66fdc21fad1-b74254","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:OpeningHoursSpecification"],"schema:validFrom":{"@type":"schema:Date","@value":"2020-12-01"},"schema:dayOfWeek":[{"@type":"schema:DayOfWeek","@value":"schema:Friday"},{"@type":"schema:DayOfWeek","@value":"schema:Thursday"},{"@type":"schema:DayOfWeek","@value":"schema:Tuesday"},{"@type":"schema:DayOfWeek","@value":"schema:Monday"},{"@type":"schema:DayOfWeek","@value":"schema:Wednesday"}],"schema:opens":{"@type":"schema:Time","@value":"08:30:00"},"schema:validThrough":{"@type":"schema:Date","@value":"2021-12-31"},"schema:closes":{"@type":"schema:Time","@value":"16:00:00"}},"schema:url":{"@type":"schema:URL","@value":"https://www.erfurt-tourismus.de/en/"},"schema:address":{"@id":"genid-5958021d95614a2193e3f66fdc21fad1-b74252","@type":["schema:Intangible","schema:PostalAddress","schema:StructuredValue","schema:Thing","schema:ContactPoint"],"schema:addressLocality":{"@language":"de","@value":"Erfurt"},"schema:addressCountry":{"@type":"thuecat:AddressCountry","@value":"thuecat:Germany"},"schema:postalCode":{"@language":"de","@value":"99084"},"schema:addressRegion":{"@type":"thuecat:AddressFederalState","@value":"thuecat:Thuringia"},"schema:telephone":{"@language":"de","@value":"+49 361 66 40 200"},"schema:email":{"@language":"de","@value":"management@erfurt-tourismus.de"},"schema:streetAddress":{"@language":"de","@value":"Benediktsplatz 1"},"schema:faxNumber":{"@language":"de","@value":"+49 361 66 40 290"},"thuecat:typOfAddress":[{"@type":"thuecat:TypOfAddress","@value":"thuecat:HouseAddress"},{"@type":"thuecat:TypOfAddress","@value":"thuecat:PostalAddressEnum"},{"@type":"thuecat:TypOfAddress","@value":"thuecat:BillingAddress"}]},"thuecat:contentResponsible":{"@id":"https://thuecat.org/resources/018132452787-ngbe"},"thuecat:managedObjects":[{"@id":"https://thuecat.org/resources/333039283321-xxwg"},{"@id":"https://thuecat.org/resources/186583376407-xkwx"}]}]} diff --git a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/043064193523-jcyt.json b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/043064193523-jcyt.json new file mode 100644 index 0000000..deff316 --- /dev/null +++ b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/043064193523-jcyt.json @@ -0,0 +1,751 @@ +{ + "@context": { + "cdb": "https://thuecat.org/ontology/cdb/1.0/", + "dachkg": "https://thuecat.org/ontology/dachkg/1.0/", + "dbo": "http://dbpedia.org/ontology/", + "dsv": "http://ontologies.sti-innsbruck.at/dsv/", + "foaf": "http://xmlns.com/foaf/0.1/", + "owl": "http://www.w3.org/2002/07/owl#", + "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", + "rdfs": "http://www.w3.org/2000/01/rdf-schema#", + "schema": "http://schema.org/", + "sh": "http://www.w3.org/ns/shacl#", + "thuecat": "https://thuecat.org/ontology/thuecat/1.0/", + "ttgds": "https://thuecat.org/ontology/ttgds/1.0/", + "xsd": "http://www.w3.org/2001/XMLSchema#" + }, + "@graph": [ + { + "@id": "https://thuecat.org/resources/043064193523-jcyt", + "@type": [ + "schema:AdministrativeArea", + "schema:Place", + "schema:Thing", + "schema:City", + "ttgds:Destination", + "thuecat:Town" + ], + "schema:address": { + "@id": "genid-c3843c2db4f74da2bc4a1785b63143b2-b0", + "@type": [ + "schema:Intangible", + "schema:PostalAddress", + "schema:StructuredValue", + "schema:Thing", + "schema:ContactPoint" + ], + "schema:addressCountry": { + "@type": "thuecat:AddressCountry", + "@value": "thuecat:Germany" + }, + "schema:addressLocality": { + "@language": "de", + "@value": "Erfurt" + }, + "schema:addressRegion": { + "@type": "thuecat:AddressFederalState", + "@value": "thuecat:Thuringia" + }, + "schema:postalCode": { + "@language": "de", + "@value": "99084" + } + }, + "schema:containsPlace": [ + { + "@id": "https://thuecat.org/resources/333039283321-xxwg" + }, + { + "@id": "https://thuecat.org/resources/814644346598-eady" + }, + { + "@id": "https://thuecat.org/resources/036206461121-fwro" + }, + { + "@id": "https://thuecat.org/resources/908740175209-zbep" + }, + { + "@id": "https://thuecat.org/resources/870914036779-rotr" + }, + { + "@id": "https://thuecat.org/resources/835224016581-dara" + }, + { + "@id": "https://thuecat.org/resources/038217539089-tpzo" + }, + { + "@id": "https://thuecat.org/resources/385236220414-peyn" + }, + { + "@id": "https://thuecat.org/resources/100663136458-wnqz" + }, + { + "@id": "https://thuecat.org/resources/742419978013-egpn" + }, + { + "@id": "https://thuecat.org/resources/695675991537-pkgh" + }, + { + "@id": "https://thuecat.org/resources/r_16573215-oapoi" + }, + { + "@id": "https://thuecat.org/resources/693056964175-popt" + }, + { + "@id": "https://thuecat.org/resources/261473008149-bqha" + }, + { + "@id": "https://thuecat.org/resources/867654076132-ctkb" + }, + { + "@id": "https://thuecat.org/resources/577964242675-ncqh" + }, + { + "@id": "https://thuecat.org/resources/194702880695-babn" + }, + { + "@id": "https://thuecat.org/resources/349369090551-czbc" + }, + { + "@id": "https://thuecat.org/resources/336670524389-dhkh" + }, + { + "@id": "https://thuecat.org/resources/137174540587-whcq" + }, + { + "@id": "https://thuecat.org/resources/215230952334-yyno" + }, + { + "@id": "https://thuecat.org/resources/165868194223-zmqf" + }, + { + "@id": "https://thuecat.org/resources/349986440346-kbkf" + }, + { + "@id": "https://thuecat.org/resources/794900260253-wjab" + }, + { + "@id": "https://thuecat.org/resources/363938447400-ammb" + }, + { + "@id": "https://thuecat.org/resources/910322602048-aggj" + }, + { + "@id": "https://thuecat.org/resources/r_18832477-oapoi" + }, + { + "@id": "https://thuecat.org/resources/990967907066-yowb" + }, + { + "@id": "https://thuecat.org/resources/116065037812-pxop" + }, + { + "@id": "https://thuecat.org/resources/r_16537648-oapoi" + }, + { + "@id": "https://thuecat.org/resources/216781932201-mnca" + }, + { + "@id": "https://thuecat.org/resources/468390440169-wqtb" + }, + { + "@id": "https://thuecat.org/resources/116693795002-caxe" + }, + { + "@id": "https://thuecat.org/resources/932209179057-xqhd" + }, + { + "@id": "https://thuecat.org/resources/120279830561-gtne" + }, + { + "@id": "https://thuecat.org/resources/427978371125-hekp" + }, + { + "@id": "https://thuecat.org/resources/961330512980-aqxb" + }, + { + "@id": "https://thuecat.org/resources/368856308942-qhpb" + }, + { + "@id": "https://thuecat.org/resources/808198711450-jjkq" + }, + { + "@id": "https://thuecat.org/resources/869812477528-jrka" + }, + { + "@id": "https://thuecat.org/resources/440055527204-ocar" + }, + { + "@id": "https://thuecat.org/resources/476888881990-xpwq" + }, + { + "@id": "https://thuecat.org/resources/r_22031603-oapoi" + }, + { + "@id": "https://thuecat.org/resources/896842796891-acor" + }, + { + "@id": "https://thuecat.org/resources/151363873581-zgqy" + }, + { + "@id": "https://thuecat.org/resources/r_16573254-oapoi" + }, + { + "@id": "https://thuecat.org/resources/251557685903-ojxy" + }, + { + "@id": "https://thuecat.org/resources/930258935911-zygb" + }, + { + "@id": "https://thuecat.org/resources/992051761203-hpqd" + }, + { + "@id": "https://thuecat.org/resources/057564926026-ambc" + }, + { + "@id": "https://thuecat.org/resources/082899814505-jdyz" + }, + { + "@id": "https://thuecat.org/resources/099270315175-tobe" + }, + { + "@id": "https://thuecat.org/resources/085897295894-eeec" + }, + { + "@id": "https://thuecat.org/resources/955556108903-hpbr" + }, + { + "@id": "https://thuecat.org/resources/123187973253-zoph" + }, + { + "@id": "https://thuecat.org/resources/126604040143-ypqe" + }, + { + "@id": "https://thuecat.org/resources/966971793568-wkhp" + }, + { + "@id": "https://thuecat.org/resources/697088130167-afza" + }, + { + "@id": "https://thuecat.org/resources/139008038246-efyh" + }, + { + "@id": "https://thuecat.org/resources/141686779894-qeza" + }, + { + "@id": "https://thuecat.org/resources/155341710750-xgta" + }, + { + "@id": "https://thuecat.org/resources/167122161706-yqnr" + }, + { + "@id": "https://thuecat.org/resources/184439534670-ctnc" + }, + { + "@id": "https://thuecat.org/resources/944052714860-tyzj" + }, + { + "@id": "https://thuecat.org/resources/199739900497-ywob" + }, + { + "@id": "https://thuecat.org/resources/r_16537649-oapoi" + }, + { + "@id": "https://thuecat.org/resources/222117007079-hfet" + }, + { + "@id": "https://thuecat.org/resources/225399686834-peee" + }, + { + "@id": "https://thuecat.org/resources/480724724877-kanp" + }, + { + "@id": "https://thuecat.org/resources/250106386854-ywtf" + }, + { + "@id": "https://thuecat.org/resources/859001684315-exdj" + }, + { + "@id": "https://thuecat.org/resources/272434428755-oodz" + }, + { + "@id": "https://thuecat.org/resources/512870662140-gnmz" + }, + { + "@id": "https://thuecat.org/resources/281430987928-tpmy" + }, + { + "@id": "https://thuecat.org/resources/312095205351-aygr" + }, + { + "@id": "https://thuecat.org/resources/360184372865-whho" + }, + { + "@id": "https://thuecat.org/resources/328080994144-awjo" + }, + { + "@id": "https://thuecat.org/resources/346560528406-atyt" + }, + { + "@id": "https://thuecat.org/resources/355818601084-zegp" + }, + { + "@id": "https://thuecat.org/resources/359061478707-rcee" + }, + { + "@id": "https://thuecat.org/resources/572846924980-xpdx" + }, + { + "@id": "https://thuecat.org/resources/726163858235-btpm" + }, + { + "@id": "https://thuecat.org/resources/r_16572783-oapoi" + }, + { + "@id": "https://thuecat.org/resources/380367030744-yoej" + }, + { + "@id": "https://thuecat.org/resources/401762571799-ekqt" + }, + { + "@id": "https://thuecat.org/resources/418412449486-nfba" + }, + { + "@id": "https://thuecat.org/resources/461246670093-rgnz" + }, + { + "@id": "https://thuecat.org/resources/482823012971-pzxy" + }, + { + "@id": "https://thuecat.org/resources/499916747296-jkxm" + }, + { + "@id": "https://thuecat.org/resources/r_22033376-oapoi" + }, + { + "@id": "https://thuecat.org/resources/r_22033250-oapoi" + }, + { + "@id": "https://thuecat.org/resources/503994310066-ewnx" + }, + { + "@id": "https://thuecat.org/resources/518003791779-jhda" + }, + { + "@id": "https://thuecat.org/resources/521674062490-camr" + }, + { + "@id": "https://thuecat.org/resources/533141230492-qkaj" + }, + { + "@id": "https://thuecat.org/resources/568228874688-hbra" + }, + { + "@id": "https://thuecat.org/resources/972804121358-dtfk" + }, + { + "@id": "https://thuecat.org/resources/821546995253-xbmd" + }, + { + "@id": "https://thuecat.org/resources/588978431485-wpbd" + }, + { + "@id": "https://thuecat.org/resources/608580216388-kamq" + }, + { + "@id": "https://thuecat.org/resources/634257818494-ftmh" + }, + { + "@id": "https://thuecat.org/resources/653387237068-kphf" + }, + { + "@id": "https://thuecat.org/resources/r_19005250-oapoi" + }, + { + "@id": "https://thuecat.org/resources/805943406349-bodz" + }, + { + "@id": "https://thuecat.org/resources/666317086800-kmbe" + }, + { + "@id": "https://thuecat.org/resources/683989873847-xhpw" + }, + { + "@id": "https://thuecat.org/resources/700377261083-rpdh" + }, + { + "@id": "https://thuecat.org/resources/739758486289-wwdb" + }, + { + "@id": "https://thuecat.org/resources/759167474657-jnfn" + }, + { + "@id": "https://thuecat.org/resources/834764277582-ywpc" + }, + { + "@id": "https://thuecat.org/resources/838757899629-mqjw" + }, + { + "@id": "https://thuecat.org/resources/843304041370-hfon" + }, + { + "@id": "https://thuecat.org/resources/848652587933-hrfm" + }, + { + "@id": "https://thuecat.org/resources/850274378380-rewb" + }, + { + "@id": "https://thuecat.org/resources/880179570350-ookn" + }, + { + "@id": "https://thuecat.org/resources/884735209890-dgyw" + }, + { + "@id": "https://thuecat.org/resources/900589533599-hmaw" + }, + { + "@id": "https://thuecat.org/resources/912040339410-preg" + }, + { + "@id": "https://thuecat.org/resources/939213514979-nmzm" + }, + { + "@id": "https://thuecat.org/resources/991438243950-tjpt" + }, + { + "@id": "https://thuecat.org/resources/r_22047170-oapoi" + }, + { + "@id": "https://thuecat.org/resources/r_16572949-oapoi" + }, + { + "@id": "https://thuecat.org/resources/r_17122065-oapoi" + }, + { + "@id": "https://thuecat.org/resources/r_22033022-oapoi" + }, + { + "@id": "https://thuecat.org/resources/r_16573059-oapoi" + }, + { + "@id": "https://thuecat.org/resources/r_16537651-oapoi" + }, + { + "@id": "https://thuecat.org/resources/r_22032181-oapoi" + }, + { + "@id": "https://thuecat.org/resources/r_22032682-oapoi" + }, + { + "@id": "https://thuecat.org/resources/r_22033172-oapoi" + }, + { + "@id": "https://thuecat.org/resources/r_16537646-oapoi" + }, + { + "@id": "https://thuecat.org/resources/r_16573298-oapoi" + }, + { + "@id": "https://thuecat.org/resources/r_16537681-oapoi" + }, + { + "@id": "https://thuecat.org/resources/128697819471-tykc" + }, + { + "@id": "https://thuecat.org/resources/878180752617-zeao" + }, + { + "@id": "https://thuecat.org/resources/564418816137-zcwf" + }, + { + "@id": "https://thuecat.org/resources/691296454763-qdjy" + }, + { + "@id": "https://thuecat.org/resources/356133173991-cryw" + }, + { + "@id": "https://thuecat.org/resources/624606342071-epht" + }, + { + "@id": "https://thuecat.org/resources/052821473718-oxfq" + }, + { + "@id": "https://thuecat.org/resources/508431710173-wwne" + }, + { + "@id": "https://thuecat.org/resources/497839263245-edbm" + }, + { + "@id": "https://thuecat.org/resources/139884583363-nwca" + }, + { + "@id": "https://thuecat.org/resources/967711372684-nppc" + }, + { + "@id": "https://thuecat.org/resources/928240397005-ofhr" + }, + { + "@id": "https://thuecat.org/resources/056407295912-gtoa" + }, + { + "@id": "https://thuecat.org/resources/593429619201-akfy" + }, + { + "@id": "https://thuecat.org/resources/557811883551-khnn" + }, + { + "@id": "https://thuecat.org/resources/155190911735-cmkm" + }, + { + "@id": "https://thuecat.org/resources/449193857355-jkoq" + }, + { + "@id": "https://thuecat.org/resources/370056129324-jnod" + }, + { + "@id": "https://thuecat.org/resources/679847498823-ozdn" + }, + { + "@id": "https://thuecat.org/resources/022922630389-roan" + }, + { + "@id": "https://thuecat.org/resources/946085645388-jxzw" + }, + { + "@id": "https://thuecat.org/resources/342591758526-qhbz" + }, + { + "@id": "https://thuecat.org/resources/773867290677-awkq" + }, + { + "@id": "https://thuecat.org/resources/748599853417-rjoz" + }, + { + "@id": "https://thuecat.org/resources/549943366543-zxzt" + }, + { + "@id": "https://thuecat.org/resources/178460707562-htwo" + }, + { + "@id": "https://thuecat.org/resources/379284820802-gkxd" + }, + { + "@id": "https://thuecat.org/resources/749537574485-pzoj" + } + ], + "schema:description": [ + { + "@language": "de", + "@value": "Kr\u00e4merbr\u00fccke, Dom, Alte Synagoge \u2013 die Th\u00fcringer Landeshauptstadt Erfurt hat viele Kultursch\u00e4tze. Und ein wunderbar junges, studentisches Flair.Eine gute Mischung f\u00fcr alle, die beim Schlendern und Bummeln gerne St\u00e4dte entdecken: Denn in Erfurt findet man einen wunderbaren mittelalterlichen Stadtkern \u2013 mit vielen netten L\u00e4den, Caf\u00e8s und Restaurants. Urlauber wie Einheimische bummeln durch die Gassen der Altstadt, aus allen Ecken wispern Geschichte und alte Geschichten. Stolze historische B\u00fcgerh\u00e4user bilden eine der sch\u00f6nsten Altst\u00e4dte Europas, mittendrin das neugotische Rathaus aus den 1870er-Jahren am Fischmarkt, die spitzt\u00fcrmige St. Severikirche und der m\u00e4chtige Dom, 1117 erstmals urkundlich erw\u00e4hnt \u2013 auf seiner schier endlosen, kaskadenf\u00f6rmigen Freitreppe chillen Jung und Alt gern in der Abendsonne. Ehe sie weiter ziehen zum Tagesausklang in eine der coolen Kneipen und Bars (Tipp: Oma Lilo oder Caf\u00e8 Hilgenfeld), in die Wein-Destille am benachbarten Petersberg oder in eins der l\u00e4ssigen Restaurants (Tipp: Mathilda oder Ballenberger), wo zum freundlichen Miteinander eine frische und moderne K\u00fcche serviert wird.In Erfurt pulsiert das Leben, lassen Sie sich einfach treiben. Von Ihrer Neugierde ..." + }, + { + "@id": "genid-c3843c2db4f74da2bc4a1785b63143b2-b1", + "@type": [ + "thuecat:Html" + ], + "schema:value": { + "@language": "de", + "@value": "Kr\u00e4merbr\u00fccke, Dom, Alte Synagoge \u2013 die Th\u00fcringer Landeshauptstadt Erfurt hat viele Kultursch\u00e4tze. Und ein wunderbar junges, studentisches Flair.Eine gute Mischung f\u00fcr alle, die beim Schlendern und Bummeln gerne St\u00e4dte entdecken: Denn in Erfurt findet man einen wunderbaren mittelalterlichen Stadtkern \u2013 mit vielen netten L\u00e4den, Caf\u00e8s und Restaurants. Urlauber wie Einheimische bummeln durch die Gassen der Altstadt, aus allen Ecken wispern Geschichte und alte Geschichten. Stolze historische B\u00fcgerh\u00e4user bilden eine der sch\u00f6nsten Altst\u00e4dte Europas, mittendrin das neugotische Rathaus aus den 1870er-Jahren am Fischmarkt, die spitzt\u00fcrmige St. Severikirche und der m\u00e4chtige Dom, 1117 erstmals urkundlich erw\u00e4hnt \u2013 auf seiner schier endlosen, kaskadenf\u00f6rmigen Freitreppe chillen Jung und Alt gern in der Abendsonne. Ehe sie weiter ziehen zum Tagesausklang in eine der coolen Kneipen und Bars (Tipp: Oma Lilo oder Caf\u00e8 Hilgenfeld), in die Wein-Destille am benachbarten Petersberg oder in eins der l\u00e4ssigen Restaurants (Tipp: Mathilda oder Ballenberger), wo zum freundlichen Miteinander eine frische und moderne K\u00fcche serviert wird.In Erfurt pulsiert das Leben, lassen Sie sich einfach treiben. Von Ihrer Neugierde ..." + } + } + ], + "schema:geo": { + "@id": "genid-c3843c2db4f74da2bc4a1785b63143b2-b2", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:GeoCoordinates" + ], + "schema:latitude": { + "@type": "schema:Number", + "@value": "50.97658847089682" + }, + "schema:longitude": { + "@type": "schema:Number", + "@value": "11.02752685546875" + } + }, + "schema:hasMap": { + "@type": "schema:URL", + "@value": "https://www.google.com/maps/search/?api=1&query=11.02752685546875,11.02752685546875" + }, + "schema:identifier": [ + { + "@type": "schema:URL", + "@value": "https://www.thueringen-entdecken.de/urlaub-hotel-reisen/erfurt-102097.html" + }, + { + "@id": "genid-c3843c2db4f74da2bc4a1785b63143b2-b3", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@language": "de", + "@value": "TOMASID" + }, + "schema:value": { + "@language": "de", + "@value": "TTG00020050000218774" + } + } + ], + "schema:name": { + "@language": "de", + "@value": "Erfurt" + }, + "schema:sameAs": { + "@type": "schema:URL", + "@value": "http://www.erfurt-tourismus.de" + }, + "schema:subjectOf": [ + { + "@id": "https://thuecat.org/resources/dms_5293389" + }, + { + "@id": "https://thuecat.org/resources/dms_5293416" + }, + { + "@id": "https://thuecat.org/resources/dms_5293364" + }, + { + "@id": "https://thuecat.org/resources/dms_5293443" + }, + { + "@id": "https://thuecat.org/resources/dms_5293505" + }, + { + "@id": "https://thuecat.org/resources/dms_5293535" + }, + { + "@id": "https://thuecat.org/resources/dms_5293566" + }, + { + "@id": "https://thuecat.org/resources/dms_5293597" + }, + { + "@id": "https://thuecat.org/resources/dms_5293472" + }, + { + "@id": "https://thuecat.org/resources/dms_5293628" + }, + { + "@id": "https://thuecat.org/resources/dms_5293658" + }, + { + "@id": "https://thuecat.org/resources/dms_5293688" + }, + { + "@id": "https://thuecat.org/resources/dms_5293720" + }, + { + "@id": "https://thuecat.org/resources/dms_5293749" + }, + { + "@id": "https://thuecat.org/resources/dms_5293778" + }, + { + "@id": "https://thuecat.org/resources/dms_5301198" + }, + { + "@id": "https://thuecat.org/resources/dms_5301226" + }, + { + "@id": "https://thuecat.org/resources/dms_5301252" + }, + { + "@id": "https://thuecat.org/resources/dms_5301333" + }, + { + "@id": "https://thuecat.org/resources/dms_5301367" + }, + { + "@id": "https://thuecat.org/resources/dms_5301494" + }, + { + "@id": "https://thuecat.org/resources/dms_5301396" + }, + { + "@id": "https://thuecat.org/resources/dms_5301527" + }, + { + "@id": "https://thuecat.org/resources/dms_5301426" + }, + { + "@id": "https://thuecat.org/resources/dms_5301462" + }, + { + "@id": "https://thuecat.org/resources/dms_5336613" + }, + { + "@id": "https://thuecat.org/resources/dms_5336636" + }, + { + "@id": "https://thuecat.org/resources/dms_5363191" + }, + { + "@id": "https://thuecat.org/resources/dms_5363216" + }, + { + "@id": "https://thuecat.org/resources/dms_5363273" + }, + { + "@id": "https://thuecat.org/resources/dms_5363303" + }, + { + "@id": "https://thuecat.org/resources/dms_5363245" + } + ], + "schema:url": { + "@type": "schema:URL", + "@value": "http://www.erfurt-tourismus.de" + }, + "thuecat:contentResponsible": { + "@id": "https://thuecat.org/resources/018132452787-ngbe" + }, + "thuecat:destinationManagementOrganisation": { + "@id": "https://thuecat.org/resources/018132452787-ngbe" + }, + "thuecat:managedBy": { + "@id": "https://thuecat.org/resources/018132452787-ngbe" + }, + "thuecat:monumentEnum": { + "@type": "thuecat:MonumentEnum", + "@value": "thuecat:ZeroInformationMemorialClass" + }, + "thuecat:regionalKey": { + "@language": "de", + "@value": "160510000000" + }, + "thuecat:tomasLocationID": { + "@language": "de", + "@value": "TTG00020050000218774" + }, + "thuecat:trafficConnection": [ + { + "@type": "thuecat:TrafficConnection", + "@value": "thuecat:BusRoute" + }, + { + "@type": "thuecat:TrafficConnection", + "@value": "thuecat:RoadConnection" + }, + { + "@type": "thuecat:TrafficConnection", + "@value": "thuecat:RailwayStationEnuMem" + }, + { + "@type": "thuecat:TrafficConnection", + "@value": "thuecat:MotorwayConnection" + }, + { + "@type": "thuecat:TrafficConnection", + "@value": "thuecat:Airport" + } + ] + } + ] +} diff --git a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/043064193523-jcyt/GET_743108148f233523cbdd774d53b73035.txt b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/043064193523-jcyt/GET_743108148f233523cbdd774d53b73035.txt deleted file mode 100644 index f3a28f8..0000000 --- a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/043064193523-jcyt/GET_743108148f233523cbdd774d53b73035.txt +++ /dev/null @@ -1,19 +0,0 @@ -HTTP/1.1 200 OK -Date: Mon, 09 Aug 2021 06:28:07 GMT -Content-Type: application/ld+json; charset=utf-8 -Content-Length: 30967 -Connection: keep-alive -Set-Cookie: ahSession=ce38109539e852ab96dd57bc3c1a153b30a79a54;path=/;expires=Thu, 09 Sep 2021 06:28:07 GMT;httpOnly=true; -Access-Control-Allow-Methods: HEAD, GET, POST, DELETE, OPTIONS -Access-Control-Allow-Headers: Authorization, Content-Type -Strict-Transport-Security: max-age=15724800; includeSubDomains -Access-Control-Allow-Credentials: true -X-Frame-Options: deny -X-XSS-Protection: 1; mode=block -X-Content-Type-Options: nosniff -Referrer-Policy: same-origin -Feature-Policy: microphone 'none'; camera 'none'; payment 'none' -Content-Security-Policy: default-src 'self'; script-src 'self' 'sha256-xfTbtWk8kVI65iLJs8LB3lWf2g0g10DS71pDdoutFHc=' 'sha256-tuKkEf3LPSeyF8feKxOP/mEsa6nRR8toFxvAwO9cuhE='; style-src 'self' 'unsafe-inline' https://stackpath.bootstrapcdn.com; img-src 'self' data: blob: * -Access-Control-Allow-Origin: https://cdb.thuecat.org - -{"@context":{"schema":"http://schema.org/","dbo":"http://dbpedia.org/ontology/","dsv":"http://ontologies.sti-innsbruck.at/dsv/","foaf":"http://xmlns.com/foaf/0.1/","owl":"http://www.w3.org/2002/07/owl#","rdf":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","rdfs":"http://www.w3.org/2000/01/rdf-schema#","sh":"http://www.w3.org/ns/shacl#","xsd":"http://www.w3.org/2001/XMLSchema#","ttgds":"https://thuecat.org/ontology/ttgds/1.0/","cdb":"https://thuecat.org/ontology/cdb/1.0/","dachkg":"https://thuecat.org/ontology/dachkg/1.0/","thuecat":"https://thuecat.org/ontology/thuecat/1.0/"},"@graph":[{"@id":"https://thuecat.org/resources/043064193523-jcyt","@type":["schema:AdministrativeArea","schema:Place","schema:Thing","schema:City","ttgds:Destination","thuecat:Town"],"schema:description":[{"@language":"de","@value":"Krämerbrücke, Dom, Alte Synagoge – die Thüringer Landeshauptstadt Erfurt hat viele Kulturschätze. Und ein wunderbar junges, studentisches Flair.Eine gute Mischung für alle, die beim Schlendern und Bummeln gerne Städte entdecken: Denn in Erfurt findet man einen wunderbaren mittelalterlichen Stadtkern – mit vielen netten Läden, Cafès und Restaurants. Urlauber wie Einheimische bummeln durch die Gassen der Altstadt, aus allen Ecken wispern Geschichte und alte Geschichten. Stolze historische Bügerhäuser bilden eine der schönsten Altstädte Europas, mittendrin das neugotische Rathaus aus den 1870er-Jahren am Fischmarkt, die spitztürmige St. Severikirche und der mächtige Dom, 1117 erstmals urkundlich erwähnt – auf seiner schier endlosen, kaskadenförmigen Freitreppe chillen Jung und Alt gern in der Abendsonne. Ehe sie weiter ziehen zum Tagesausklang in eine der coolen Kneipen und Bars (Tipp: Oma Lilo oder Cafè Hilgenfeld), in die Wein-Destille am benachbarten Petersberg oder in eins der lässigen Restaurants (Tipp: Mathilda oder Ballenberger), wo zum freundlichen Miteinander eine frische und moderne Küche serviert wird.In Erfurt pulsiert das Leben, lassen Sie sich einfach treiben. Von Ihrer Neugierde ..."},{"@id":"genid-c3843c2db4f74da2bc4a1785b63143b2-b1","@type":["thuecat:Html"],"schema:value":{"@language":"de","@value":"Krämerbrücke, Dom, Alte Synagoge – die Thüringer Landeshauptstadt Erfurt hat viele Kulturschätze. Und ein wunderbar junges, studentisches Flair.Eine gute Mischung für alle, die beim Schlendern und Bummeln gerne Städte entdecken: Denn in Erfurt findet man einen wunderbaren mittelalterlichen Stadtkern – mit vielen netten Läden, Cafès und Restaurants. Urlauber wie Einheimische bummeln durch die Gassen der Altstadt, aus allen Ecken wispern Geschichte und alte Geschichten. Stolze historische Bügerhäuser bilden eine der schönsten Altstädte Europas, mittendrin das neugotische Rathaus aus den 1870er-Jahren am Fischmarkt, die spitztürmige St. Severikirche und der mächtige Dom, 1117 erstmals urkundlich erwähnt – auf seiner schier endlosen, kaskadenförmigen Freitreppe chillen Jung und Alt gern in der Abendsonne. Ehe sie weiter ziehen zum Tagesausklang in eine der coolen Kneipen und Bars (Tipp: Oma Lilo oder Cafè Hilgenfeld), in die Wein-Destille am benachbarten Petersberg oder in eins der lässigen Restaurants (Tipp: Mathilda oder Ballenberger), wo zum freundlichen Miteinander eine frische und moderne Küche serviert wird.In Erfurt pulsiert das Leben, lassen Sie sich einfach treiben. Von Ihrer Neugierde ..."}}],"schema:sameAs":{"@type":"schema:URL","@value":"http://www.erfurt-tourismus.de"},"schema:identifier":[{"@type":"schema:URL","@value":"https://www.thueringen-entdecken.de/urlaub-hotel-reisen/erfurt-102097.html"},{"@id":"genid-c3843c2db4f74da2bc4a1785b63143b2-b3","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@language":"de","@value":"TOMASID"},"schema:value":{"@language":"de","@value":"TTG00020050000218774"}}],"schema:name":{"@language":"de","@value":"Erfurt"},"schema:containsPlace":[{"@id":"https://thuecat.org/resources/333039283321-xxwg"},{"@id":"https://thuecat.org/resources/814644346598-eady"},{"@id":"https://thuecat.org/resources/036206461121-fwro"},{"@id":"https://thuecat.org/resources/908740175209-zbep"},{"@id":"https://thuecat.org/resources/870914036779-rotr"},{"@id":"https://thuecat.org/resources/835224016581-dara"},{"@id":"https://thuecat.org/resources/038217539089-tpzo"},{"@id":"https://thuecat.org/resources/385236220414-peyn"},{"@id":"https://thuecat.org/resources/100663136458-wnqz"},{"@id":"https://thuecat.org/resources/742419978013-egpn"},{"@id":"https://thuecat.org/resources/695675991537-pkgh"},{"@id":"https://thuecat.org/resources/r_16573215-oapoi"},{"@id":"https://thuecat.org/resources/693056964175-popt"},{"@id":"https://thuecat.org/resources/261473008149-bqha"},{"@id":"https://thuecat.org/resources/867654076132-ctkb"},{"@id":"https://thuecat.org/resources/577964242675-ncqh"},{"@id":"https://thuecat.org/resources/194702880695-babn"},{"@id":"https://thuecat.org/resources/349369090551-czbc"},{"@id":"https://thuecat.org/resources/336670524389-dhkh"},{"@id":"https://thuecat.org/resources/137174540587-whcq"},{"@id":"https://thuecat.org/resources/215230952334-yyno"},{"@id":"https://thuecat.org/resources/165868194223-zmqf"},{"@id":"https://thuecat.org/resources/349986440346-kbkf"},{"@id":"https://thuecat.org/resources/794900260253-wjab"},{"@id":"https://thuecat.org/resources/363938447400-ammb"},{"@id":"https://thuecat.org/resources/910322602048-aggj"},{"@id":"https://thuecat.org/resources/r_18832477-oapoi"},{"@id":"https://thuecat.org/resources/990967907066-yowb"},{"@id":"https://thuecat.org/resources/116065037812-pxop"},{"@id":"https://thuecat.org/resources/r_16537648-oapoi"},{"@id":"https://thuecat.org/resources/216781932201-mnca"},{"@id":"https://thuecat.org/resources/468390440169-wqtb"},{"@id":"https://thuecat.org/resources/116693795002-caxe"},{"@id":"https://thuecat.org/resources/932209179057-xqhd"},{"@id":"https://thuecat.org/resources/120279830561-gtne"},{"@id":"https://thuecat.org/resources/427978371125-hekp"},{"@id":"https://thuecat.org/resources/961330512980-aqxb"},{"@id":"https://thuecat.org/resources/368856308942-qhpb"},{"@id":"https://thuecat.org/resources/808198711450-jjkq"},{"@id":"https://thuecat.org/resources/869812477528-jrka"},{"@id":"https://thuecat.org/resources/440055527204-ocar"},{"@id":"https://thuecat.org/resources/476888881990-xpwq"},{"@id":"https://thuecat.org/resources/r_22031603-oapoi"},{"@id":"https://thuecat.org/resources/896842796891-acor"},{"@id":"https://thuecat.org/resources/151363873581-zgqy"},{"@id":"https://thuecat.org/resources/r_16573254-oapoi"},{"@id":"https://thuecat.org/resources/251557685903-ojxy"},{"@id":"https://thuecat.org/resources/930258935911-zygb"},{"@id":"https://thuecat.org/resources/992051761203-hpqd"},{"@id":"https://thuecat.org/resources/057564926026-ambc"},{"@id":"https://thuecat.org/resources/082899814505-jdyz"},{"@id":"https://thuecat.org/resources/099270315175-tobe"},{"@id":"https://thuecat.org/resources/085897295894-eeec"},{"@id":"https://thuecat.org/resources/955556108903-hpbr"},{"@id":"https://thuecat.org/resources/123187973253-zoph"},{"@id":"https://thuecat.org/resources/126604040143-ypqe"},{"@id":"https://thuecat.org/resources/966971793568-wkhp"},{"@id":"https://thuecat.org/resources/697088130167-afza"},{"@id":"https://thuecat.org/resources/139008038246-efyh"},{"@id":"https://thuecat.org/resources/141686779894-qeza"},{"@id":"https://thuecat.org/resources/155341710750-xgta"},{"@id":"https://thuecat.org/resources/167122161706-yqnr"},{"@id":"https://thuecat.org/resources/184439534670-ctnc"},{"@id":"https://thuecat.org/resources/944052714860-tyzj"},{"@id":"https://thuecat.org/resources/199739900497-ywob"},{"@id":"https://thuecat.org/resources/r_16537649-oapoi"},{"@id":"https://thuecat.org/resources/222117007079-hfet"},{"@id":"https://thuecat.org/resources/225399686834-peee"},{"@id":"https://thuecat.org/resources/480724724877-kanp"},{"@id":"https://thuecat.org/resources/250106386854-ywtf"},{"@id":"https://thuecat.org/resources/859001684315-exdj"},{"@id":"https://thuecat.org/resources/272434428755-oodz"},{"@id":"https://thuecat.org/resources/512870662140-gnmz"},{"@id":"https://thuecat.org/resources/281430987928-tpmy"},{"@id":"https://thuecat.org/resources/312095205351-aygr"},{"@id":"https://thuecat.org/resources/360184372865-whho"},{"@id":"https://thuecat.org/resources/328080994144-awjo"},{"@id":"https://thuecat.org/resources/346560528406-atyt"},{"@id":"https://thuecat.org/resources/355818601084-zegp"},{"@id":"https://thuecat.org/resources/359061478707-rcee"},{"@id":"https://thuecat.org/resources/572846924980-xpdx"},{"@id":"https://thuecat.org/resources/726163858235-btpm"},{"@id":"https://thuecat.org/resources/r_16572783-oapoi"},{"@id":"https://thuecat.org/resources/380367030744-yoej"},{"@id":"https://thuecat.org/resources/401762571799-ekqt"},{"@id":"https://thuecat.org/resources/418412449486-nfba"},{"@id":"https://thuecat.org/resources/461246670093-rgnz"},{"@id":"https://thuecat.org/resources/482823012971-pzxy"},{"@id":"https://thuecat.org/resources/499916747296-jkxm"},{"@id":"https://thuecat.org/resources/r_22033376-oapoi"},{"@id":"https://thuecat.org/resources/r_22033250-oapoi"},{"@id":"https://thuecat.org/resources/503994310066-ewnx"},{"@id":"https://thuecat.org/resources/518003791779-jhda"},{"@id":"https://thuecat.org/resources/521674062490-camr"},{"@id":"https://thuecat.org/resources/533141230492-qkaj"},{"@id":"https://thuecat.org/resources/568228874688-hbra"},{"@id":"https://thuecat.org/resources/972804121358-dtfk"},{"@id":"https://thuecat.org/resources/821546995253-xbmd"},{"@id":"https://thuecat.org/resources/588978431485-wpbd"},{"@id":"https://thuecat.org/resources/608580216388-kamq"},{"@id":"https://thuecat.org/resources/634257818494-ftmh"},{"@id":"https://thuecat.org/resources/653387237068-kphf"},{"@id":"https://thuecat.org/resources/r_19005250-oapoi"},{"@id":"https://thuecat.org/resources/805943406349-bodz"},{"@id":"https://thuecat.org/resources/666317086800-kmbe"},{"@id":"https://thuecat.org/resources/683989873847-xhpw"},{"@id":"https://thuecat.org/resources/700377261083-rpdh"},{"@id":"https://thuecat.org/resources/739758486289-wwdb"},{"@id":"https://thuecat.org/resources/759167474657-jnfn"},{"@id":"https://thuecat.org/resources/834764277582-ywpc"},{"@id":"https://thuecat.org/resources/838757899629-mqjw"},{"@id":"https://thuecat.org/resources/843304041370-hfon"},{"@id":"https://thuecat.org/resources/848652587933-hrfm"},{"@id":"https://thuecat.org/resources/850274378380-rewb"},{"@id":"https://thuecat.org/resources/880179570350-ookn"},{"@id":"https://thuecat.org/resources/884735209890-dgyw"},{"@id":"https://thuecat.org/resources/900589533599-hmaw"},{"@id":"https://thuecat.org/resources/912040339410-preg"},{"@id":"https://thuecat.org/resources/939213514979-nmzm"},{"@id":"https://thuecat.org/resources/991438243950-tjpt"},{"@id":"https://thuecat.org/resources/r_22047170-oapoi"},{"@id":"https://thuecat.org/resources/r_16572949-oapoi"},{"@id":"https://thuecat.org/resources/r_17122065-oapoi"},{"@id":"https://thuecat.org/resources/r_22033022-oapoi"},{"@id":"https://thuecat.org/resources/r_16573059-oapoi"},{"@id":"https://thuecat.org/resources/r_16537651-oapoi"},{"@id":"https://thuecat.org/resources/r_22032181-oapoi"},{"@id":"https://thuecat.org/resources/r_22032682-oapoi"},{"@id":"https://thuecat.org/resources/r_22033172-oapoi"},{"@id":"https://thuecat.org/resources/r_16537646-oapoi"},{"@id":"https://thuecat.org/resources/r_16573298-oapoi"},{"@id":"https://thuecat.org/resources/r_16537681-oapoi"},{"@id":"https://thuecat.org/resources/128697819471-tykc"},{"@id":"https://thuecat.org/resources/878180752617-zeao"},{"@id":"https://thuecat.org/resources/564418816137-zcwf"},{"@id":"https://thuecat.org/resources/691296454763-qdjy"},{"@id":"https://thuecat.org/resources/356133173991-cryw"},{"@id":"https://thuecat.org/resources/624606342071-epht"},{"@id":"https://thuecat.org/resources/052821473718-oxfq"},{"@id":"https://thuecat.org/resources/508431710173-wwne"},{"@id":"https://thuecat.org/resources/497839263245-edbm"},{"@id":"https://thuecat.org/resources/139884583363-nwca"},{"@id":"https://thuecat.org/resources/967711372684-nppc"},{"@id":"https://thuecat.org/resources/928240397005-ofhr"},{"@id":"https://thuecat.org/resources/056407295912-gtoa"},{"@id":"https://thuecat.org/resources/593429619201-akfy"},{"@id":"https://thuecat.org/resources/557811883551-khnn"},{"@id":"https://thuecat.org/resources/155190911735-cmkm"},{"@id":"https://thuecat.org/resources/449193857355-jkoq"},{"@id":"https://thuecat.org/resources/370056129324-jnod"},{"@id":"https://thuecat.org/resources/679847498823-ozdn"},{"@id":"https://thuecat.org/resources/022922630389-roan"},{"@id":"https://thuecat.org/resources/946085645388-jxzw"},{"@id":"https://thuecat.org/resources/342591758526-qhbz"},{"@id":"https://thuecat.org/resources/773867290677-awkq"},{"@id":"https://thuecat.org/resources/748599853417-rjoz"},{"@id":"https://thuecat.org/resources/549943366543-zxzt"},{"@id":"https://thuecat.org/resources/178460707562-htwo"},{"@id":"https://thuecat.org/resources/379284820802-gkxd"},{"@id":"https://thuecat.org/resources/749537574485-pzoj"}],"schema:hasMap":{"@type":"schema:URL","@value":"https://www.google.com/maps/search/?api=1&query=11.02752685546875,11.02752685546875"},"schema:geo":{"@id":"genid-c3843c2db4f74da2bc4a1785b63143b2-b2","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:GeoCoordinates"],"schema:longitude":{"@type":"schema:Number","@value":"11.02752685546875"},"schema:latitude":{"@type":"schema:Number","@value":"50.97658847089682"}},"schema:subjectOf":[{"@id":"https://thuecat.org/resources/dms_5293389"},{"@id":"https://thuecat.org/resources/dms_5293416"},{"@id":"https://thuecat.org/resources/dms_5293364"},{"@id":"https://thuecat.org/resources/dms_5293443"},{"@id":"https://thuecat.org/resources/dms_5293505"},{"@id":"https://thuecat.org/resources/dms_5293535"},{"@id":"https://thuecat.org/resources/dms_5293566"},{"@id":"https://thuecat.org/resources/dms_5293597"},{"@id":"https://thuecat.org/resources/dms_5293472"},{"@id":"https://thuecat.org/resources/dms_5293628"},{"@id":"https://thuecat.org/resources/dms_5293658"},{"@id":"https://thuecat.org/resources/dms_5293688"},{"@id":"https://thuecat.org/resources/dms_5293720"},{"@id":"https://thuecat.org/resources/dms_5293749"},{"@id":"https://thuecat.org/resources/dms_5293778"},{"@id":"https://thuecat.org/resources/dms_5301198"},{"@id":"https://thuecat.org/resources/dms_5301226"},{"@id":"https://thuecat.org/resources/dms_5301252"},{"@id":"https://thuecat.org/resources/dms_5301333"},{"@id":"https://thuecat.org/resources/dms_5301367"},{"@id":"https://thuecat.org/resources/dms_5301494"},{"@id":"https://thuecat.org/resources/dms_5301396"},{"@id":"https://thuecat.org/resources/dms_5301527"},{"@id":"https://thuecat.org/resources/dms_5301426"},{"@id":"https://thuecat.org/resources/dms_5301462"},{"@id":"https://thuecat.org/resources/dms_5336613"},{"@id":"https://thuecat.org/resources/dms_5336636"},{"@id":"https://thuecat.org/resources/dms_5363191"},{"@id":"https://thuecat.org/resources/dms_5363216"},{"@id":"https://thuecat.org/resources/dms_5363273"},{"@id":"https://thuecat.org/resources/dms_5363303"},{"@id":"https://thuecat.org/resources/dms_5363245"}],"schema:url":{"@type":"schema:URL","@value":"http://www.erfurt-tourismus.de"},"schema:address":{"@id":"genid-c3843c2db4f74da2bc4a1785b63143b2-b0","@type":["schema:Intangible","schema:PostalAddress","schema:StructuredValue","schema:Thing","schema:ContactPoint"],"schema:addressLocality":{"@language":"de","@value":"Erfurt"},"schema:addressCountry":{"@type":"thuecat:AddressCountry","@value":"thuecat:Germany"},"schema:postalCode":{"@language":"de","@value":"99084"},"schema:addressRegion":{"@type":"thuecat:AddressFederalState","@value":"thuecat:Thuringia"}},"thuecat:contentResponsible":{"@id":"https://thuecat.org/resources/018132452787-ngbe"},"thuecat:destinationManagementOrganisation":{"@id":"https://thuecat.org/resources/018132452787-ngbe"},"thuecat:monumentEnum":{"@type":"thuecat:MonumentEnum","@value":"thuecat:ZeroInformationMemorialClass"},"thuecat:regionalKey":{"@language":"de","@value":"160510000000"},"thuecat:trafficConnection":[{"@type":"thuecat:TrafficConnection","@value":"thuecat:BusRoute"},{"@type":"thuecat:TrafficConnection","@value":"thuecat:RoadConnection"},{"@type":"thuecat:TrafficConnection","@value":"thuecat:RailwayStationEnuMem"},{"@type":"thuecat:TrafficConnection","@value":"thuecat:MotorwayConnection"},{"@type":"thuecat:TrafficConnection","@value":"thuecat:Airport"}],"thuecat:managedBy":{"@id":"https://thuecat.org/resources/018132452787-ngbe"},"thuecat:tomasLocationID":{"@language":"de","@value":"TTG00020050000218774"}}]} diff --git a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/052821473718-oxfq.json b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/052821473718-oxfq.json new file mode 100644 index 0000000..78a06b3 --- /dev/null +++ b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/052821473718-oxfq.json @@ -0,0 +1,198 @@ +{ + "@context": { + "cdb": "https://thuecat.org/ontology/cdb/1.0/", + "dachkg": "https://thuecat.org/ontology/dachkg/1.0/", + "dbo": "http://dbpedia.org/ontology/", + "dsv": "http://ontologies.sti-innsbruck.at/dsv/", + "epapp": "https://thuecat.org/ontology/epapp/1.0/", + "foaf": "http://xmlns.com/foaf/0.1/", + "owl": "http://www.w3.org/2002/07/owl#", + "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", + "rdfs": "http://www.w3.org/2000/01/rdf-schema#", + "schema": "http://schema.org/", + "sh": "http://www.w3.org/ns/shacl#", + "thuecat": "https://thuecat.org/ontology/thuecat/1.0/", + "ttgds": "https://thuecat.org/ontology/ttgds/1.0/", + "xsd": "http://www.w3.org/2001/XMLSchema#" + }, + "@graph": [ + { + "@id": "https://thuecat.org/resources/052821473718-oxfq", + "@type": [ + "schema:Place", + "schema:Organization", + "schema:LocalBusiness", + "schema:Thing", + "schema:TouristAttraction", + "ttgds:OtherInfraStructure", + "thuecat:OtherPOI", + "thuecat:StrollingMile" + ], + "schema:address": { + "@id": "genid-0f944fd40aa04d3d85374be0fe18c485-b0", + "@type": [ + "schema:Intangible", + "schema:PostalAddress", + "schema:StructuredValue", + "schema:Thing", + "schema:ContactPoint" + ], + "schema:addressCountry": { + "@type": "thuecat:AddressCountry", + "@value": "thuecat:Germany" + }, + "schema:addressLocality": { + "@language": "de", + "@value": "Erfurt" + }, + "schema:addressRegion": { + "@type": "thuecat:AddressFederalState", + "@value": "thuecat:Thuringia" + }, + "schema:postalCode": { + "@language": "de", + "@value": "99084" + }, + "schema:streetAddress": { + "@language": "de", + "@value": "Wenigermarkt" + }, + "thuecat:typOfAddress": { + "@type": "thuecat:TypOfAddress", + "@value": "thuecat:HouseAddress" + } + }, + "schema:containedInPlace": { + "@id": "https://thuecat.org/resources/043064193523-jcyt" + }, + "schema:containsPlace": [ + { + "@id": "https://thuecat.org/resources/215230952334-yyno" + }, + { + "@id": "https://thuecat.org/resources/r_16573254-oapoi" + }, + { + "@id": "https://thuecat.org/resources/455305021239-hmfe" + } + ], + "schema:description": [ + { + "@language": "de", + "@value": "Der Wenigemarkt befindet sich am \u00f6stlichen Zugang der Kr\u00e4merbr\u00fccke. Hier finden Sie eine Vielzahl Caf\u00e9s und Restaurants, die zum Verbleiben und Entspannen einladen." + }, + { + "@language": "fr", + "@value": "Le Wenigemarkt est situ\u00e9 \u00e0 l'entr\u00e9e orientale du Kr\u00e4merbr\u00fccke. Vous y trouverez une vari\u00e9t\u00e9 de caf\u00e9s et de restaurants qui vous invitent \u00e0 rester et \u00e0 vous d\u00e9tendre." + }, + { + "@language": "en", + "@value": "The Wenigemarkt is located at the eastern entrance of the Kr\u00e4merbr\u00fccke. Here you will find a variety of cafes and restaurants that invite you to stay and relax." + }, + { + "@id": "genid-0f944fd40aa04d3d85374be0fe18c485-b1", + "@type": [ + "schema:Intangible", + "schema:Thing", + "schema:ComputerLanguage", + "thuecat:Html" + ], + "schema:value": { + "@language": "de", + "@value": "

Der Wenigemarkt befindet sich am \u00f6stlichen Zugang der Kr\u00e4merbr\u00fccke. Hier finden Sie eine Vielzahl Caf\u00e9s und Restaurants, die zum Verbleiben und Entspannen einladen.

" + } + }, + { + "@id": "genid-0f944fd40aa04d3d85374be0fe18c485-b2", + "@type": [ + "schema:Intangible", + "schema:Thing", + "schema:ComputerLanguage", + "thuecat:Html" + ], + "schema:value": { + "@language": "en", + "@value": "

The Wenigemarkt is located at the eastern entrance of the Kr\u00e4merbr\u00fccke. Here you will find a variety of cafes and restaurants that invite you to stay and relax.

" + } + }, + { + "@id": "genid-0f944fd40aa04d3d85374be0fe18c485-b3", + "@type": [ + "schema:Intangible", + "schema:Thing", + "schema:ComputerLanguage", + "thuecat:Html" + ], + "schema:value": { + "@language": "fr", + "@value": "

Le Wenigemarkt est situ\u00e9 \u00e0 l'entr\u00e9e orientale du Kr\u00e4merbr\u00fccke. Vous y trouverez une vari\u00e9t\u00e9 de caf\u00e9s et de restaurants qui vous invitent \u00e0 rester et \u00e0 vous d\u00e9tendre.

" + } + } + ], + "schema:geo": { + "@id": "genid-0f944fd40aa04d3d85374be0fe18c485-b4", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:GeoCoordinates" + ], + "schema:latitude": { + "@type": "schema:Number", + "@value": "50.97859562923252" + }, + "schema:longitude": { + "@type": "schema:Number", + "@value": "11.031994832523964" + } + }, + "schema:hasMap": { + "@type": "schema:URL", + "@value": "https://www.google.de/maps/@50.9785793,11.0319168,21z" + }, + "schema:image": { + "@id": "https://thuecat.org/resources/dms_5143698" + }, + "schema:name": { + "@language": "de", + "@value": "Wenigemarkt Erfurt" + }, + "schema:petsAllowed": { + "@type": "schema:Boolean", + "@value": "true" + }, + "schema:photo": { + "@id": "https://thuecat.org/resources/dms_5143698" + }, + "schema:smokingAllowed": { + "@type": "schema:Boolean", + "@value": "true" + }, + "thuecat:contentResponsible": { + "@id": "https://thuecat.org/resources/018132452787-ngbe" + }, + "thuecat:gastro": [ + { + "@type": "thuecat:GastroPoi", + "@value": "thuecat:TakeawayShop" + }, + { + "@type": "thuecat:GastroPoi", + "@value": "thuecat:Cafe" + }, + { + "@type": "thuecat:GastroPoi", + "@value": "thuecat:BarEnumMem" + }, + { + "@type": "thuecat:GastroPoi", + "@value": "thuecat:Restaurant" + } + ], + "thuecat:sanitation": { + "@type": "thuecat:Sanitation", + "@value": "thuecat:ZeroSanitation" + } + } + ] +} diff --git a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/052821473718-oxfq/GET_3a853d7e61b18de6551c00872dd19186.txt b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/052821473718-oxfq/GET_3a853d7e61b18de6551c00872dd19186.txt deleted file mode 100644 index 86ef6e3..0000000 --- a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/052821473718-oxfq/GET_3a853d7e61b18de6551c00872dd19186.txt +++ /dev/null @@ -1,19 +0,0 @@ -HTTP/1.1 200 OK -Date: Mon, 09 Aug 2021 06:28:07 GMT -Content-Type: application/ld+json; charset=utf-8 -Content-Length: 30967 -Connection: keep-alive -Set-Cookie: ahSession=ce38109539e852ab96dd57bc3c1a153b30a79a54;path=/;expires=Thu, 09 Sep 2021 06:28:07 GMT;httpOnly=true; -Access-Control-Allow-Methods: HEAD, GET, POST, DELETE, OPTIONS -Access-Control-Allow-Headers: Authorization, Content-Type -Strict-Transport-Security: max-age=15724800; includeSubDomains -Access-Control-Allow-Credentials: true -X-Frame-Options: deny -X-XSS-Protection: 1; mode=block -X-Content-Type-Options: nosniff -Referrer-Policy: same-origin -Feature-Policy: microphone 'none'; camera 'none'; payment 'none' -Content-Security-Policy: default-src 'self'; script-src 'self' 'sha256-xfTbtWk8kVI65iLJs8LB3lWf2g0g10DS71pDdoutFHc=' 'sha256-tuKkEf3LPSeyF8feKxOP/mEsa6nRR8toFxvAwO9cuhE='; style-src 'self' 'unsafe-inline' https://stackpath.bootstrapcdn.com; img-src 'self' data: blob: * -Access-Control-Allow-Origin: https://cdb.thuecat.org - -{"@context":{"schema":"http://schema.org/","dbo":"http://dbpedia.org/ontology/","dsv":"http://ontologies.sti-innsbruck.at/dsv/","foaf":"http://xmlns.com/foaf/0.1/","owl":"http://www.w3.org/2002/07/owl#","rdf":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","rdfs":"http://www.w3.org/2000/01/rdf-schema#","sh":"http://www.w3.org/ns/shacl#","xsd":"http://www.w3.org/2001/XMLSchema#","ttgds":"https://thuecat.org/ontology/ttgds/1.0/","cdb":"https://thuecat.org/ontology/cdb/1.0/","dachkg":"https://thuecat.org/ontology/dachkg/1.0/","thuecat":"https://thuecat.org/ontology/thuecat/1.0/","epapp":"https://thuecat.org/ontology/epapp/1.0/"},"@graph":[{"@id":"https://thuecat.org/resources/052821473718-oxfq","@type":["schema:Place","schema:Organization","schema:LocalBusiness","schema:Thing","schema:TouristAttraction","ttgds:OtherInfraStructure","thuecat:OtherPOI","thuecat:StrollingMile"],"schema:description":[{"@language":"de","@value":"Der Wenigemarkt befindet sich am östlichen Zugang der Krämerbrücke. Hier finden Sie eine Vielzahl Cafés und Restaurants, die zum Verbleiben und Entspannen einladen."},{"@language":"fr","@value":"Le Wenigemarkt est situé à l'entrée orientale du Krämerbrücke. Vous y trouverez une variété de cafés et de restaurants qui vous invitent à rester et à vous détendre."},{"@language":"en","@value":"The Wenigemarkt is located at the eastern entrance of the Krämerbrücke. Here you will find a variety of cafes and restaurants that invite you to stay and relax."},{"@id":"genid-0f944fd40aa04d3d85374be0fe18c485-b1","@type":["schema:Intangible","schema:Thing","schema:ComputerLanguage","thuecat:Html"],"schema:value":{"@language":"de","@value":"

Der Wenigemarkt befindet sich am östlichen Zugang der Krämerbrücke. Hier finden Sie eine Vielzahl Cafés und Restaurants, die zum Verbleiben und Entspannen einladen.

"}},{"@id":"genid-0f944fd40aa04d3d85374be0fe18c485-b2","@type":["schema:Intangible","schema:Thing","schema:ComputerLanguage","thuecat:Html"],"schema:value":{"@language":"en","@value":"

The Wenigemarkt is located at the eastern entrance of the Krämerbrücke. Here you will find a variety of cafes and restaurants that invite you to stay and relax.

"}},{"@id":"genid-0f944fd40aa04d3d85374be0fe18c485-b3","@type":["schema:Intangible","schema:Thing","schema:ComputerLanguage","thuecat:Html"],"schema:value":{"@language":"fr","@value":"

Le Wenigemarkt est situé à l'entrée orientale du Krämerbrücke. Vous y trouverez une variété de cafés et de restaurants qui vous invitent à rester et à vous détendre.

"}}],"schema:name":{"@language":"de","@value":"Wenigemarkt Erfurt"},"schema:containedInPlace":{"@id":"https://thuecat.org/resources/043064193523-jcyt"},"schema:containsPlace":[{"@id":"https://thuecat.org/resources/215230952334-yyno"},{"@id":"https://thuecat.org/resources/r_16573254-oapoi"},{"@id":"https://thuecat.org/resources/455305021239-hmfe"}],"schema:photo":{"@id":"https://thuecat.org/resources/dms_5143698"},"schema:image":{"@id":"https://thuecat.org/resources/dms_5143698"},"schema:petsAllowed":{"@type":"schema:Boolean","@value":"true"},"schema:hasMap":{"@type":"schema:URL","@value":"https://www.google.de/maps/@50.9785793,11.0319168,21z"},"schema:geo":{"@id":"genid-0f944fd40aa04d3d85374be0fe18c485-b4","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:GeoCoordinates"],"schema:longitude":{"@type":"schema:Number","@value":"11.031994832523964"},"schema:latitude":{"@type":"schema:Number","@value":"50.97859562923252"}},"schema:smokingAllowed":{"@type":"schema:Boolean","@value":"true"},"schema:address":{"@id":"genid-0f944fd40aa04d3d85374be0fe18c485-b0","@type":["schema:Intangible","schema:PostalAddress","schema:StructuredValue","schema:Thing","schema:ContactPoint"],"schema:addressLocality":{"@language":"de","@value":"Erfurt"},"schema:addressCountry":{"@type":"thuecat:AddressCountry","@value":"thuecat:Germany"},"schema:postalCode":{"@language":"de","@value":"99084"},"schema:addressRegion":{"@type":"thuecat:AddressFederalState","@value":"thuecat:Thuringia"},"schema:streetAddress":{"@language":"de","@value":"Wenigermarkt"},"thuecat:typOfAddress":{"@type":"thuecat:TypOfAddress","@value":"thuecat:HouseAddress"}},"thuecat:contentResponsible":{"@id":"https://thuecat.org/resources/018132452787-ngbe"},"thuecat:gastro":[{"@type":"thuecat:GastroPoi","@value":"thuecat:TakeawayShop"},{"@type":"thuecat:GastroPoi","@value":"thuecat:Cafe"},{"@type":"thuecat:GastroPoi","@value":"thuecat:BarEnumMem"},{"@type":"thuecat:GastroPoi","@value":"thuecat:Restaurant"}],"thuecat:sanitation":{"@type":"thuecat:Sanitation","@value":"thuecat:ZeroSanitation"}}]} diff --git a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/165868194223-zmqf.json b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/165868194223-zmqf.json new file mode 100644 index 0000000..f3540d5 --- /dev/null +++ b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/165868194223-zmqf.json @@ -0,0 +1,688 @@ +{ + "@context": { + "cdb": "https://thuecat.org/ontology/cdb/1.0/", + "dachkg": "https://thuecat.org/ontology/dachkg/1.0/", + "dbo": "http://dbpedia.org/ontology/", + "dsv": "http://ontologies.sti-innsbruck.at/dsv/", + "foaf": "http://xmlns.com/foaf/0.1/", + "owl": "http://www.w3.org/2002/07/owl#", + "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", + "rdfs": "http://www.w3.org/2000/01/rdf-schema#", + "schema": "http://schema.org/", + "sh": "http://www.w3.org/ns/shacl#", + "thuecat": "https://thuecat.org/ontology/thuecat/1.0/", + "ttgds": "https://thuecat.org/ontology/ttgds/1.0/", + "xsd": "http://www.w3.org/2001/XMLSchema#" + }, + "@graph": [ + { + "@id": "https://thuecat.org/resources/165868194223-zmqf", + "@type": [ + "schema:Place", + "schema:CivicStructure", + "schema:PlaceOfWorship", + "schema:Thing", + "schema:Museum", + "schema:TouristAttraction", + "schema:Synagogue", + "ttgds:PointOfInterest", + "thuecat:Building", + "thuecat:ReligiousBuilding", + "thuecat:CultureHistoricalMuseum" + ], + "schema:address": { + "@id": "genid-28b33237f71b41e3ad54a99e1da769b9-b0", + "@type": [ + "schema:Intangible", + "schema:PostalAddress", + "schema:StructuredValue", + "schema:Thing", + "schema:ContactPoint" + ], + "schema:addressCountry": { + "@type": "thuecat:AddressCountry", + "@value": "thuecat:Germany" + }, + "schema:addressLocality": { + "@language": "de", + "@value": "Erfurt" + }, + "schema:addressRegion": { + "@type": "thuecat:AddressFederalState", + "@value": "thuecat:Thuringia" + }, + "schema:email": { + "@language": "de", + "@value": "altesynagoge@erfurt.de" + }, + "schema:faxNumber": { + "@language": "de", + "@value": "+49 361 6551669" + }, + "schema:postalCode": { + "@language": "de", + "@value": "99084" + }, + "schema:streetAddress": { + "@language": "de", + "@value": "Waagegasse 8" + }, + "schema:telephone": { + "@language": "de", + "@value": "+49 361 6551520" + }, + "thuecat:typOfAddress": { + "@type": "thuecat:TypOfAddress", + "@value": "thuecat:HouseAddress" + } + }, + "schema:audience": [ + { + "@id": "https://thuecat.org/resources/290287712606-zkwq" + }, + { + "@id": "https://thuecat.org/resources/312868368592-wnce" + }, + { + "@id": "https://thuecat.org/resources/301753337945-akzy" + }, + { + "@id": "https://thuecat.org/resources/304061111979-rmed" + }, + { + "@id": "https://thuecat.org/resources/668239314161-keen" + } + ], + "schema:availableLanguage": [ + { + "@type": "thuecat:Language", + "@value": "thuecat:German" + }, + { + "@type": "thuecat:Language", + "@value": "thuecat:English" + }, + { + "@type": "thuecat:Language", + "@value": "thuecat:French" + } + ], + "schema:containedInPlace": [ + { + "@id": "https://thuecat.org/resources/043064193523-jcyt" + }, + { + "@id": "https://thuecat.org/resources/573211638937-gmqb" + }, + { + "@id": "https://thuecat.org/resources/497839263245-edbm" + } + ], + "schema:description": [ + { + "@language": "fr", + "@value": "La vieille synagogue (datant des ann\u00e9es 1100) est la synagogue la plus vieille d\u2019Europe totalement conserv\u00e9e, dans laquelle est expos\u00e9 un tr\u00e9sor datant des 13/14\u00e8mes si\u00e8cles avec une alliance juive unique et des \u00e9critures h\u00e9bra\u00efques (datant des 12\u00e8me, 13\u00e8me et 14\u00e8mes si\u00e8cles). Apr\u00e8s la red\u00e9couverte du Mikw\u00e9, Erfurt abrite des t\u00e9moins uniques et fascinants d\u2019une communaut\u00e9 juive m\u00e9di\u00e9vale. " + }, + { + "@language": "en", + "@value": "The Old Synagogue is one of very few preserved medieval synagogues in Europe. Thanks to the extensive preservation of the original structure, it has a special place in the history of art and architecture and is among the most impressive and highly rated architectural monuments in Erfurt and Thuringia. The synagogue was constructed during the Middle Ages on the \"via regia\", one of the major European trade routes, at the heart of the historical old quarter very close to the Merchants Bridge and the town hall. Many parts of the structure still remain today, including all four thick outer walls, the Roman\u00adesque gemel window, the Gothic rose window and the entrance to the synagogue room. " + }, + { + "@language": "de", + "@value": "Beispiel Beschreibung" + }, + { + "@id": "genid-28b33237f71b41e3ad54a99e1da769b9-b1", + "@type": [ + "thuecat:Html" + ], + "schema:value": { + "@language": "de", + "@value": "Mit der Alten Synagoge weist Erfurt die \u00e4lteste bis zum Dach erhaltene Synagoge in Mitteleuropa vor. Hier waren bis Ende der 90er Jahre nur die Spitzen zweier Giebel sichtbar, welche aus einem Gewirr von Anbauten herausragten. Nach dem Abriss einiger Bauten ringsum konnte ein Bauforscher klar vier Bauphasen der Synagoge unterscheiden, dessen \u00e4lteste um 1100 zu datieren ist. \n\nDer Bau von 1270, mit der heute sichtbaren Westfassade samt Ma\u00dfwerkrosette, wurde nach Norden erweitert. Brandspuren am Mauerwerk verweisen auf einen Vorg\u00e4ngerbau, der wahrscheinlich einem Pogrom zum Opfer fiel. Die Synagoge diente bis 1349 als Gotteshaus. In diesem Jahr l\u00f6schte ein barbarisches Pestpogrom die erste j\u00fcdische Gemeinde Erfurts aus. Die Stadt verkaufte das Geb\u00e4ude an einen H\u00e4ndler, der es zum Speicher umbauen lie\u00df. Dabei wurde der hohe Raum von Balkendecken unterteilt, ein breiterer Eingang an Stelle des Thoraschreins geschaffen und die Synagoge unterkellert. Im Erdgeschoss zeugen noch einige Spuren von der Erstnutzung, wie bspw. ein Lichtergesims. \n\nDas Erdgeschoss mit der wuchtigen gotischen Balkendecke und der Keller werden ebenso wie das Obergeschoss, welches von der Festkultur des 19. Jahrhunderts zeugt, museal genutzt. Wer heute den Saal betritt, der f\u00fchlt sich in die vergangene Welt von Tango und Foxtrott unter Gouvernantenaufsicht zur\u00fcckversetzt. Schablonenmalerei sowie einige Tapetenreste schm\u00fccken die W\u00e4nde. \nIm Erdgeschoss wird die Baugeschichte thematisiert, der Keller ist dem Erfurter Schatz aus M\u00fcnzen, Gef\u00e4\u00dfen, gotischem Schmuck und dem j\u00fcdischen Hochzeitsring vorbehalten. \n\nIm Saal zeigt das Haus eine Sammlung von hebr\u00e4ischen Handschriften, welche der Erfurter Gemeinde geh\u00f6rten. Diese Hebraica werden heute in der Staatsbibliothek Berlin aufbewahrt. Abwechselnd k\u00f6nnen sie in Erfurt als Original oder Faksimile bestaunt werden. \n\nMit der Alten Synagoge und einer 2007 an der Kr\u00e4merbr\u00fccke gefundenen Mikwe aus der Gotik, deren wissenschaftliche Erforschung noch andauert, kann Erfurt einmalige und faszinierende Zeugnisse der noch wenig bekannten Geschichte einer mittelalterlichen Gemeinde vorweisen." + } + }, + { + "@id": "genid-28b33237f71b41e3ad54a99e1da769b9-b2", + "@type": [ + "thuecat:Html" + ], + "schema:value": { + "@language": "fr", + "@value": "La vieille synagogue (datant des ann\u00e9es 1100) est la synagogue la plus vieille d\u2019Europe totalement conserv\u00e9e, dans laquelle est expos\u00e9 un tr\u00e9sor datant des 13/14\u00e8mes si\u00e8cles avec une alliance juive unique et des \u00e9critures h\u00e9bra\u00efques (datant des 12\u00e8me, 13\u00e8me et 14\u00e8mes si\u00e8cles). Apr\u00e8s la red\u00e9couverte du Mikw\u00e9, Erfurt abrite des t\u00e9moins uniques et fascinants d\u2019une communaut\u00e9 juive m\u00e9di\u00e9vale. " + } + }, + { + "@id": "genid-28b33237f71b41e3ad54a99e1da769b9-b3", + "@type": [ + "thuecat:Html" + ], + "schema:value": { + "@language": "en", + "@value": "The Old Synagogue is one of very few preserved medieval synagogues in Europe. Thanks to the extensive preservation of the original structure, it has a special place in the history of art and architecture and is among the most impressive and highly rated architectural monuments in Erfurt and Thuringia. The synagogue was constructed during the Middle Ages on the \"via regia\", one of the major European trade routes, at the heart of the historical old quarter very close to the Merchants Bridge and the town hall. Many parts of the structure still remain today, including all four thick outer walls, the Roman\u00adesque gemel window, the Gothic rose window and the entrance to the synagogue room. " + } + } + ], + "schema:geo": { + "@id": "genid-28b33237f71b41e3ad54a99e1da769b9-b4", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:GeoCoordinates" + ], + "schema:latitude": { + "@type": "schema:Number", + "@value": "50.978765" + }, + "schema:longitude": { + "@type": "schema:Number", + "@value": "11.029133" + } + }, + "schema:hasMap": { + "@type": "schema:URL", + "@value": "https://www.google.com/maps/search/?api=1&query=50.978765,11.029133" + }, + "schema:identifier": { + "@type": "schema:URL", + "@value": "https://www.thueringen-entdecken.de/urlaub-hotel-reisen/alte-synagoge-erfurt-115157.html" + }, + "schema:image": { + "@id": "https://thuecat.org/resources/dms_5099196" + }, + "schema:isAccessibleForFree": { + "@type": "schema:Boolean", + "@value": "false" + }, + "schema:makesOffer": [ + { + "@id": "genid-28b33237f71b41e3ad54a99e1da769b9-b5", + "@type": [ + "schema:Intangible", + "schema:Thing", + "schema:Offer" + ], + "schema:description": { + "@language": "de", + "@value": "Immer samstags, um 11:15 Uhr findet eine \u00f6ffentliche F\u00fchrung durch das Museum statt. Dauer etwa 90 Minuten" + }, + "schema:name": { + "@language": "de", + "@value": "F\u00fchrungen" + }, + "schema:offeredBy": { + "@id": "https://thuecat.org/resources/165868194223-zmqf" + }, + "schema:priceSpecification": [ + { + "@id": "genid-28b33237f71b41e3ad54a99e1da769b9-b6", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:PriceSpecification", + "schema:Thing" + ], + "schema:name": { + "@language": "de", + "@value": "Erwachsene" + }, + "schema:price": { + "@type": "schema:Number", + "@value": "8" + }, + "schema:priceCurrency": { + "@type": "thuecat:Currency", + "@value": "thuecat:EUR" + }, + "thuecat:calculationRule": { + "@type": "thuecat:CalculationRule", + "@value": "thuecat:PerPerson" + } + }, + { + "@id": "genid-28b33237f71b41e3ad54a99e1da769b9-b7", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:PriceSpecification", + "schema:Thing" + ], + "schema:description": { + "@language": "de", + "@value": "als erm\u00e4\u00dfigt gelten schulpflichtige Kinder, Auszubildende, Studierende, Rentner/-innen, Menschen mit Behinderungen, Inhaber Sozialausweis der Landeshauptstadt Erfurt" + }, + "schema:name": { + "@language": "de", + "@value": "Erm\u00e4\u00dfigt" + }, + "schema:price": { + "@type": "schema:Number", + "@value": "5" + }, + "schema:priceCurrency": { + "@type": "thuecat:Currency", + "@value": "thuecat:EUR" + }, + "thuecat:calculationRule": { + "@type": "thuecat:CalculationRule", + "@value": "thuecat:PerPerson" + } + } + ], + "thuecat:offerType": { + "@type": "thuecat:OfferType", + "@value": "thuecat:GuidedTourOffer" + } + }, + { + "@id": "genid-28b33237f71b41e3ad54a99e1da769b9-b8", + "@type": [ + "schema:Intangible", + "schema:Thing", + "schema:Offer" + ], + "schema:description": { + "@language": "de", + "@value": "Schulklassen und Kitagruppen im Rahmen des Unterrichts: Eintritt frei\nAn jedem ersten Dienstag im Monat: Eintritt frei" + }, + "schema:name": { + "@language": "de", + "@value": "Eintritt" + }, + "schema:offeredBy": { + "@id": "https://thuecat.org/resources/165868194223-zmqf" + }, + "schema:priceSpecification": [ + { + "@id": "genid-28b33237f71b41e3ad54a99e1da769b9-b10", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:PriceSpecification", + "schema:Thing" + ], + "schema:description": { + "@language": "de", + "@value": "als erm\u00e4\u00dfigt gelten schulpflichtige Kinder, Auszubildende, Studierende, Rentner/-innen, Menschen mit Behinderungen, Inhaber Sozialausweis der Landeshauptstadt Erfurt" + }, + "schema:name": { + "@language": "de", + "@value": "Erm\u00e4\u00dfigt" + }, + "schema:price": { + "@type": "schema:Number", + "@value": "5" + }, + "schema:priceCurrency": { + "@type": "thuecat:Currency", + "@value": "thuecat:EUR" + }, + "thuecat:calculationRule": { + "@type": "thuecat:CalculationRule", + "@value": "thuecat:PerPerson" + } + }, + { + "@id": "genid-28b33237f71b41e3ad54a99e1da769b9-b11", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:PriceSpecification", + "schema:Thing" + ], + "schema:name": { + "@language": "de", + "@value": "Familienkarte" + }, + "schema:price": { + "@type": "schema:Number", + "@value": "17" + }, + "schema:priceCurrency": { + "@type": "thuecat:Currency", + "@value": "thuecat:EUR" + }, + "thuecat:calculationRule": { + "@type": "thuecat:CalculationRule", + "@value": "thuecat:PerGroup" + } + }, + { + "@id": "genid-28b33237f71b41e3ad54a99e1da769b9-b12", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:PriceSpecification", + "schema:Thing" + ], + "schema:name": { + "@language": "de", + "@value": "ErfurtCard" + }, + "schema:price": { + "@type": "schema:Number", + "@value": "14.90" + }, + "schema:priceCurrency": { + "@type": "thuecat:Currency", + "@value": "thuecat:EUR" + }, + "thuecat:calculationRule": { + "@type": "thuecat:CalculationRule", + "@value": "thuecat:PerPackage" + } + }, + { + "@id": "genid-28b33237f71b41e3ad54a99e1da769b9-b9", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:PriceSpecification", + "schema:Thing" + ], + "schema:name": { + "@language": "de", + "@value": "Erwachsene" + }, + "schema:price": { + "@type": "schema:Number", + "@value": "8" + }, + "schema:priceCurrency": { + "@type": "thuecat:Currency", + "@value": "thuecat:EUR" + }, + "thuecat:calculationRule": { + "@type": "thuecat:CalculationRule", + "@value": "thuecat:PerPerson" + } + } + ], + "thuecat:offerType": { + "@type": "thuecat:OfferType", + "@value": "thuecat:EntryOffer" + } + } + ], + "schema:name": [ + { + "@language": "de", + "@value": "Alte Synagoge" + }, + { + "@language": "fr", + "@value": "La vieille synagogue" + }, + { + "@language": "en", + "@value": "Old Synagogue" + } + ], + "schema:openingHoursSpecification": { + "@id": "genid-28b33237f71b41e3ad54a99e1da769b9-b13", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:OpeningHoursSpecification" + ], + "schema:closes": { + "@type": "schema:Time", + "@value": "18:00:00" + }, + "schema:dayOfWeek": [ + { + "@type": "schema:DayOfWeek", + "@value": "schema:Saturday" + }, + { + "@type": "schema:DayOfWeek", + "@value": "schema:Sunday" + }, + { + "@type": "schema:DayOfWeek", + "@value": "schema:Friday" + }, + { + "@type": "schema:DayOfWeek", + "@value": "schema:Thursday" + }, + { + "@type": "schema:DayOfWeek", + "@value": "schema:Tuesday" + }, + { + "@type": "schema:DayOfWeek", + "@value": "schema:Wednesday" + } + ], + "schema:opens": { + "@type": "schema:Time", + "@value": "10:00:00" + }, + "schema:validFrom": { + "@type": "schema:Date", + "@value": "2021-03-01" + }, + "schema:validThrough": { + "@type": "schema:Date", + "@value": "2021-12-31" + } + }, + "schema:paymentAccepted": [ + { + "@type": "thuecat:PaymentAcceptedEnum", + "@value": "thuecat:CashPayment" + }, + { + "@type": "thuecat:PaymentAcceptedEnum", + "@value": "thuecat:EC" + } + ], + "schema:petsAllowed": { + "@language": "de", + "@value": "Tiere sind im Geb\u00e4ude nicht gestattet, ausgenommen sind Blinden- und Blindenbegleithunde." + }, + "schema:photo": { + "@id": "https://thuecat.org/resources/dms_5099196" + }, + "schema:publicAccess": { + "@type": "schema:Boolean", + "@value": "true" + }, + "schema:sameAs": [ + { + "@type": "xsd:string", + "@value": "http://whc.unesco.org/en/tentativelists/5982/" + }, + { + "@type": "schema:URL", + "@value": "https://www.outdooractive.com/de/51497737" + } + ], + "schema:slogan": { + "@type": "thuecat:ThuSlogan", + "@value": "thuecat:Highlight" + }, + "schema:smokingAllowed": { + "@type": "schema:Boolean", + "@value": "false" + }, + "schema:url": { + "@type": "schema:URL", + "@value": "http://www.alte-synagoge.erfurt.de" + }, + "thuecat:accessibilitySpecification": { + "@id": "https://thuecat.org/resources/e_23bec7f80c864c358da033dd75328f27-rfa" + }, + "thuecat:architecturalStyle": { + "@type": "thuecat:ArchitecturalStyle", + "@value": "thuecat:GothicArt" + }, + "thuecat:contentResponsible": { + "@id": "https://thuecat.org/resources/018132452787-ngbe" + }, + "thuecat:digitalOffer": [ + { + "@type": "thuecat:DigitalOffer", + "@value": "thuecat:AudioGuide" + }, + { + "@type": "thuecat:DigitalOffer", + "@value": "thuecat:VideoGuide" + } + ], + "thuecat:distanceToPublicTransport": { + "@id": "genid-28b33237f71b41e3ad54a99e1da769b9-b14", + "@type": [ + "schema:Intangible", + "schema:QuantitativeValue", + "schema:StructuredValue", + "schema:Thing" + ], + "schema:unitCode": { + "@type": "thuecat:Unit", + "@value": "thuecat:MTR" + }, + "schema:value": { + "@type": "schema:Number", + "@value": "200" + } + }, + "thuecat:endOfConstruction": [ + { + "@language": "de", + "@value": "12. Jh." + }, + { + "@language": "de", + "@value": "13. Jh." + }, + { + "@language": "de", + "@value": "19. Jh." + }, + { + "@language": "de", + "@value": "20. Jh." + }, + { + "@language": "de", + "@value": "14. Jh." + }, + { + "@language": "de", + "@value": "2009" + } + ], + "thuecat:entrance": { + "@type": "thuecat:Entrance", + "@value": "thuecat:IndoorActivities" + }, + "thuecat:exibitionObjekt": [ + { + "@type": "thuecat:ExhibitionObject", + "@value": "thuecat:ReligiousHistoryExhibition" + }, + { + "@language": "de", + "@value": "Bau- und Nutzungsgeschichte der Alten Synagoge" + }, + { + "@language": "de", + "@value": "Erfurter Schatz" + }, + { + "@language": "de", + "@value": "Mittelalterliche Handschriften als Faksimile" + } + ], + "thuecat:gastro": { + "@type": "thuecat:GastroPoi", + "@value": "thuecat:ZeroGastronomy" + }, + "thuecat:guidedTour": [ + { + "@type": "thuecat:EnumGuidedTour", + "@value": "thuecat:GuidedTourOnlyWithRegistration" + }, + { + "@type": "thuecat:EnumGuidedTour", + "@value": "thuecat:GuidedTourRegistrationNotRequired" + } + ], + "thuecat:monumentEnum": [ + { + "@type": "thuecat:MonumentEnum", + "@value": "thuecat:ArchitecturalMonumentSingle" + }, + { + "@language": "de", + "@value": "Kulturdenkmal" + } + ], + "thuecat:museumService": { + "@type": "thuecat:MuseumService", + "@value": "thuecat:MuseumShop" + }, + "thuecat:openAirMuseum": { + "@type": "schema:Boolean", + "@value": "false" + }, + "thuecat:otherService": [ + { + "@type": "thuecat:OtherService", + "@value": "thuecat:SeatingPossibilitiesRestArea" + }, + { + "@type": "thuecat:OtherService", + "@value": "thuecat:LockBoxes" + }, + { + "@type": "thuecat:OtherService", + "@value": "thuecat:SouvenirShop" + }, + { + "@type": "thuecat:OtherService", + "@value": "thuecat:BaggageStorage" + } + ], + "thuecat:photography": { + "@type": "thuecat:Photography", + "@value": "thuecat:ZeroPhotography" + }, + "thuecat:sanitation": [ + { + "@type": "thuecat:Sanitation", + "@value": "thuecat:Toilets" + }, + { + "@type": "thuecat:Sanitation", + "@value": "thuecat:DisabledToilets" + }, + { + "@type": "thuecat:Sanitation", + "@value": "thuecat:NappyChangingArea" + }, + { + "@type": "thuecat:Sanitation", + "@value": "thuecat:FamilyAndChildFriendly" + } + ], + "thuecat:startOfConstruction": [ + { + "@language": "de", + "@value": "11. Jh." + }, + { + "@language": "en", + "@value": "11th century" + } + ], + "thuecat:trafficInfrastructure": { + "@type": "thuecat:TrafficInfrastructure", + "@value": "thuecat:ZeroSpecialTrafficInfrastructure" + } + } + ] +} diff --git a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/165868194223-zmqf/GET_fb3c1440c67b1c9a421a2df91f8048f9.txt b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/165868194223-zmqf/GET_fb3c1440c67b1c9a421a2df91f8048f9.txt deleted file mode 100644 index 411445c..0000000 --- a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/165868194223-zmqf/GET_fb3c1440c67b1c9a421a2df91f8048f9.txt +++ /dev/null @@ -1,19 +0,0 @@ -HTTP/1.1 200 OK -Date: Wed, 17 Feb 2021 08:03:49 GMT -Content-Type: application/ld+json; charset=utf-8 -Content-Length: 19183 -Connection: keep-alive -Set-Cookie: ahSession=0f28a08e6e906a267b990e86a670ea28c700cb0b;path=/;expires=Sat, 20 Mar 2021 08:03:49 GMT;httpOnly=true; -Access-Control-Allow-Methods: HEAD, GET, POST, DELETE, OPTIONS -Access-Control-Allow-Headers: Authorization, Content-Type -Strict-Transport-Security: max-age=15724800; includeSubDomains -Access-Control-Allow-Credentials: true -X-Frame-Options: deny -X-XSS-Protection: 1; mode=block -X-Content-Type-Options: nosniff -Referrer-Policy: same-origin -Feature-Policy: microphone 'none'; camera 'none'; payment 'none' -Content-Security-Policy: default-src 'self'; script-src 'self' 'sha256-xfTbtWk8kVI65iLJs8LB3lWf2g0g10DS71pDdoutFHc='; style-src 'self' 'unsafe-inline' https://stackpath.bootstrapcdn.com; img-src 'self' data: blob: * -Access-Control-Allow-Origin: https://cdb.thuecat.org - -{"@context":{"schema":"http://schema.org/","dbo":"http://dbpedia.org/ontology/","dsv":"http://ontologies.sti-innsbruck.at/dsv/","foaf":"http://xmlns.com/foaf/0.1/","owl":"http://www.w3.org/2002/07/owl#","rdf":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","rdfs":"http://www.w3.org/2000/01/rdf-schema#","sh":"http://www.w3.org/ns/shacl#","xsd":"http://www.w3.org/2001/XMLSchema#","ttgds":"https://thuecat.org/ontology/ttgds/1.0/","cdb":"https://thuecat.org/ontology/cdb/1.0/","dachkg":"https://thuecat.org/ontology/dachkg/1.0/","thuecat":"https://thuecat.org/ontology/thuecat/1.0/"},"@graph":[{"@id":"https://thuecat.org/resources/165868194223-zmqf","@type":["schema:Place","schema:CivicStructure","schema:PlaceOfWorship","schema:Thing","schema:Museum","schema:TouristAttraction","schema:Synagogue","ttgds:PointOfInterest","thuecat:Building","thuecat:ReligiousBuilding","thuecat:CultureHistoricalMuseum"],"schema:description":[{"@language":"fr","@value":"La vieille synagogue (datant des années 1100) est la synagogue la plus vieille d’Europe totalement conservée, dans laquelle est exposé un trésor datant des 13/14èmes siècles avec une alliance juive unique et des écritures hébraïques (datant des 12ème, 13ème et 14èmes siècles). Après la redécouverte du Mikwé, Erfurt abrite des témoins uniques et fascinants d’une communauté juive médiévale. "},{"@language":"en","@value":"The Old Synagogue is one of very few preserved medieval synagogues in Europe. Thanks to the extensive preservation of the original structure, it has a special place in the history of art and architecture and is among the most impressive and highly rated architectural monuments in Erfurt and Thuringia. The synagogue was constructed during the Middle Ages on the \"via regia\", one of the major European trade routes, at the heart of the historical old quarter very close to the Merchants Bridge and the town hall. Many parts of the structure still remain today, including all four thick outer walls, the Roman­esque gemel window, the Gothic rose window and the entrance to the synagogue room. "},{"@language":"de","@value":"Beispiel Beschreibung"},{"@id":"genid-28b33237f71b41e3ad54a99e1da769b9-b1","@type":["thuecat:Html"],"schema:value":{"@language":"de","@value":"Mit der Alten Synagoge weist Erfurt die älteste bis zum Dach erhaltene Synagoge in Mitteleuropa vor. Hier waren bis Ende der 90er Jahre nur die Spitzen zweier Giebel sichtbar, welche aus einem Gewirr von Anbauten herausragten. Nach dem Abriss einiger Bauten ringsum konnte ein Bauforscher klar vier Bauphasen der Synagoge unterscheiden, dessen älteste um 1100 zu datieren ist. \n\nDer Bau von 1270, mit der heute sichtbaren Westfassade samt Maßwerkrosette, wurde nach Norden erweitert. Brandspuren am Mauerwerk verweisen auf einen Vorgängerbau, der wahrscheinlich einem Pogrom zum Opfer fiel. Die Synagoge diente bis 1349 als Gotteshaus. In diesem Jahr löschte ein barbarisches Pestpogrom die erste jüdische Gemeinde Erfurts aus. Die Stadt verkaufte das Gebäude an einen Händler, der es zum Speicher umbauen ließ. Dabei wurde der hohe Raum von Balkendecken unterteilt, ein breiterer Eingang an Stelle des Thoraschreins geschaffen und die Synagoge unterkellert. Im Erdgeschoss zeugen noch einige Spuren von der Erstnutzung, wie bspw. ein Lichtergesims. \n\nDas Erdgeschoss mit der wuchtigen gotischen Balkendecke und der Keller werden ebenso wie das Obergeschoss, welches von der Festkultur des 19. Jahrhunderts zeugt, museal genutzt. Wer heute den Saal betritt, der fühlt sich in die vergangene Welt von Tango und Foxtrott unter Gouvernantenaufsicht zurückversetzt. Schablonenmalerei sowie einige Tapetenreste schmücken die Wände. \nIm Erdgeschoss wird die Baugeschichte thematisiert, der Keller ist dem Erfurter Schatz aus Münzen, Gefäßen, gotischem Schmuck und dem jüdischen Hochzeitsring vorbehalten. \n\nIm Saal zeigt das Haus eine Sammlung von hebräischen Handschriften, welche der Erfurter Gemeinde gehörten. Diese Hebraica werden heute in der Staatsbibliothek Berlin aufbewahrt. Abwechselnd können sie in Erfurt als Original oder Faksimile bestaunt werden. \n\nMit der Alten Synagoge und einer 2007 an der Krämerbrücke gefundenen Mikwe aus der Gotik, deren wissenschaftliche Erforschung noch andauert, kann Erfurt einmalige und faszinierende Zeugnisse der noch wenig bekannten Geschichte einer mittelalterlichen Gemeinde vorweisen."}},{"@id":"genid-28b33237f71b41e3ad54a99e1da769b9-b2","@type":["thuecat:Html"],"schema:value":{"@language":"fr","@value":"La vieille synagogue (datant des années 1100) est la synagogue la plus vieille d’Europe totalement conservée, dans laquelle est exposé un trésor datant des 13/14èmes siècles avec une alliance juive unique et des écritures hébraïques (datant des 12ème, 13ème et 14èmes siècles). Après la redécouverte du Mikwé, Erfurt abrite des témoins uniques et fascinants d’une communauté juive médiévale. "}},{"@id":"genid-28b33237f71b41e3ad54a99e1da769b9-b3","@type":["thuecat:Html"],"schema:value":{"@language":"en","@value":"The Old Synagogue is one of very few preserved medieval synagogues in Europe. Thanks to the extensive preservation of the original structure, it has a special place in the history of art and architecture and is among the most impressive and highly rated architectural monuments in Erfurt and Thuringia. The synagogue was constructed during the Middle Ages on the \"via regia\", one of the major European trade routes, at the heart of the historical old quarter very close to the Merchants Bridge and the town hall. Many parts of the structure still remain today, including all four thick outer walls, the Roman­esque gemel window, the Gothic rose window and the entrance to the synagogue room. "}}],"schema:sameAs":[{"@type":"xsd:string","@value":"http://whc.unesco.org/en/tentativelists/5982/"},{"@type":"schema:URL","@value":"https://www.outdooractive.com/de/51497737"}],"schema:identifier":{"@type":"schema:URL","@value":"https://www.thueringen-entdecken.de/urlaub-hotel-reisen/alte-synagoge-erfurt-115157.html"},"schema:name":[{"@language":"de","@value":"Alte Synagoge"},{"@language":"fr","@value":"La vieille synagogue"},{"@language":"en","@value":"Old Synagogue"}],"schema:slogan":{"@type":"thuecat:ThuSlogan","@value":"thuecat:Highlight"},"schema:containedInPlace":[{"@id":"https://thuecat.org/resources/043064193523-jcyt"},{"@id":"https://thuecat.org/resources/573211638937-gmqb"},{"@id":"https://thuecat.org/resources/497839263245-edbm"}],"schema:photo":{"@id":"https://thuecat.org/resources/dms_5099196"},"schema:image":{"@id":"https://thuecat.org/resources/dms_5099196"},"schema:audience":[{"@id":"https://thuecat.org/resources/290287712606-zkwq"},{"@id":"https://thuecat.org/resources/312868368592-wnce"},{"@id":"https://thuecat.org/resources/301753337945-akzy"},{"@id":"https://thuecat.org/resources/304061111979-rmed"},{"@id":"https://thuecat.org/resources/668239314161-keen"}],"schema:petsAllowed":{"@language":"de","@value":"Tiere sind im Gebäude nicht gestattet, ausgenommen sind Blinden- und Blindenbegleithunde."},"schema:hasMap":{"@type":"schema:URL","@value":"https://www.google.com/maps/search/?api=1&query=50.978765,11.029133"},"schema:geo":{"@id":"genid-28b33237f71b41e3ad54a99e1da769b9-b4","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:GeoCoordinates"],"schema:longitude":{"@type":"schema:Number","@value":"11.029133"},"schema:latitude":{"@type":"schema:Number","@value":"50.978765"}},"schema:openingHoursSpecification":{"@id":"genid-28b33237f71b41e3ad54a99e1da769b9-b13","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:OpeningHoursSpecification"],"schema:validFrom":{"@type":"schema:Date","@value":"2021-03-01"},"schema:dayOfWeek":[{"@type":"schema:DayOfWeek","@value":"schema:Saturday"},{"@type":"schema:DayOfWeek","@value":"schema:Sunday"},{"@type":"schema:DayOfWeek","@value":"schema:Friday"},{"@type":"schema:DayOfWeek","@value":"schema:Thursday"},{"@type":"schema:DayOfWeek","@value":"schema:Tuesday"},{"@type":"schema:DayOfWeek","@value":"schema:Wednesday"}],"schema:opens":{"@type":"schema:Time","@value":"10:00:00"},"schema:validThrough":{"@type":"schema:Date","@value":"2021-12-31"},"schema:closes":{"@type":"schema:Time","@value":"18:00:00"}},"schema:isAccessibleForFree":{"@type":"schema:Boolean","@value":"false"},"schema:smokingAllowed":{"@type":"schema:Boolean","@value":"false"},"schema:url":{"@type":"schema:URL","@value":"http://www.alte-synagoge.erfurt.de"},"thuecat:accessibilitySpecification":{"@id":"https://thuecat.org/resources/e_23bec7f80c864c358da033dd75328f27-rfa"},"schema:availableLanguage":[{"@type":"thuecat:Language","@value":"thuecat:German"},{"@type":"thuecat:Language","@value":"thuecat:English"},{"@type":"thuecat:Language","@value":"thuecat:French"}],"schema:publicAccess":{"@type":"schema:Boolean","@value":"true"},"schema:paymentAccepted":[{"@type":"thuecat:PaymentAcceptedEnum","@value":"thuecat:CashPayment"},{"@type":"thuecat:PaymentAcceptedEnum","@value":"thuecat:EC"}],"schema:address":{"@id":"genid-28b33237f71b41e3ad54a99e1da769b9-b0","@type":["schema:Intangible","schema:PostalAddress","schema:StructuredValue","schema:Thing","schema:ContactPoint"],"schema:addressLocality":{"@language":"de","@value":"Erfurt"},"schema:addressCountry":{"@type":"thuecat:AddressCountry","@value":"thuecat:Germany"},"schema:postalCode":{"@language":"de","@value":"99084"},"schema:addressRegion":{"@type":"thuecat:AddressFederalState","@value":"thuecat:Thuringia"},"schema:telephone":{"@language":"de","@value":"+49 361 6551520"},"schema:email":{"@language":"de","@value":"altesynagoge@erfurt.de"},"schema:streetAddress":{"@language":"de","@value":"Waagegasse 8"},"schema:faxNumber":{"@language":"de","@value":"+49 361 6551669"},"thuecat:typOfAddress":{"@type":"thuecat:TypOfAddress","@value":"thuecat:HouseAddress"}},"schema:makesOffer":[{"@id":"genid-28b33237f71b41e3ad54a99e1da769b9-b5","@type":["schema:Intangible","schema:Thing","schema:Offer"],"schema:description":{"@language":"de","@value":"Immer samstags, um 11:15 Uhr findet eine öffentliche Führung durch das Museum statt. Dauer etwa 90 Minuten"},"schema:offeredBy":{"@id":"https://thuecat.org/resources/165868194223-zmqf"},"schema:name":{"@language":"de","@value":"Führungen"},"schema:priceSpecification":[{"@id":"genid-28b33237f71b41e3ad54a99e1da769b9-b6","@type":["schema:Intangible","schema:StructuredValue","schema:PriceSpecification","schema:Thing"],"schema:price":{"@type":"schema:Number","@value":"8"},"schema:name":{"@language":"de","@value":"Erwachsene"},"schema:priceCurrency":{"@type":"thuecat:Currency","@value":"thuecat:EUR"},"thuecat:calculationRule":{"@type":"thuecat:CalculationRule","@value":"thuecat:PerPerson"}},{"@id":"genid-28b33237f71b41e3ad54a99e1da769b9-b7","@type":["schema:Intangible","schema:StructuredValue","schema:PriceSpecification","schema:Thing"],"schema:description":{"@language":"de","@value":"als ermäßigt gelten schulpflichtige Kinder, Auszubildende, Studierende, Rentner/-innen, Menschen mit Behinderungen, Inhaber Sozialausweis der Landeshauptstadt Erfurt"},"schema:price":{"@type":"schema:Number","@value":"5"},"schema:name":{"@language":"de","@value":"Ermäßigt"},"schema:priceCurrency":{"@type":"thuecat:Currency","@value":"thuecat:EUR"},"thuecat:calculationRule":{"@type":"thuecat:CalculationRule","@value":"thuecat:PerPerson"}}],"thuecat:offerType":{"@type":"thuecat:OfferType","@value":"thuecat:GuidedTourOffer"}},{"@id":"genid-28b33237f71b41e3ad54a99e1da769b9-b8","@type":["schema:Intangible","schema:Thing","schema:Offer"],"schema:description":{"@language":"de","@value":"Schulklassen und Kitagruppen im Rahmen des Unterrichts: Eintritt frei\nAn jedem ersten Dienstag im Monat: Eintritt frei"},"schema:offeredBy":{"@id":"https://thuecat.org/resources/165868194223-zmqf"},"schema:name":{"@language":"de","@value":"Eintritt"},"schema:priceSpecification":[{"@id":"genid-28b33237f71b41e3ad54a99e1da769b9-b10","@type":["schema:Intangible","schema:StructuredValue","schema:PriceSpecification","schema:Thing"],"schema:description":{"@language":"de","@value":"als ermäßigt gelten schulpflichtige Kinder, Auszubildende, Studierende, Rentner/-innen, Menschen mit Behinderungen, Inhaber Sozialausweis der Landeshauptstadt Erfurt"},"schema:price":{"@type":"schema:Number","@value":"5"},"schema:name":{"@language":"de","@value":"Ermäßigt"},"schema:priceCurrency":{"@type":"thuecat:Currency","@value":"thuecat:EUR"},"thuecat:calculationRule":{"@type":"thuecat:CalculationRule","@value":"thuecat:PerPerson"}},{"@id":"genid-28b33237f71b41e3ad54a99e1da769b9-b11","@type":["schema:Intangible","schema:StructuredValue","schema:PriceSpecification","schema:Thing"],"schema:price":{"@type":"schema:Number","@value":"17"},"schema:name":{"@language":"de","@value":"Familienkarte"},"schema:priceCurrency":{"@type":"thuecat:Currency","@value":"thuecat:EUR"},"thuecat:calculationRule":{"@type":"thuecat:CalculationRule","@value":"thuecat:PerGroup"}},{"@id":"genid-28b33237f71b41e3ad54a99e1da769b9-b12","@type":["schema:Intangible","schema:StructuredValue","schema:PriceSpecification","schema:Thing"],"schema:price":{"@type":"schema:Number","@value":"14.90"},"schema:name":{"@language":"de","@value":"ErfurtCard"},"schema:priceCurrency":{"@type":"thuecat:Currency","@value":"thuecat:EUR"},"thuecat:calculationRule":{"@type":"thuecat:CalculationRule","@value":"thuecat:PerPackage"}},{"@id":"genid-28b33237f71b41e3ad54a99e1da769b9-b9","@type":["schema:Intangible","schema:StructuredValue","schema:PriceSpecification","schema:Thing"],"schema:price":{"@type":"schema:Number","@value":"8"},"schema:name":{"@language":"de","@value":"Erwachsene"},"schema:priceCurrency":{"@type":"thuecat:Currency","@value":"thuecat:EUR"},"thuecat:calculationRule":{"@type":"thuecat:CalculationRule","@value":"thuecat:PerPerson"}}],"thuecat:offerType":{"@type":"thuecat:OfferType","@value":"thuecat:EntryOffer"}}],"thuecat:exibitionObjekt":[{"@type":"thuecat:ExhibitionObject","@value":"thuecat:ReligiousHistoryExhibition"},{"@language":"de","@value":"Bau- und Nutzungsgeschichte der Alten Synagoge"},{"@language":"de","@value":"Erfurter Schatz"},{"@language":"de","@value":"Mittelalterliche Handschriften als Faksimile"}],"thuecat:museumService":{"@type":"thuecat:MuseumService","@value":"thuecat:MuseumShop"},"thuecat:contentResponsible":{"@id":"https://thuecat.org/resources/018132452787-ngbe"},"thuecat:monumentEnum":[{"@type":"thuecat:MonumentEnum","@value":"thuecat:ArchitecturalMonumentSingle"},{"@language":"de","@value":"Kulturdenkmal"}],"thuecat:digitalOffer":[{"@type":"thuecat:DigitalOffer","@value":"thuecat:AudioGuide"},{"@type":"thuecat:DigitalOffer","@value":"thuecat:VideoGuide"}],"thuecat:entrance":{"@type":"thuecat:Entrance","@value":"thuecat:IndoorActivities"},"thuecat:gastro":{"@type":"thuecat:GastroPoi","@value":"thuecat:ZeroGastronomy"},"thuecat:guidedTour":[{"@type":"thuecat:EnumGuidedTour","@value":"thuecat:GuidedTourOnlyWithRegistration"},{"@type":"thuecat:EnumGuidedTour","@value":"thuecat:GuidedTourRegistrationNotRequired"}],"thuecat:otherService":[{"@type":"thuecat:OtherService","@value":"thuecat:SeatingPossibilitiesRestArea"},{"@type":"thuecat:OtherService","@value":"thuecat:LockBoxes"},{"@type":"thuecat:OtherService","@value":"thuecat:SouvenirShop"},{"@type":"thuecat:OtherService","@value":"thuecat:BaggageStorage"}],"thuecat:photography":{"@type":"thuecat:Photography","@value":"thuecat:ZeroPhotography"},"thuecat:sanitation":[{"@type":"thuecat:Sanitation","@value":"thuecat:Toilets"},{"@type":"thuecat:Sanitation","@value":"thuecat:DisabledToilets"},{"@type":"thuecat:Sanitation","@value":"thuecat:NappyChangingArea"},{"@type":"thuecat:Sanitation","@value":"thuecat:FamilyAndChildFriendly"}],"thuecat:trafficInfrastructure":{"@type":"thuecat:TrafficInfrastructure","@value":"thuecat:ZeroSpecialTrafficInfrastructure"},"thuecat:distanceToPublicTransport":{"@id":"genid-28b33237f71b41e3ad54a99e1da769b9-b14","@type":["schema:Intangible","schema:QuantitativeValue","schema:StructuredValue","schema:Thing"],"schema:unitCode":{"@type":"thuecat:Unit","@value":"thuecat:MTR"},"schema:value":{"@type":"schema:Number","@value":"200"}},"thuecat:architecturalStyle":{"@type":"thuecat:ArchitecturalStyle","@value":"thuecat:GothicArt"},"thuecat:endOfConstruction":[{"@language":"de","@value":"12. Jh."},{"@language":"de","@value":"13. Jh."},{"@language":"de","@value":"19. Jh."},{"@language":"de","@value":"20. Jh."},{"@language":"de","@value":"14. Jh."},{"@language":"de","@value":"2009"}],"thuecat:startOfConstruction":[{"@language":"de","@value":"11. Jh."},{"@language":"en","@value":"11th century"}],"thuecat:openAirMuseum":{"@type":"schema:Boolean","@value":"false"}}]} diff --git a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/215230952334-yyno.json b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/215230952334-yyno.json new file mode 100644 index 0000000..32f3a50 --- /dev/null +++ b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/215230952334-yyno.json @@ -0,0 +1,376 @@ +{ + "@context": { + "cdb": "https://thuecat.org/ontology/cdb/1.0/", + "dachkg": "https://thuecat.org/ontology/dachkg/1.0/", + "dbo": "http://dbpedia.org/ontology/", + "dsv": "http://ontologies.sti-innsbruck.at/dsv/", + "foaf": "http://xmlns.com/foaf/0.1/", + "owl": "http://www.w3.org/2002/07/owl#", + "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", + "rdfs": "http://www.w3.org/2000/01/rdf-schema#", + "schema": "http://schema.org/", + "sh": "http://www.w3.org/ns/shacl#", + "thuecat": "https://thuecat.org/ontology/thuecat/1.0/", + "ttgds": "https://thuecat.org/ontology/ttgds/1.0/", + "xsd": "http://www.w3.org/2001/XMLSchema#" + }, + "@graph": [ + { + "@id": "https://thuecat.org/resources/215230952334-yyno", + "@type": [ + "schema:Place", + "schema:CivicStructure", + "schema:Thing", + "schema:Bridge", + "schema:TouristAttraction", + "ttgds:PointOfInterest", + "thuecat:Building", + "thuecat:TechnicalMonument", + "thuecat:TrafficBuilding", + "thuecat:TrafficHistory" + ], + "schema:address": { + "@id": "genid-a45a5606cd074d86bf242c9464d84171-b0", + "@type": [ + "schema:Intangible", + "schema:PostalAddress", + "schema:StructuredValue", + "schema:Thing", + "schema:ContactPoint" + ], + "schema:addressCountry": { + "@type": "thuecat:AddressCountry", + "@value": "thuecat:Germany" + }, + "schema:addressLocality": { + "@language": "de", + "@value": "Erfurt" + }, + "schema:addressRegion": { + "@type": "thuecat:AddressFederalState", + "@value": "thuecat:Thuringia" + }, + "schema:email": { + "@language": "de", + "@value": "service@erfurt-tourismus.de" + }, + "schema:postalCode": { + "@language": "de", + "@value": "99084" + }, + "schema:streetAddress": { + "@language": "de", + "@value": "Benediktsplatz 1" + }, + "schema:telephone": { + "@language": "de", + "@value": "+49 361 66 400" + }, + "thuecat:typOfAddress": { + "@type": "thuecat:TypOfAddress", + "@value": "thuecat:GuestService" + } + }, + "schema:audience": [ + { + "@id": "https://thuecat.org/resources/626826573915-omab" + }, + { + "@id": "https://thuecat.org/resources/799431457224-zhww" + }, + { + "@id": "https://thuecat.org/resources/290287712606-zkwq" + }, + { + "@id": "https://thuecat.org/resources/631158796785-rmet" + }, + { + "@id": "https://thuecat.org/resources/312868368592-wnce" + }, + { + "@id": "https://thuecat.org/resources/168404918510-whfb" + }, + { + "@id": "https://thuecat.org/resources/169573689982-ftrx" + }, + { + "@id": "https://thuecat.org/resources/454636296838-aaxo" + }, + { + "@id": "https://thuecat.org/resources/449487802126-gecn" + }, + { + "@id": "https://thuecat.org/resources/301753337945-akzy" + } + ], + "schema:availableLanguage": [ + { + "@type": "thuecat:Language", + "@value": "thuecat:German" + }, + { + "@type": "thuecat:Language", + "@value": "thuecat:English" + }, + { + "@type": "thuecat:Language", + "@value": "thuecat:French" + } + ], + "schema:containedInPlace": [ + { + "@id": "https://thuecat.org/resources/043064193523-jcyt" + }, + { + "@id": "https://thuecat.org/resources/052821473718-oxfq" + } + ], + "schema:containsPlace": [ + { + "@id": "https://thuecat.org/resources/r_18832477-oapoi" + }, + { + "@id": "https://thuecat.org/resources/e_ttg00020050000733686-tomas" + }, + { + "@id": "https://thuecat.org/resources/r_16573254-oapoi" + }, + { + "@id": "https://thuecat.org/resources/109950083644-arqe" + }, + { + "@id": "https://thuecat.org/resources/355818601084-zegp" + }, + { + "@id": "https://thuecat.org/resources/517095953903-gpcn" + }, + { + "@id": "https://thuecat.org/resources/954828840942-orbg" + } + ], + "schema:description": [ + { + "@language": "de", + "@value": "Ein bekanntes Wahrzeichen Erfurts ist die Kr\u00e4merbr\u00fccke, die l\u00e4ngste bebaute und bewohnte Br\u00fccke Europas.Die Kr\u00e4merbr\u00fccke wurde zu Beginn aus Holz und 1325 aus Stein erbaut. Zun\u00e4chst war die 120 m lange Br\u00fccke mit 62 schmalen H\u00e4usern bebaut. Sp\u00e4ter wurden einige der H\u00e4user auf nun mehr 32 zusammengefasst. An beiden Enden der Br\u00fccke standen zwei Br\u00fcckenkopfkirchen. Heute existiert nur noch eine der beiden, die \u00f6stlich gelegene \u00c4gidienkirche.Auf der Kr\u00e4merbr\u00fccke kann man in Galerien und Boutiquen sehr sch\u00f6n bummeln gehen. Man kann Th\u00fcringer Handwerksmeistern bei ihrer Arbeit \u00fcber die Schulter schauen. Keramik, Porzellan und Holzschnitzereien, Blaudruck und Lauschaer Glas sind beliebte Souvenirs. Caf\u00e8s, Weinh\u00e4ndler und Feinkostgesch\u00e4fte mit Th\u00fcringer Spezialit\u00e4ten laden zum Verweilen ein." + }, + { + "@language": "en", + "@value": "Another Erfurt landmark is the Merchants' Bridge (Kr\u00e4merbr\u00fccke), the longest series of inhabited buildings on any bridge in Europe. The Merchants' Bridge is Erfurts most interesting secular construction, initially in wood but rebuilt in stone in 1325. There were originally 62 narrow buildings along its 120-metre length, but subsequent redevelopment left just 32 buildings. Of what was once a pair of bridgehead churches, only the Church of St. Aegidius remains at the eastern end of the bridge today. The Merchants' Bridge is lined with galleries, caf\u00e9s and boutiques offering traditional crafts, Thuringian blue printed fabrics, hand-painted ceramics, handblown glassware, jewellery, wood carvings, antiques and delicious Thuringian specialities - perfect for browsing." + }, + { + "@language": "fr", + "@value": "Le pont de l\u2019\u00e9picier est un des symboles de la ville d\u2019Erfurt, le plus grand pont habit\u00e9 en continu d\u2019Europe. A l\u2019origine, le pont de l\u2019\u00e9picier faisait 120 m de long et comptait 62 maisons \u00e9troites, qui furent plus tard regroup\u00e9es en 32 maisons. Sur le pont de l\u2019\u00e9picier se trouvent des galeries et des petites \u00e9choppes proposant des \u00e9toffes \u00e0 motifs bleu indigo de Thuringe, des c\u00e9ramiques peintes main, du verre de Lauscha, des bijoux et des sculptures en bois." + }, + { + "@id": "genid-a45a5606cd074d86bf242c9464d84171-b1", + "@type": [ + "thuecat:Html" + ], + "schema:value": { + "@language": "de", + "@value": "Ein bekanntes Wahrzeichen Erfurts ist die Kr\u00e4merbr\u00fccke, die l\u00e4ngste bebaute und bewohnte Br\u00fccke Europas.Die Kr\u00e4merbr\u00fccke wurde zu Beginn aus Holz und 1325 aus Stein erbaut. Zun\u00e4chst war die 120 m lange Br\u00fccke mit 62 schmalen H\u00e4usern bebaut. Sp\u00e4ter wurden einige der H\u00e4user auf nun mehr 32 zusammengefasst. An beiden Enden der Br\u00fccke standen zwei Br\u00fcckenkopfkirchen. Heute existiert nur noch eine der beiden, die \u00f6stlich gelegene \u00c4gidienkirche.Auf der Kr\u00e4merbr\u00fccke kann man in Galerien und Boutiquen sehr sch\u00f6n bummeln gehen. Man kann Th\u00fcringer Handwerksmeistern bei ihrer Arbeit \u00fcber die Schulter schauen. Keramik, Porzellan und Holzschnitzereien, Blaudruck und Lauschaer Glas sind beliebte Souvenirs. Caf\u00e8s, Weinh\u00e4ndler und Feinkostgesch\u00e4fte mit Th\u00fcringer Spezialit\u00e4ten laden zum Verweilen ein." + } + }, + { + "@id": "genid-a45a5606cd074d86bf242c9464d84171-b2", + "@type": [ + "thuecat:Html" + ], + "schema:value": { + "@language": "en", + "@value": "

Another Erfurt landmark is the Merchants' Bridge (Kr\u00e4merbr\u00fccke), the longest series of inhabited buildings on any bridge in Europe. The Merchants' Bridge is Erfurts most interesting secular construction, initially in wood but rebuilt in stone in 1325. There were originally 62 narrow buildings along its 120-metre length, but subsequent redevelopment left just 32 buildings. Of what was once a pair of bridgehead churches, only the Church of St. Aegidius remains at the eastern end of the bridge today. The Merchants' Bridge is lined with galleries, caf\u00e9s and boutiques offering traditional crafts, Thuringian blue printed fabrics, hand-painted ceramics, handblown glassware, jewellery, wood carvings, antiques and delicious Thuringian specialities - perfect for browsing.

" + } + }, + { + "@id": "genid-a45a5606cd074d86bf242c9464d84171-b3", + "@type": [ + "thuecat:Html" + ], + "schema:value": { + "@language": "fr", + "@value": "

Le pont de l\u2019\u00e9picier est un des symboles de la ville d\u2019Erfurt, le plus grand pont habit\u00e9 en continu d\u2019Europe. A l\u2019origine, le pont de l\u2019\u00e9picier faisait 120 m de long et comptait 62 maisons \u00e9troites, qui furent plus tard regroup\u00e9es en 32 maisons. Sur le pont de l\u2019\u00e9picier se trouvent des galeries et des petites \u00e9choppes proposant des \u00e9toffes \u00e0 motifs bleu indigo de Thuringe, des c\u00e9ramiques peintes main, du verre de Lauscha, des bijoux et des sculptures en bois.

" + } + } + ], + "schema:geo": { + "@id": "genid-a45a5606cd074d86bf242c9464d84171-b4", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:GeoCoordinates" + ], + "schema:latitude": { + "@type": "schema:Number", + "@value": "50.978772" + }, + "schema:longitude": { + "@type": "schema:Number", + "@value": "11.031622" + } + }, + "schema:hasMap": { + "@type": "schema:URL", + "@value": "https://www.google.com/maps/search/?api=1&query=50.978772,11.031622" + }, + "schema:identifier": { + "@type": "schema:URL", + "@value": "https://www.thueringen-entdecken.de/urlaub-hotel-reisen/kraemerbruecke-103571.html" + }, + "schema:image": [ + { + "@id": "https://thuecat.org/resources/dms_134288" + }, + { + "@id": "https://thuecat.org/resources/dms_134362" + }, + { + "@id": "https://thuecat.org/resources/dms_652340" + } + ], + "schema:isAccessibleForFree": { + "@type": "schema:Boolean", + "@value": "true" + }, + "schema:name": [ + { + "@language": "de", + "@value": "Kr\u00e4merbr\u00fccke" + }, + { + "@language": "en", + "@value": "Merchants' Bridge" + }, + { + "@language": "fr", + "@value": "Pont de l'\u00e9picier" + } + ], + "schema:petsAllowed": { + "@type": "schema:Boolean", + "@value": "true" + }, + "schema:photo": { + "@id": "https://thuecat.org/resources/dms_134362" + }, + "schema:publicAccess": { + "@type": "schema:Boolean", + "@value": "true" + }, + "schema:sameAs": [ + { + "@type": "xsd:string", + "@value": "http://www.kraemerbruecke.de" + }, + { + "@type": "schema:URL", + "@value": "https://www.outdooractive.com/de/51497738" + } + ], + "schema:smokingAllowed": { + "@type": "schema:Boolean", + "@value": "true" + }, + "schema:url": { + "@type": "schema:URL", + "@value": "https://www.erfurt-tourismus.de/sehenswertes/kraemerbruecke" + }, + "thuecat:architecturalStyle": { + "@type": "thuecat:ArchitecturalStyle", + "@value": "thuecat:ZeroInformationArchitecturalStyle" + }, + "thuecat:contentResponsible": { + "@id": "https://thuecat.org/resources/018132452787-ngbe" + }, + "thuecat:digitalOffer": { + "@type": "thuecat:DigitalOffer", + "@value": "thuecat:ZeroDigitalOffer" + }, + "thuecat:distanceToPublicTransport": { + "@id": "genid-a45a5606cd074d86bf242c9464d84171-b5", + "@type": [ + "schema:Intangible", + "schema:QuantitativeValue", + "schema:StructuredValue", + "schema:Thing" + ], + "schema:unitCode": { + "@type": "thuecat:Unit", + "@value": "thuecat:MTR" + }, + "schema:value": { + "@type": "schema:Number", + "@value": "250" + } + }, + "thuecat:entrance": { + "@type": "thuecat:Entrance", + "@value": "thuecat:OutdoorActivities" + }, + "thuecat:gastro": [ + { + "@type": "thuecat:GastroPoi", + "@value": "thuecat:TakeawayShop" + }, + { + "@type": "thuecat:GastroPoi", + "@value": "thuecat:Cafe" + }, + { + "@type": "thuecat:GastroPoi", + "@value": "thuecat:Restaurant" + } + ], + "thuecat:guidedTour": { + "@type": "thuecat:EnumGuidedTour", + "@value": "thuecat:GuidedTourOnlyWithRegistration" + }, + "thuecat:isRuin": { + "@type": "schema:Boolean", + "@value": "false" + }, + "thuecat:monumentEnum": { + "@type": "thuecat:MonumentEnum", + "@value": "thuecat:ArchitecturalMonumentSingle" + }, + "thuecat:otherService": [ + { + "@type": "thuecat:OtherService", + "@value": "thuecat:Playground" + }, + { + "@type": "thuecat:OtherService", + "@value": "thuecat:SeatingPossibilitiesRestArea" + }, + { + "@type": "thuecat:OtherService", + "@value": "thuecat:SouvenirShop" + }, + { + "@type": "thuecat:OtherService", + "@value": "thuecat:PlayCornerOrPlayArea" + } + ], + "thuecat:parkingFacilityNearBy": [ + { + "@id": "https://thuecat.org/resources/396420044896-drzt" + }, + { + "@id": "https://thuecat.org/resources/440055527204-ocar" + } + ], + "thuecat:photography": { + "@type": "thuecat:Photography", + "@value": "thuecat:TakingPicturesPermitted" + }, + "thuecat:sanitation": { + "@type": "thuecat:Sanitation", + "@value": "thuecat:ZeroSanitation" + }, + "thuecat:trafficInfrastructure": { + "@type": "thuecat:TrafficInfrastructure", + "@value": "thuecat:BicycleLockersEnumMem" + } + } + ] +} diff --git a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/215230952334-yyno/GET_dffece5d931faa885ff4e226eb9e3b5c.txt b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/215230952334-yyno/GET_dffece5d931faa885ff4e226eb9e3b5c.txt deleted file mode 100644 index 6a93c1f..0000000 --- a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/215230952334-yyno/GET_dffece5d931faa885ff4e226eb9e3b5c.txt +++ /dev/null @@ -1,19 +0,0 @@ -HTTP/1.1 200 OK -Date: Wed, 17 Feb 2021 08:03:50 GMT -Content-Type: application/ld+json; charset=utf-8 -Content-Length: 11233 -Connection: keep-alive -Set-Cookie: ahSession=eaa02c5e626fce824b58b789083b2033f3bf0afb;path=/;expires=Sat, 20 Mar 2021 08:03:50 GMT;httpOnly=true; -Access-Control-Allow-Methods: HEAD, GET, POST, DELETE, OPTIONS -Access-Control-Allow-Headers: Authorization, Content-Type -Strict-Transport-Security: max-age=15724800; includeSubDomains -Access-Control-Allow-Credentials: true -X-Frame-Options: deny -X-XSS-Protection: 1; mode=block -X-Content-Type-Options: nosniff -Referrer-Policy: same-origin -Feature-Policy: microphone 'none'; camera 'none'; payment 'none' -Content-Security-Policy: default-src 'self'; script-src 'self' 'sha256-xfTbtWk8kVI65iLJs8LB3lWf2g0g10DS71pDdoutFHc='; style-src 'self' 'unsafe-inline' https://stackpath.bootstrapcdn.com; img-src 'self' data: blob: * -Access-Control-Allow-Origin: https://cdb.thuecat.org - -{"@context":{"schema":"http://schema.org/","dbo":"http://dbpedia.org/ontology/","dsv":"http://ontologies.sti-innsbruck.at/dsv/","foaf":"http://xmlns.com/foaf/0.1/","owl":"http://www.w3.org/2002/07/owl#","rdf":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","rdfs":"http://www.w3.org/2000/01/rdf-schema#","sh":"http://www.w3.org/ns/shacl#","xsd":"http://www.w3.org/2001/XMLSchema#","ttgds":"https://thuecat.org/ontology/ttgds/1.0/","cdb":"https://thuecat.org/ontology/cdb/1.0/","dachkg":"https://thuecat.org/ontology/dachkg/1.0/","thuecat":"https://thuecat.org/ontology/thuecat/1.0/"},"@graph":[{"@id":"https://thuecat.org/resources/215230952334-yyno","@type":["schema:Place","schema:CivicStructure","schema:Thing","schema:Bridge","schema:TouristAttraction","ttgds:PointOfInterest","thuecat:Building","thuecat:TechnicalMonument","thuecat:TrafficBuilding","thuecat:TrafficHistory"],"schema:description":[{"@language":"de","@value":"Ein bekanntes Wahrzeichen Erfurts ist die Krämerbrücke, die längste bebaute und bewohnte Brücke Europas.Die Krämerbrücke wurde zu Beginn aus Holz und 1325 aus Stein erbaut. Zunächst war die 120 m lange Brücke mit 62 schmalen Häusern bebaut. Später wurden einige der Häuser auf nun mehr 32 zusammengefasst. An beiden Enden der Brücke standen zwei Brückenkopfkirchen. Heute existiert nur noch eine der beiden, die östlich gelegene Ägidienkirche.Auf der Krämerbrücke kann man in Galerien und Boutiquen sehr schön bummeln gehen. Man kann Thüringer Handwerksmeistern bei ihrer Arbeit über die Schulter schauen. Keramik, Porzellan und Holzschnitzereien, Blaudruck und Lauschaer Glas sind beliebte Souvenirs. Cafès, Weinhändler und Feinkostgeschäfte mit Thüringer Spezialitäten laden zum Verweilen ein."},{"@language":"en","@value":"Another Erfurt landmark is the Merchants' Bridge (Krämerbrücke), the longest series of inhabited buildings on any bridge in Europe. The Merchants' Bridge is Erfurts most interesting secular construction, initially in wood but rebuilt in stone in 1325. There were originally 62 narrow buildings along its 120-metre length, but subsequent redevelopment left just 32 buildings. Of what was once a pair of bridgehead churches, only the Church of St. Aegidius remains at the eastern end of the bridge today. The Merchants' Bridge is lined with galleries, cafés and boutiques offering traditional crafts, Thuringian blue printed fabrics, hand-painted ceramics, handblown glassware, jewellery, wood carvings, antiques and delicious Thuringian specialities - perfect for browsing."},{"@language":"fr","@value":"Le pont de l’épicier est un des symboles de la ville d’Erfurt, le plus grand pont habité en continu d’Europe. A l’origine, le pont de l’épicier faisait 120 m de long et comptait 62 maisons étroites, qui furent plus tard regroupées en 32 maisons. Sur le pont de l’épicier se trouvent des galeries et des petites échoppes proposant des étoffes à motifs bleu indigo de Thuringe, des céramiques peintes main, du verre de Lauscha, des bijoux et des sculptures en bois."},{"@id":"genid-a45a5606cd074d86bf242c9464d84171-b1","@type":["thuecat:Html"],"schema:value":{"@language":"de","@value":"Ein bekanntes Wahrzeichen Erfurts ist die Krämerbrücke, die längste bebaute und bewohnte Brücke Europas.Die Krämerbrücke wurde zu Beginn aus Holz und 1325 aus Stein erbaut. Zunächst war die 120 m lange Brücke mit 62 schmalen Häusern bebaut. Später wurden einige der Häuser auf nun mehr 32 zusammengefasst. An beiden Enden der Brücke standen zwei Brückenkopfkirchen. Heute existiert nur noch eine der beiden, die östlich gelegene Ägidienkirche.Auf der Krämerbrücke kann man in Galerien und Boutiquen sehr schön bummeln gehen. Man kann Thüringer Handwerksmeistern bei ihrer Arbeit über die Schulter schauen. Keramik, Porzellan und Holzschnitzereien, Blaudruck und Lauschaer Glas sind beliebte Souvenirs. Cafès, Weinhändler und Feinkostgeschäfte mit Thüringer Spezialitäten laden zum Verweilen ein."}},{"@id":"genid-a45a5606cd074d86bf242c9464d84171-b2","@type":["thuecat:Html"],"schema:value":{"@language":"en","@value":"

Another Erfurt landmark is the Merchants' Bridge (Krämerbrücke), the longest series of inhabited buildings on any bridge in Europe. The Merchants' Bridge is Erfurts most interesting secular construction, initially in wood but rebuilt in stone in 1325. There were originally 62 narrow buildings along its 120-metre length, but subsequent redevelopment left just 32 buildings. Of what was once a pair of bridgehead churches, only the Church of St. Aegidius remains at the eastern end of the bridge today. The Merchants' Bridge is lined with galleries, cafés and boutiques offering traditional crafts, Thuringian blue printed fabrics, hand-painted ceramics, handblown glassware, jewellery, wood carvings, antiques and delicious Thuringian specialities - perfect for browsing.

"}},{"@id":"genid-a45a5606cd074d86bf242c9464d84171-b3","@type":["thuecat:Html"],"schema:value":{"@language":"fr","@value":"

Le pont de l’épicier est un des symboles de la ville d’Erfurt, le plus grand pont habité en continu d’Europe. A l’origine, le pont de l’épicier faisait 120 m de long et comptait 62 maisons étroites, qui furent plus tard regroupées en 32 maisons. Sur le pont de l’épicier se trouvent des galeries et des petites échoppes proposant des étoffes à motifs bleu indigo de Thuringe, des céramiques peintes main, du verre de Lauscha, des bijoux et des sculptures en bois.

"}}],"schema:sameAs":[{"@type":"xsd:string","@value":"http://www.kraemerbruecke.de"},{"@type":"schema:URL","@value":"https://www.outdooractive.com/de/51497738"}],"schema:identifier":{"@type":"schema:URL","@value":"https://www.thueringen-entdecken.de/urlaub-hotel-reisen/kraemerbruecke-103571.html"},"schema:name":[{"@language":"de","@value":"Krämerbrücke"},{"@language":"en","@value":"Merchants' Bridge"},{"@language":"fr","@value":"Pont de l'épicier"}],"schema:containedInPlace":[{"@id":"https://thuecat.org/resources/043064193523-jcyt"},{"@id":"https://thuecat.org/resources/052821473718-oxfq"}],"schema:containsPlace":[{"@id":"https://thuecat.org/resources/r_18832477-oapoi"},{"@id":"https://thuecat.org/resources/e_ttg00020050000733686-tomas"},{"@id":"https://thuecat.org/resources/r_16573254-oapoi"},{"@id":"https://thuecat.org/resources/109950083644-arqe"},{"@id":"https://thuecat.org/resources/355818601084-zegp"},{"@id":"https://thuecat.org/resources/517095953903-gpcn"},{"@id":"https://thuecat.org/resources/954828840942-orbg"}],"schema:photo":{"@id":"https://thuecat.org/resources/dms_134362"},"schema:image":[{"@id":"https://thuecat.org/resources/dms_134288"},{"@id":"https://thuecat.org/resources/dms_134362"},{"@id":"https://thuecat.org/resources/dms_652340"}],"schema:audience":[{"@id":"https://thuecat.org/resources/626826573915-omab"},{"@id":"https://thuecat.org/resources/799431457224-zhww"},{"@id":"https://thuecat.org/resources/290287712606-zkwq"},{"@id":"https://thuecat.org/resources/631158796785-rmet"},{"@id":"https://thuecat.org/resources/312868368592-wnce"},{"@id":"https://thuecat.org/resources/168404918510-whfb"},{"@id":"https://thuecat.org/resources/169573689982-ftrx"},{"@id":"https://thuecat.org/resources/454636296838-aaxo"},{"@id":"https://thuecat.org/resources/449487802126-gecn"},{"@id":"https://thuecat.org/resources/301753337945-akzy"}],"schema:petsAllowed":{"@type":"schema:Boolean","@value":"true"},"schema:hasMap":{"@type":"schema:URL","@value":"https://www.google.com/maps/search/?api=1&query=50.978772,11.031622"},"schema:geo":{"@id":"genid-a45a5606cd074d86bf242c9464d84171-b4","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:GeoCoordinates"],"schema:longitude":{"@type":"schema:Number","@value":"11.031622"},"schema:latitude":{"@type":"schema:Number","@value":"50.978772"}},"schema:isAccessibleForFree":{"@type":"schema:Boolean","@value":"true"},"schema:smokingAllowed":{"@type":"schema:Boolean","@value":"true"},"schema:url":{"@type":"schema:URL","@value":"https://www.erfurt-tourismus.de/sehenswertes/kraemerbruecke"},"schema:availableLanguage":[{"@type":"thuecat:Language","@value":"thuecat:German"},{"@type":"thuecat:Language","@value":"thuecat:English"},{"@type":"thuecat:Language","@value":"thuecat:French"}],"schema:publicAccess":{"@type":"schema:Boolean","@value":"true"},"schema:address":{"@id":"genid-a45a5606cd074d86bf242c9464d84171-b0","@type":["schema:Intangible","schema:PostalAddress","schema:StructuredValue","schema:Thing","schema:ContactPoint"],"schema:addressLocality":{"@language":"de","@value":"Erfurt"},"schema:addressCountry":{"@type":"thuecat:AddressCountry","@value":"thuecat:Germany"},"schema:postalCode":{"@language":"de","@value":"99084"},"schema:addressRegion":{"@type":"thuecat:AddressFederalState","@value":"thuecat:Thuringia"},"schema:telephone":{"@language":"de","@value":"+49 361 66 400"},"schema:email":{"@language":"de","@value":"service@erfurt-tourismus.de"},"schema:streetAddress":{"@language":"de","@value":"Benediktsplatz 1"},"thuecat:typOfAddress":{"@type":"thuecat:TypOfAddress","@value":"thuecat:GuestService"}},"thuecat:contentResponsible":{"@id":"https://thuecat.org/resources/018132452787-ngbe"},"thuecat:monumentEnum":{"@type":"thuecat:MonumentEnum","@value":"thuecat:ArchitecturalMonumentSingle"},"thuecat:digitalOffer":{"@type":"thuecat:DigitalOffer","@value":"thuecat:ZeroDigitalOffer"},"thuecat:entrance":{"@type":"thuecat:Entrance","@value":"thuecat:OutdoorActivities"},"thuecat:gastro":[{"@type":"thuecat:GastroPoi","@value":"thuecat:TakeawayShop"},{"@type":"thuecat:GastroPoi","@value":"thuecat:Cafe"},{"@type":"thuecat:GastroPoi","@value":"thuecat:Restaurant"}],"thuecat:guidedTour":{"@type":"thuecat:EnumGuidedTour","@value":"thuecat:GuidedTourOnlyWithRegistration"},"thuecat:otherService":[{"@type":"thuecat:OtherService","@value":"thuecat:Playground"},{"@type":"thuecat:OtherService","@value":"thuecat:SeatingPossibilitiesRestArea"},{"@type":"thuecat:OtherService","@value":"thuecat:SouvenirShop"},{"@type":"thuecat:OtherService","@value":"thuecat:PlayCornerOrPlayArea"}],"thuecat:photography":{"@type":"thuecat:Photography","@value":"thuecat:TakingPicturesPermitted"},"thuecat:sanitation":{"@type":"thuecat:Sanitation","@value":"thuecat:ZeroSanitation"},"thuecat:trafficInfrastructure":{"@type":"thuecat:TrafficInfrastructure","@value":"thuecat:BicycleLockersEnumMem"},"thuecat:distanceToPublicTransport":{"@id":"genid-a45a5606cd074d86bf242c9464d84171-b5","@type":["schema:Intangible","schema:QuantitativeValue","schema:StructuredValue","schema:Thing"],"schema:unitCode":{"@type":"thuecat:Unit","@value":"thuecat:MTR"},"schema:value":{"@type":"schema:Number","@value":"250"}},"thuecat:parkingFacilityNearBy":[{"@id":"https://thuecat.org/resources/396420044896-drzt"},{"@id":"https://thuecat.org/resources/440055527204-ocar"}],"thuecat:architecturalStyle":{"@type":"thuecat:ArchitecturalStyle","@value":"thuecat:ZeroInformationArchitecturalStyle"},"thuecat:isRuin":{"@type":"schema:Boolean","@value":"false"}}]} diff --git a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/333039283321-xxwg.json b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/333039283321-xxwg.json new file mode 100644 index 0000000..9972ef0 --- /dev/null +++ b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/333039283321-xxwg.json @@ -0,0 +1,364 @@ +{ + "@context": { + "cdb": "https://thuecat.org/ontology/cdb/1.0/", + "dachkg": "https://thuecat.org/ontology/dachkg/1.0/", + "dbo": "http://dbpedia.org/ontology/", + "dsv": "http://ontologies.sti-innsbruck.at/dsv/", + "foaf": "http://xmlns.com/foaf/0.1/", + "owl": "http://www.w3.org/2002/07/owl#", + "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", + "rdfs": "http://www.w3.org/2000/01/rdf-schema#", + "schema": "http://schema.org/", + "sh": "http://www.w3.org/ns/shacl#", + "thuecat": "https://thuecat.org/ontology/thuecat/1.0/", + "ttgds": "https://thuecat.org/ontology/ttgds/1.0/", + "xsd": "http://www.w3.org/2001/XMLSchema#" + }, + "@graph": [ + { + "@id": "https://thuecat.org/resources/333039283321-xxwg", + "@type": [ + "schema:Place", + "schema:Organization", + "schema:LocalBusiness", + "schema:Thing", + "schema:TouristInformationCenter", + "ttgds:PointOfInterest", + "thuecat:TouristInformation" + ], + "schema:address": { + "@id": "genid-39178cabb01c40e091809d730cb07b5a-b0", + "@type": [ + "schema:Intangible", + "schema:PostalAddress", + "schema:StructuredValue", + "schema:Thing", + "schema:ContactPoint" + ], + "schema:addressCountry": { + "@type": "thuecat:AddressCountry", + "@value": "thuecat:Germany" + }, + "schema:addressLocality": { + "@language": "de", + "@value": "Erfurt" + }, + "schema:addressRegion": { + "@type": "thuecat:AddressFederalState", + "@value": "thuecat:Thuringia" + }, + "schema:email": { + "@language": "de", + "@value": "info@erfurt-tourismus.de" + }, + "schema:faxNumber": { + "@language": "de", + "@value": "+49 361 6640290" + }, + "schema:postalCode": { + "@language": "de", + "@value": "99084" + }, + "schema:streetAddress": { + "@language": "de", + "@value": "Benediktsplatz 1" + }, + "schema:telephone": { + "@language": "de", + "@value": "+49 361 66400" + }, + "thuecat:typOfAddress": { + "@type": "thuecat:TypOfAddress", + "@value": "thuecat:HouseAddress" + } + }, + "schema:containedInPlace": [ + { + "@id": "https://thuecat.org/resources/043064193523-jcyt" + }, + { + "@id": "https://thuecat.org/resources/573211638937-gmqb" + }, + { + "@id": "https://thuecat.org/resources/e_108867196-oatour" + }, + { + "@id": "https://thuecat.org/resources/e_1492818-oatour" + }, + { + "@id": "https://thuecat.org/resources/e_16571065-oatour" + }, + { + "@id": "https://thuecat.org/resources/e_16659193-oatour" + }, + { + "@id": "https://thuecat.org/resources/e_18179059-oatour" + }, + { + "@id": "https://thuecat.org/resources/e_18429754-oatour" + }, + { + "@id": "https://thuecat.org/resources/e_18429974-oatour" + }, + { + "@id": "https://thuecat.org/resources/e_18550292-oatour" + }, + { + "@id": "https://thuecat.org/resources/e_21827958-oatour" + }, + { + "@id": "https://thuecat.org/resources/e_39285647-oatour" + }, + { + "@id": "https://thuecat.org/resources/e_52469786-oatour" + }, + { + "@id": "https://thuecat.org/resources/356133173991-cryw" + } + ], + "schema:containsPlace": { + "@id": "https://thuecat.org/resources/186583376407-xkwx" + }, + "schema:description": [ + { + "@language": "de", + "@value": "Direkt an der Kr\u00e4merbr\u00fccke liegt die Erfurter Tourist Information. Nach einer Modernisierung im Fr\u00fchjahr 2017 erstrahlt diese in neuem Glanz und ist auch technisch auf dem neuesten Stand. Hier erhalten Sie Stadtpl\u00e4ne, Brosch\u00fcren zu Erfurt und originelle Souvenirs. Zudem bietet die Tourist Information vielf\u00e4ltige Stadtf\u00fchrungen und Rundfahrten mit Stra\u00dfenbahn oder Bus sowie kompetente Beratung zu Hotels, Pensionen und Privatunterk\u00fcnften. " + }, + { + "@id": "genid-39178cabb01c40e091809d730cb07b5a-b1", + "@type": [ + "thuecat:Html" + ], + "schema:value": { + "@language": "de", + "@value": "Direkt an der Kr\u00e4merbr\u00fccke liegt die Erfurter Tourist Information. Nach einer Modernisierung im Fr\u00fchjahr 2017 erstrahlt diese in neuem Glanz und ist auch technisch auf dem neuesten Stand. Hier erhalten Sie Stadtpl\u00e4ne, Brosch\u00fcren zu Erfurt und originelle Souvenirs. Zudem bietet die Tourist Information vielf\u00e4ltige Stadtf\u00fchrungen und Rundfahrten mit Stra\u00dfenbahn oder Bus sowie kompetente Beratung zu Hotels, Pensionen und Privatunterk\u00fcnften. " + } + } + ], + "schema:geo": { + "@id": "genid-39178cabb01c40e091809d730cb07b5a-b2", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:GeoCoordinates" + ], + "schema:latitude": { + "@type": "schema:Number", + "@value": "50.9784118" + }, + "schema:longitude": { + "@type": "schema:Number", + "@value": "11.0298392" + } + }, + "schema:hasMap": { + "@type": "schema:URL", + "@value": "https://www.google.de/maps/place/Benediktspl.+1,+99084+Erfurt/@50.9784152,11.0276505,17z/data=!4m13!1m7!3m6!1s0x47a472961021c18b:0xc2d4b6b7eb27d4c1!2sBenediktspl.+1,+99084+Erfurt!3b1!8m2!3d50.9784118!4d11.0298392!3m4!1s0x47a472961021c18b:0xc2d4b6b7eb27d4c1!8m2!3d50.9784118!4d11.0298392?hl=de" + }, + "schema:image": { + "@id": "https://thuecat.org/resources/dms_5162598" + }, + "schema:isAccessibleForFree": { + "@type": "schema:Boolean", + "@value": "true" + }, + "schema:name": { + "@language": "de", + "@value": "Erfurt Tourist Information" + }, + "schema:openingHoursSpecification": { + "@id": "genid-39178cabb01c40e091809d730cb07b5a-b3", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:OpeningHoursSpecification" + ], + "schema:closes": { + "@type": "schema:Time", + "@value": "18:00:00" + }, + "schema:dayOfWeek": [ + { + "@type": "schema:DayOfWeek", + "@value": "schema:Saturday" + }, + { + "@type": "schema:DayOfWeek", + "@value": "schema:Friday" + }, + { + "@type": "schema:DayOfWeek", + "@value": "schema:Thursday" + }, + { + "@type": "schema:DayOfWeek", + "@value": "schema:Tuesday" + }, + { + "@type": "schema:DayOfWeek", + "@value": "schema:Monday" + }, + { + "@type": "schema:DayOfWeek", + "@value": "schema:Wednesday" + } + ], + "schema:opens": { + "@type": "schema:Time", + "@value": "10:00:00" + }, + "schema:validFrom": { + "@type": "schema:Date", + "@value": "2021-02-22" + }, + "schema:validThrough": { + "@type": "schema:Date", + "@value": "2021-12-31" + } + }, + "schema:paymentAccepted": [ + { + "@type": "thuecat:PaymentAcceptedEnum", + "@value": "thuecat:CashPayment" + }, + { + "@type": "thuecat:PaymentAcceptedEnum", + "@value": "thuecat:EC" + } + ], + "schema:petsAllowed": { + "@type": "schema:Boolean", + "@value": "true" + }, + "schema:photo": { + "@id": "https://thuecat.org/resources/dms_5162598" + }, + "schema:publicAccess": { + "@type": "schema:Boolean", + "@value": "true" + }, + "schema:sameAs": { + "@type": "schema:URL", + "@value": "https://www.outdooractive.com/de/16520521" + }, + "schema:smokingAllowed": { + "@type": "schema:Boolean", + "@value": "false" + }, + "schema:url": { + "@type": "schema:URL", + "@value": "https://www.erfurt-tourismus.de" + }, + "thuecat:contentResponsible": { + "@id": "https://thuecat.org/resources/018132452787-ngbe" + }, + "thuecat:digitalOffer": { + "@type": "thuecat:DigitalOffer", + "@value": "thuecat:ZeroDigitalOffer" + }, + "thuecat:distanceToPublicTransport": { + "@id": "genid-39178cabb01c40e091809d730cb07b5a-b4", + "@type": [ + "schema:Intangible", + "schema:QuantitativeValue", + "schema:StructuredValue", + "schema:Thing" + ], + "schema:unitCode": { + "@type": "thuecat:Unit", + "@value": "thuecat:MTR" + }, + "schema:value": { + "@type": "schema:Number", + "@value": "180" + } + }, + "thuecat:entrance": { + "@type": "thuecat:Entrance", + "@value": "thuecat:IndoorActivities" + }, + "thuecat:gastro": { + "@type": "thuecat:GastroPoi", + "@value": "thuecat:ZeroGastronomy" + }, + "thuecat:guidedTour": { + "@type": "thuecat:EnumGuidedTour", + "@value": "thuecat:ZeroGuidedTours" + }, + "thuecat:managedBy": { + "@id": "https://thuecat.org/resources/018132452787-ngbe" + }, + "thuecat:otherService": { + "@type": "thuecat:OtherService", + "@value": "thuecat:ZeroOtherServiceEnumMem" + }, + "thuecat:parkingFacilityNearBy": { + "@id": "https://thuecat.org/resources/396420044896-drzt" + }, + "thuecat:photography": { + "@type": "thuecat:Photography", + "@value": "thuecat:TakingPicturesPermitted" + }, + "thuecat:sanitation": { + "@type": "thuecat:Sanitation", + "@value": "thuecat:ZeroSanitation" + }, + "thuecat:serviceAndOffers": [ + { + "@type": "thuecat:ServiceAndOffers", + "@value": "thuecat:AccommodationService" + }, + { + "@type": "thuecat:ServiceAndOffers", + "@value": "thuecat:CityMapDisplay" + }, + { + "@type": "thuecat:ServiceAndOffers", + "@value": "thuecat:CityMapEdition" + }, + { + "@type": "thuecat:ServiceAndOffers", + "@value": "thuecat:GuidedCityTours" + }, + { + "@type": "thuecat:ServiceAndOffers", + "@value": "thuecat:InformationAboutAccommodation" + }, + { + "@type": "thuecat:ServiceAndOffers", + "@value": "thuecat:InformationPlacePrint" + }, + { + "@type": "thuecat:ServiceAndOffers", + "@value": "thuecat:InformationPrintSights" + }, + { + "@type": "thuecat:ServiceAndOffers", + "@value": "thuecat:InformationRegionPrint" + }, + { + "@type": "thuecat:ServiceAndOffers", + "@value": "thuecat:SouvenirShop" + }, + { + "@type": "thuecat:ServiceAndOffers", + "@value": "thuecat:TicketShop" + }, + { + "@type": "thuecat:ServiceAndOffers", + "@value": "thuecat:Touristcard" + } + ], + "thuecat:trafficInfrastructure": { + "@type": "thuecat:TrafficInfrastructure", + "@value": "thuecat:ZeroSpecialTrafficInfrastructure" + }, + "thuecat:urlInformationSights": { + "@type": "schema:URL", + "@value": "https://www.erfurt-tourismus.de/sehens-wissenswertes" + } + } + ] +} diff --git a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/333039283321-xxwg/GET_c2346e6661c475f03f5daaa8d12555e6.txt b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/333039283321-xxwg/GET_c2346e6661c475f03f5daaa8d12555e6.txt deleted file mode 100644 index c9e57e7..0000000 --- a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/333039283321-xxwg/GET_c2346e6661c475f03f5daaa8d12555e6.txt +++ /dev/null @@ -1,19 +0,0 @@ -HTTP/1.1 200 OK -Date: Wed, 17 Feb 2021 08:02:03 GMT -Content-Type: application/ld+json; charset=utf-8 -Content-Length: 8246 -Connection: keep-alive -Set-Cookie: ahSession=3214d2dc9f40fe97b06822c2c25fd67baf623db4;path=/;expires=Sat, 20 Mar 2021 08:02:03 GMT;httpOnly=true; -Access-Control-Allow-Methods: HEAD, GET, POST, DELETE, OPTIONS -Access-Control-Allow-Headers: Authorization, Content-Type -Strict-Transport-Security: max-age=15724800; includeSubDomains -Access-Control-Allow-Credentials: true -X-Frame-Options: deny -X-XSS-Protection: 1; mode=block -X-Content-Type-Options: nosniff -Referrer-Policy: same-origin -Feature-Policy: microphone 'none'; camera 'none'; payment 'none' -Content-Security-Policy: default-src 'self'; script-src 'self' 'sha256-xfTbtWk8kVI65iLJs8LB3lWf2g0g10DS71pDdoutFHc='; style-src 'self' 'unsafe-inline' https://stackpath.bootstrapcdn.com; img-src 'self' data: blob: * -Access-Control-Allow-Origin: https://cdb.thuecat.org - -{"@context":{"schema":"http://schema.org/","dbo":"http://dbpedia.org/ontology/","dsv":"http://ontologies.sti-innsbruck.at/dsv/","foaf":"http://xmlns.com/foaf/0.1/","owl":"http://www.w3.org/2002/07/owl#","rdf":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","rdfs":"http://www.w3.org/2000/01/rdf-schema#","sh":"http://www.w3.org/ns/shacl#","xsd":"http://www.w3.org/2001/XMLSchema#","ttgds":"https://thuecat.org/ontology/ttgds/1.0/","cdb":"https://thuecat.org/ontology/cdb/1.0/","dachkg":"https://thuecat.org/ontology/dachkg/1.0/","thuecat":"https://thuecat.org/ontology/thuecat/1.0/"},"@graph":[{"@id":"https://thuecat.org/resources/333039283321-xxwg","@type":["schema:Place","schema:Organization","schema:LocalBusiness","schema:Thing","schema:TouristInformationCenter","ttgds:PointOfInterest","thuecat:TouristInformation"],"schema:description":[{"@language":"de","@value":"Direkt an der Krämerbrücke liegt die Erfurter Tourist Information. Nach einer Modernisierung im Frühjahr 2017 erstrahlt diese in neuem Glanz und ist auch technisch auf dem neuesten Stand. Hier erhalten Sie Stadtpläne, Broschüren zu Erfurt und originelle Souvenirs. Zudem bietet die Tourist Information vielfältige Stadtführungen und Rundfahrten mit Straßenbahn oder Bus sowie kompetente Beratung zu Hotels, Pensionen und Privatunterkünften. "},{"@id":"genid-39178cabb01c40e091809d730cb07b5a-b1","@type":["thuecat:Html"],"schema:value":{"@language":"de","@value":"Direkt an der Krämerbrücke liegt die Erfurter Tourist Information. Nach einer Modernisierung im Frühjahr 2017 erstrahlt diese in neuem Glanz und ist auch technisch auf dem neuesten Stand. Hier erhalten Sie Stadtpläne, Broschüren zu Erfurt und originelle Souvenirs. Zudem bietet die Tourist Information vielfältige Stadtführungen und Rundfahrten mit Straßenbahn oder Bus sowie kompetente Beratung zu Hotels, Pensionen und Privatunterkünften. "}}],"schema:sameAs":{"@type":"schema:URL","@value":"https://www.outdooractive.com/de/16520521"},"schema:name":{"@language":"de","@value":"Erfurt Tourist Information"},"schema:containedInPlace":[{"@id":"https://thuecat.org/resources/043064193523-jcyt"},{"@id":"https://thuecat.org/resources/573211638937-gmqb"},{"@id":"https://thuecat.org/resources/e_108867196-oatour"},{"@id":"https://thuecat.org/resources/e_1492818-oatour"},{"@id":"https://thuecat.org/resources/e_16571065-oatour"},{"@id":"https://thuecat.org/resources/e_16659193-oatour"},{"@id":"https://thuecat.org/resources/e_18179059-oatour"},{"@id":"https://thuecat.org/resources/e_18429754-oatour"},{"@id":"https://thuecat.org/resources/e_18429974-oatour"},{"@id":"https://thuecat.org/resources/e_18550292-oatour"},{"@id":"https://thuecat.org/resources/e_21827958-oatour"},{"@id":"https://thuecat.org/resources/e_39285647-oatour"},{"@id":"https://thuecat.org/resources/e_52469786-oatour"},{"@id":"https://thuecat.org/resources/356133173991-cryw"}],"schema:containsPlace":{"@id":"https://thuecat.org/resources/186583376407-xkwx"},"schema:photo":{"@id":"https://thuecat.org/resources/dms_5162598"},"schema:image":{"@id":"https://thuecat.org/resources/dms_5162598"},"schema:petsAllowed":{"@type":"schema:Boolean","@value":"true"},"schema:hasMap":{"@type":"schema:URL","@value":"https://www.google.de/maps/place/Benediktspl.+1,+99084+Erfurt/@50.9784152,11.0276505,17z/data=!4m13!1m7!3m6!1s0x47a472961021c18b:0xc2d4b6b7eb27d4c1!2sBenediktspl.+1,+99084+Erfurt!3b1!8m2!3d50.9784118!4d11.0298392!3m4!1s0x47a472961021c18b:0xc2d4b6b7eb27d4c1!8m2!3d50.9784118!4d11.0298392?hl=de"},"schema:geo":{"@id":"genid-39178cabb01c40e091809d730cb07b5a-b2","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:GeoCoordinates"],"schema:longitude":{"@type":"schema:Number","@value":"11.0298392"},"schema:latitude":{"@type":"schema:Number","@value":"50.9784118"}},"schema:openingHoursSpecification":{"@id":"genid-39178cabb01c40e091809d730cb07b5a-b3","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:OpeningHoursSpecification"],"schema:validFrom":{"@type":"schema:Date","@value":"2021-02-22"},"schema:dayOfWeek":[{"@type":"schema:DayOfWeek","@value":"schema:Saturday"},{"@type":"schema:DayOfWeek","@value":"schema:Friday"},{"@type":"schema:DayOfWeek","@value":"schema:Thursday"},{"@type":"schema:DayOfWeek","@value":"schema:Tuesday"},{"@type":"schema:DayOfWeek","@value":"schema:Monday"},{"@type":"schema:DayOfWeek","@value":"schema:Wednesday"}],"schema:opens":{"@type":"schema:Time","@value":"10:00:00"},"schema:validThrough":{"@type":"schema:Date","@value":"2021-12-31"},"schema:closes":{"@type":"schema:Time","@value":"18:00:00"}},"schema:isAccessibleForFree":{"@type":"schema:Boolean","@value":"true"},"schema:smokingAllowed":{"@type":"schema:Boolean","@value":"false"},"schema:url":{"@type":"schema:URL","@value":"https://www.erfurt-tourismus.de"},"schema:publicAccess":{"@type":"schema:Boolean","@value":"true"},"schema:paymentAccepted":[{"@type":"thuecat:PaymentAcceptedEnum","@value":"thuecat:CashPayment"},{"@type":"thuecat:PaymentAcceptedEnum","@value":"thuecat:EC"}],"schema:address":{"@id":"genid-39178cabb01c40e091809d730cb07b5a-b0","@type":["schema:Intangible","schema:PostalAddress","schema:StructuredValue","schema:Thing","schema:ContactPoint"],"schema:addressLocality":{"@language":"de","@value":"Erfurt"},"schema:addressCountry":{"@type":"thuecat:AddressCountry","@value":"thuecat:Germany"},"schema:postalCode":{"@language":"de","@value":"99084"},"schema:addressRegion":{"@type":"thuecat:AddressFederalState","@value":"thuecat:Thuringia"},"schema:telephone":{"@language":"de","@value":"+49 361 66400"},"schema:email":{"@language":"de","@value":"info@erfurt-tourismus.de"},"schema:streetAddress":{"@language":"de","@value":"Benediktsplatz 1"},"schema:faxNumber":{"@language":"de","@value":"+49 361 6640290"},"thuecat:typOfAddress":{"@type":"thuecat:TypOfAddress","@value":"thuecat:HouseAddress"}},"thuecat:contentResponsible":{"@id":"https://thuecat.org/resources/018132452787-ngbe"},"thuecat:managedBy":{"@id":"https://thuecat.org/resources/018132452787-ngbe"},"thuecat:digitalOffer":{"@type":"thuecat:DigitalOffer","@value":"thuecat:ZeroDigitalOffer"},"thuecat:entrance":{"@type":"thuecat:Entrance","@value":"thuecat:IndoorActivities"},"thuecat:gastro":{"@type":"thuecat:GastroPoi","@value":"thuecat:ZeroGastronomy"},"thuecat:guidedTour":{"@type":"thuecat:EnumGuidedTour","@value":"thuecat:ZeroGuidedTours"},"thuecat:otherService":{"@type":"thuecat:OtherService","@value":"thuecat:ZeroOtherServiceEnumMem"},"thuecat:photography":{"@type":"thuecat:Photography","@value":"thuecat:TakingPicturesPermitted"},"thuecat:sanitation":{"@type":"thuecat:Sanitation","@value":"thuecat:ZeroSanitation"},"thuecat:trafficInfrastructure":{"@type":"thuecat:TrafficInfrastructure","@value":"thuecat:ZeroSpecialTrafficInfrastructure"},"thuecat:distanceToPublicTransport":{"@id":"genid-39178cabb01c40e091809d730cb07b5a-b4","@type":["schema:Intangible","schema:QuantitativeValue","schema:StructuredValue","schema:Thing"],"schema:unitCode":{"@type":"thuecat:Unit","@value":"thuecat:MTR"},"schema:value":{"@type":"schema:Number","@value":"180"}},"thuecat:parkingFacilityNearBy":{"@id":"https://thuecat.org/resources/396420044896-drzt"},"thuecat:serviceAndOffers":[{"@type":"thuecat:ServiceAndOffers","@value":"thuecat:AccommodationService"},{"@type":"thuecat:ServiceAndOffers","@value":"thuecat:CityMapDisplay"},{"@type":"thuecat:ServiceAndOffers","@value":"thuecat:CityMapEdition"},{"@type":"thuecat:ServiceAndOffers","@value":"thuecat:GuidedCityTours"},{"@type":"thuecat:ServiceAndOffers","@value":"thuecat:InformationAboutAccommodation"},{"@type":"thuecat:ServiceAndOffers","@value":"thuecat:InformationPlacePrint"},{"@type":"thuecat:ServiceAndOffers","@value":"thuecat:InformationPrintSights"},{"@type":"thuecat:ServiceAndOffers","@value":"thuecat:InformationRegionPrint"},{"@type":"thuecat:ServiceAndOffers","@value":"thuecat:SouvenirShop"},{"@type":"thuecat:ServiceAndOffers","@value":"thuecat:TicketShop"},{"@type":"thuecat:ServiceAndOffers","@value":"thuecat:Touristcard"}],"thuecat:urlInformationSights":{"@type":"schema:URL","@value":"https://www.erfurt-tourismus.de/sehens-wissenswertes"}}]} diff --git a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/356133173991-cryw.json b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/356133173991-cryw.json new file mode 100644 index 0000000..832e4c1 --- /dev/null +++ b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/356133173991-cryw.json @@ -0,0 +1,206 @@ +{ + "@context": { + "cdb": "https://thuecat.org/ontology/cdb/1.0/", + "dachkg": "https://thuecat.org/ontology/dachkg/1.0/", + "dbo": "http://dbpedia.org/ontology/", + "dsv": "http://ontologies.sti-innsbruck.at/dsv/", + "epapp": "https://thuecat.org/ontology/epapp/1.0/", + "foaf": "http://xmlns.com/foaf/0.1/", + "owl": "http://www.w3.org/2002/07/owl#", + "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", + "rdfs": "http://www.w3.org/2000/01/rdf-schema#", + "schema": "http://schema.org/", + "sh": "http://www.w3.org/ns/shacl#", + "thuecat": "https://thuecat.org/ontology/thuecat/1.0/", + "ttgds": "https://thuecat.org/ontology/ttgds/1.0/", + "xsd": "http://www.w3.org/2001/XMLSchema#" + }, + "@graph": [ + { + "@id": "https://thuecat.org/resources/356133173991-cryw", + "@type": [ + "schema:Place", + "schema:Organization", + "schema:LocalBusiness", + "schema:Thing", + "schema:TouristAttraction", + "ttgds:OtherInfraStructure", + "thuecat:OtherPOI", + "thuecat:StrollingMile" + ], + "schema:address": { + "@id": "genid-5e6f943aee4440a394cd43c2a16154da-b0", + "@type": [ + "schema:Intangible", + "schema:PostalAddress", + "schema:StructuredValue", + "schema:Thing", + "schema:ContactPoint" + ], + "schema:addressCountry": { + "@type": "thuecat:AddressCountry", + "@value": "thuecat:Germany" + }, + "schema:addressLocality": { + "@language": "de", + "@value": "Erfurt" + }, + "schema:addressRegion": { + "@type": "thuecat:AddressFederalState", + "@value": "thuecat:Thuringia" + }, + "schema:postalCode": { + "@language": "de", + "@value": "99084" + }, + "schema:streetAddress": { + "@language": "de", + "@value": "Benediktsplatz" + }, + "thuecat:typOfAddress": { + "@type": "thuecat:TypOfAddress", + "@value": "thuecat:HouseAddress" + } + }, + "schema:containedInPlace": { + "@id": "https://thuecat.org/resources/043064193523-jcyt" + }, + "schema:containsPlace": [ + { + "@id": "https://thuecat.org/resources/333039283321-xxwg" + }, + { + "@id": "https://thuecat.org/resources/186583376407-xkwx" + }, + { + "@id": "https://thuecat.org/resources/297975882806-geen" + } + ], + "schema:description": [ + { + "@language": "de", + "@value": "Der Benediktsplatz befindet sich hinter dem Erfurter Rathaus am westlichen Zugang der Kr\u00e4merbr\u00fccke. Von hier aus gelangt man nicht nur auf, sondern auch vor und hinter der Kr\u00e4merbr\u00fccke. Au\u00dferdem verbindet der Benediktsplatz den Fischmarkt, den Wenigemarkt und die Michaelisstra\u00dfe. \nAls Standort der Erfurt Tourist Information ist er h\u00e4ufig erste Anlaufstelle und Sammelpunkt f\u00fcr Besucher der Th\u00fcringer Landeshauptstadt.\nAuf dem zentralen Knotenpunkt Benediktsplatz kreuzen sich zudem der Radfernweg Th\u00fcringer St\u00e4dtekette und der Gera-Radweg." + }, + { + "@language": "fr", + "@value": "La Benediktsplatz est situ\u00e9e derri\u00e8re l'h\u00f4tel de ville d'Erfurt, \u00e0 l'entr\u00e9e ouest du Kr\u00e4merbr\u00fccke. De l\u00e0, vous pouvez vous rendre non seulement sur, mais aussi devant et derri\u00e8re le Kr\u00e4merbr\u00fccke. La Benediktsplatz relie \u00e9galement le Fischmarkt, le Wenigemarkt et la Michaelisstra\u00dfe. \nEn tant que si\u00e8ge de l'office du tourisme d'Erfurt, il est souvent le premier port d'escale et le point de rencontre des visiteurs de la capitale du Land de Thuringe.\nLa piste cyclable longue distance Th\u00fcringer St\u00e4dtekette et la piste cyclable Gera se croisent \u00e9galement au carrefour central de la Benediktsplatz." + }, + { + "@language": "en", + "@value": "The Benediktsplatz is located behind the Erfurt city hall at the western entrance of the Kr\u00e4merbr\u00fccke. From here you can get not only on, but also in front of and behind the Kr\u00e4merbr\u00fccke. Benediktsplatz also connects the Fischmarkt, Wenigemarkt and Michaelisstra\u00dfe. \nAs the location of Erfurt Tourist Information, it is often the first port of call and meeting point for visitors to the Thuringian state capital.\nThe long-distance cycle route Th\u00fcringer St\u00e4dtekette and the Gera cycle route also intersect at the central Benediktsplatz junction." + }, + { + "@id": "genid-5e6f943aee4440a394cd43c2a16154da-b1", + "@type": [ + "schema:Intangible", + "schema:Thing", + "schema:ComputerLanguage", + "thuecat:Html" + ], + "schema:value": { + "@language": "de", + "@value": "

Der Benediktsplatz befindet sich hinter dem Erfurter Rathaus am westlichen Zugang der Kr\u00e4merbr\u00fccke. Von hier aus gelangt man nicht nur auf, sondern auch vor und hinter der Kr\u00e4merbr\u00fccke. Au\u00dferdem verbindet der Benediktsplatz den Fischmarkt, den Wenigemarkt und die Michaelisstra\u00dfe.

Als Standort der Erfurt Tourist Information ist er h\u00e4ufig erste Anlaufstelle und Sammelpunkt f\u00fcr Besucher der Th\u00fcringer Landeshauptstadt.

Auf dem zentralen Knotenpunkt Benediktsplatz kreuzen sich zudem der Radfernweg Th\u00fcringer St\u00e4dtekette und der Gera-Radweg.

" + } + }, + { + "@id": "genid-5e6f943aee4440a394cd43c2a16154da-b2", + "@type": [ + "schema:Intangible", + "schema:Thing", + "schema:ComputerLanguage", + "thuecat:Html" + ], + "schema:value": { + "@language": "en", + "@value": "

The Benediktsplatz is located behind the Erfurt city hall at the western entrance of the Kr\u00e4merbr\u00fccke. From here you can get not only on, but also in front of and behind the Kr\u00e4merbr\u00fccke. Benediktsplatz also connects the Fischmarkt, Wenigemarkt and Michaelisstra\u00dfe.

As the location of Erfurt Tourist Information, it is often the first port of call and meeting point for visitors to the Thuringian state capital.

The long-distance cycle route Th\u00fcringer St\u00e4dtekette and the Gera cycle route also intersect at the central Benediktsplatz junction.

" + } + }, + { + "@id": "genid-5e6f943aee4440a394cd43c2a16154da-b3", + "@type": [ + "schema:Intangible", + "schema:Thing", + "schema:ComputerLanguage", + "thuecat:Html" + ], + "schema:value": { + "@language": "fr", + "@value": "

La Benediktsplatz est situ\u00e9e derri\u00e8re l'h\u00f4tel de ville d'Erfurt, \u00e0 l'entr\u00e9e ouest du Kr\u00e4merbr\u00fccke. De l\u00e0, vous pouvez vous rendre non seulement sur, mais aussi devant et derri\u00e8re le Kr\u00e4merbr\u00fccke. La Benediktsplatz relie \u00e9galement le Fischmarkt, le Wenigemarkt et la Michaelisstra\u00dfe.

En tant que si\u00e8ge de l'office du tourisme d'Erfurt, il est souvent le premier port d'escale et le point de rencontre des visiteurs de la capitale du Land de Thuringe.

La piste cyclable longue distance Th\u00fcringer St\u00e4dtekette et la piste cyclable Gera se croisent \u00e9galement au carrefour central de la Benediktsplatz.

" + } + } + ], + "schema:geo": { + "@id": "genid-5e6f943aee4440a394cd43c2a16154da-b4", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:GeoCoordinates" + ], + "schema:latitude": { + "@type": "schema:Number", + "@value": "50.978601061243474" + }, + "schema:longitude": { + "@type": "schema:Number", + "@value": "11.029931019874105" + } + }, + "schema:hasMap": { + "@type": "schema:URL", + "@value": "https://www.google.de/maps/@50.9785325,11.0298036,20z" + }, + "schema:image": [ + { + "@id": "https://thuecat.org/resources/dms_5311411" + }, + { + "@id": "https://thuecat.org/resources/dms_6233066" + }, + { + "@id": "https://thuecat.org/resources/dms_6480118" + } + ], + "schema:name": { + "@language": "de", + "@value": "Benediktsplatz Erfurt" + }, + "schema:petsAllowed": { + "@type": "schema:Boolean", + "@value": "true" + }, + "schema:photo": { + "@id": "https://thuecat.org/resources/dms_6480118" + }, + "schema:smokingAllowed": { + "@type": "schema:Boolean", + "@value": "true" + }, + "thuecat:contentResponsible": { + "@id": "https://thuecat.org/resources/018132452787-ngbe" + }, + "thuecat:gastro": [ + { + "@type": "thuecat:GastroPoi", + "@value": "thuecat:TakeawayShop" + }, + { + "@type": "thuecat:GastroPoi", + "@value": "thuecat:Cafe" + }, + { + "@type": "thuecat:GastroPoi", + "@value": "thuecat:BarEnumMem" + }, + { + "@type": "thuecat:GastroPoi", + "@value": "thuecat:Restaurant" + } + ], + "thuecat:sanitation": { + "@type": "thuecat:Sanitation", + "@value": "thuecat:ZeroSanitation" + } + } + ] +} diff --git a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/356133173991-cryw/GET_976c32c50e2a09718c35138281482010.txt b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/356133173991-cryw/GET_976c32c50e2a09718c35138281482010.txt deleted file mode 100644 index 0738272..0000000 --- a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/356133173991-cryw/GET_976c32c50e2a09718c35138281482010.txt +++ /dev/null @@ -1,19 +0,0 @@ -HTTP/1.1 200 OK -Date: Wed, 17 Feb 2021 08:02:03 GMT -Content-Type: application/ld+json; charset=utf-8 -Content-Length: 8246 -Connection: keep-alive -Set-Cookie: ahSession=3214d2dc9f40fe97b06822c2c25fd67baf623db4;path=/;expires=Sat, 20 Mar 2021 08:02:03 GMT;httpOnly=true; -Access-Control-Allow-Methods: HEAD, GET, POST, DELETE, OPTIONS -Access-Control-Allow-Headers: Authorization, Content-Type -Strict-Transport-Security: max-age=15724800; includeSubDomains -Access-Control-Allow-Credentials: true -X-Frame-Options: deny -X-XSS-Protection: 1; mode=block -X-Content-Type-Options: nosniff -Referrer-Policy: same-origin -Feature-Policy: microphone 'none'; camera 'none'; payment 'none' -Content-Security-Policy: default-src 'self'; script-src 'self' 'sha256-xfTbtWk8kVI65iLJs8LB3lWf2g0g10DS71pDdoutFHc='; style-src 'self' 'unsafe-inline' https://stackpath.bootstrapcdn.com; img-src 'self' data: blob: * -Access-Control-Allow-Origin: https://cdb.thuecat.org - -{"@context":{"schema":"http://schema.org/","dbo":"http://dbpedia.org/ontology/","dsv":"http://ontologies.sti-innsbruck.at/dsv/","foaf":"http://xmlns.com/foaf/0.1/","owl":"http://www.w3.org/2002/07/owl#","rdf":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","rdfs":"http://www.w3.org/2000/01/rdf-schema#","sh":"http://www.w3.org/ns/shacl#","xsd":"http://www.w3.org/2001/XMLSchema#","ttgds":"https://thuecat.org/ontology/ttgds/1.0/","cdb":"https://thuecat.org/ontology/cdb/1.0/","dachkg":"https://thuecat.org/ontology/dachkg/1.0/","thuecat":"https://thuecat.org/ontology/thuecat/1.0/","epapp":"https://thuecat.org/ontology/epapp/1.0/"},"@graph":[{"@id":"https://thuecat.org/resources/356133173991-cryw","@type":["schema:Place","schema:Organization","schema:LocalBusiness","schema:Thing","schema:TouristAttraction","ttgds:OtherInfraStructure","thuecat:OtherPOI","thuecat:StrollingMile"],"schema:description":[{"@language":"de","@value":"Der Benediktsplatz befindet sich hinter dem Erfurter Rathaus am westlichen Zugang der Krämerbrücke. Von hier aus gelangt man nicht nur auf, sondern auch vor und hinter der Krämerbrücke. Außerdem verbindet der Benediktsplatz den Fischmarkt, den Wenigemarkt und die Michaelisstraße. \nAls Standort der Erfurt Tourist Information ist er häufig erste Anlaufstelle und Sammelpunkt für Besucher der Thüringer Landeshauptstadt.\nAuf dem zentralen Knotenpunkt Benediktsplatz kreuzen sich zudem der Radfernweg Thüringer Städtekette und der Gera-Radweg."},{"@language":"fr","@value":"La Benediktsplatz est située derrière l'hôtel de ville d'Erfurt, à l'entrée ouest du Krämerbrücke. De là, vous pouvez vous rendre non seulement sur, mais aussi devant et derrière le Krämerbrücke. La Benediktsplatz relie également le Fischmarkt, le Wenigemarkt et la Michaelisstraße. \nEn tant que siège de l'office du tourisme d'Erfurt, il est souvent le premier port d'escale et le point de rencontre des visiteurs de la capitale du Land de Thuringe.\nLa piste cyclable longue distance Thüringer Städtekette et la piste cyclable Gera se croisent également au carrefour central de la Benediktsplatz."},{"@language":"en","@value":"The Benediktsplatz is located behind the Erfurt city hall at the western entrance of the Krämerbrücke. From here you can get not only on, but also in front of and behind the Krämerbrücke. Benediktsplatz also connects the Fischmarkt, Wenigemarkt and Michaelisstraße. \nAs the location of Erfurt Tourist Information, it is often the first port of call and meeting point for visitors to the Thuringian state capital.\nThe long-distance cycle route Thüringer Städtekette and the Gera cycle route also intersect at the central Benediktsplatz junction."},{"@id":"genid-5e6f943aee4440a394cd43c2a16154da-b1","@type":["schema:Intangible","schema:Thing","schema:ComputerLanguage","thuecat:Html"],"schema:value":{"@language":"de","@value":"

Der Benediktsplatz befindet sich hinter dem Erfurter Rathaus am westlichen Zugang der Krämerbrücke. Von hier aus gelangt man nicht nur auf, sondern auch vor und hinter der Krämerbrücke. Außerdem verbindet der Benediktsplatz den Fischmarkt, den Wenigemarkt und die Michaelisstraße.

Als Standort der Erfurt Tourist Information ist er häufig erste Anlaufstelle und Sammelpunkt für Besucher der Thüringer Landeshauptstadt.

Auf dem zentralen Knotenpunkt Benediktsplatz kreuzen sich zudem der Radfernweg Thüringer Städtekette und der Gera-Radweg.

"}},{"@id":"genid-5e6f943aee4440a394cd43c2a16154da-b2","@type":["schema:Intangible","schema:Thing","schema:ComputerLanguage","thuecat:Html"],"schema:value":{"@language":"en","@value":"

The Benediktsplatz is located behind the Erfurt city hall at the western entrance of the Krämerbrücke. From here you can get not only on, but also in front of and behind the Krämerbrücke. Benediktsplatz also connects the Fischmarkt, Wenigemarkt and Michaelisstraße.

As the location of Erfurt Tourist Information, it is often the first port of call and meeting point for visitors to the Thuringian state capital.

The long-distance cycle route Thüringer Städtekette and the Gera cycle route also intersect at the central Benediktsplatz junction.

"}},{"@id":"genid-5e6f943aee4440a394cd43c2a16154da-b3","@type":["schema:Intangible","schema:Thing","schema:ComputerLanguage","thuecat:Html"],"schema:value":{"@language":"fr","@value":"

La Benediktsplatz est située derrière l'hôtel de ville d'Erfurt, à l'entrée ouest du Krämerbrücke. De là, vous pouvez vous rendre non seulement sur, mais aussi devant et derrière le Krämerbrücke. La Benediktsplatz relie également le Fischmarkt, le Wenigemarkt et la Michaelisstraße.

En tant que siège de l'office du tourisme d'Erfurt, il est souvent le premier port d'escale et le point de rencontre des visiteurs de la capitale du Land de Thuringe.

La piste cyclable longue distance Thüringer Städtekette et la piste cyclable Gera se croisent également au carrefour central de la Benediktsplatz.

"}}],"schema:name":{"@language":"de","@value":"Benediktsplatz Erfurt"},"schema:containedInPlace":{"@id":"https://thuecat.org/resources/043064193523-jcyt"},"schema:containsPlace":[{"@id":"https://thuecat.org/resources/333039283321-xxwg"},{"@id":"https://thuecat.org/resources/186583376407-xkwx"},{"@id":"https://thuecat.org/resources/297975882806-geen"}],"schema:photo":{"@id":"https://thuecat.org/resources/dms_6480118"},"schema:image":[{"@id":"https://thuecat.org/resources/dms_5311411"},{"@id":"https://thuecat.org/resources/dms_6233066"},{"@id":"https://thuecat.org/resources/dms_6480118"}],"schema:petsAllowed":{"@type":"schema:Boolean","@value":"true"},"schema:hasMap":{"@type":"schema:URL","@value":"https://www.google.de/maps/@50.9785325,11.0298036,20z"},"schema:geo":{"@id":"genid-5e6f943aee4440a394cd43c2a16154da-b4","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:GeoCoordinates"],"schema:longitude":{"@type":"schema:Number","@value":"11.029931019874105"},"schema:latitude":{"@type":"schema:Number","@value":"50.978601061243474"}},"schema:smokingAllowed":{"@type":"schema:Boolean","@value":"true"},"schema:address":{"@id":"genid-5e6f943aee4440a394cd43c2a16154da-b0","@type":["schema:Intangible","schema:PostalAddress","schema:StructuredValue","schema:Thing","schema:ContactPoint"],"schema:addressLocality":{"@language":"de","@value":"Erfurt"},"schema:addressCountry":{"@type":"thuecat:AddressCountry","@value":"thuecat:Germany"},"schema:postalCode":{"@language":"de","@value":"99084"},"schema:addressRegion":{"@type":"thuecat:AddressFederalState","@value":"thuecat:Thuringia"},"schema:streetAddress":{"@language":"de","@value":"Benediktsplatz"},"thuecat:typOfAddress":{"@type":"thuecat:TypOfAddress","@value":"thuecat:HouseAddress"}},"thuecat:contentResponsible":{"@id":"https://thuecat.org/resources/018132452787-ngbe"},"thuecat:gastro":[{"@type":"thuecat:GastroPoi","@value":"thuecat:TakeawayShop"},{"@type":"thuecat:GastroPoi","@value":"thuecat:Cafe"},{"@type":"thuecat:GastroPoi","@value":"thuecat:BarEnumMem"},{"@type":"thuecat:GastroPoi","@value":"thuecat:Restaurant"}],"thuecat:sanitation":{"@type":"thuecat:Sanitation","@value":"thuecat:ZeroSanitation"}}]} diff --git a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/396420044896-drzt.json b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/396420044896-drzt.json new file mode 100644 index 0000000..d578a45 --- /dev/null +++ b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/396420044896-drzt.json @@ -0,0 +1,502 @@ +{ + "@context": { + "cdb": "https://thuecat.org/ontology/cdb/1.0/", + "dachkg": "https://thuecat.org/ontology/dachkg/1.0/", + "dbo": "http://dbpedia.org/ontology/", + "dsv": "http://ontologies.sti-innsbruck.at/dsv/", + "epapp": "https://thuecat.org/ontology/epapp/1.0/", + "foaf": "http://xmlns.com/foaf/0.1/", + "owl": "http://www.w3.org/2002/07/owl#", + "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", + "rdfs": "http://www.w3.org/2000/01/rdf-schema#", + "schema": "http://schema.org/", + "sh": "http://www.w3.org/ns/shacl#", + "thuecat": "https://thuecat.org/ontology/thuecat/1.0/", + "ttgds": "https://thuecat.org/ontology/ttgds/1.0/", + "xsd": "http://www.w3.org/2001/XMLSchema#" + }, + "@graph": [ + { + "@id": "https://thuecat.org/resources/396420044896-drzt", + "@type": [ + "schema:Place", + "schema:Organization", + "schema:LocalBusiness", + "schema:CivicStructure", + "schema:Thing", + "schema:ParkingFacility", + "ttgds:OtherInfraStructure", + "thuecat:OtherPOI", + "thuecat:MultiStoreyCarPark" + ], + "schema:address": { + "@id": "genid-2c9c8a1b44cc404ebe32e34cdbb87884-b0", + "@type": [ + "schema:Intangible", + "schema:PostalAddress", + "schema:StructuredValue", + "schema:Thing", + "schema:ContactPoint" + ], + "schema:addressCountry": { + "@type": "thuecat:AddressCountry", + "@value": "thuecat:Germany" + }, + "schema:addressLocality": { + "@language": "de", + "@value": "Erfurt" + }, + "schema:addressRegion": { + "@type": "thuecat:AddressFederalState", + "@value": "thuecat:Thuringia" + }, + "schema:email": { + "@language": "de", + "@value": "info@stadtwerke-erfurt.de" + }, + "schema:postalCode": { + "@language": "de", + "@value": "99084" + }, + "schema:streetAddress": { + "@language": "de", + "@value": "Bechtheimer Str. 1" + }, + "schema:telephone": { + "@language": "de", + "@value": "+49 361 5640" + }, + "thuecat:typOfAddress": { + "@type": "thuecat:TypOfAddress", + "@value": "thuecat:HouseAddress" + } + }, + "schema:containedInPlace": { + "@id": "https://thuecat.org/resources/508431710173-wwne" + }, + "schema:description": [ + { + "@language": "de", + "@value": "Das Parkhaus Domplatz befindet sich unmittelbar unterhalb der Zitadelle Petersberg am n\u00f6rdlichen Rand des Domplatzes. Durch die zentrale Lage ist es ein idealer Ausgangspunkt f\u00fcr Stadtbummel und Erkundungen des Zentrums, des Petersbergs und des Andreasviertels." + }, + { + "@language": "fr", + "@value": "Le parking \u00e0 \u00e9tages de la Domplatz est situ\u00e9 juste en dessous de la citadelle de Petersberg, sur le bord nord de la Domplatz. Son emplacement central en fait un point de d\u00e9part id\u00e9al pour se promener dans la ville et explorer le centre, le Petersberg et l'Andreasviertel." + }, + { + "@language": "en", + "@value": "The Domplatz multi-storey car park is located directly below the Petersberg Citadel on the northern edge of the Domplatz. Its central location makes it an ideal starting point for strolling through the city and exploring the centre, the Petersberg and the Andreasviertel." + }, + { + "@id": "genid-2c9c8a1b44cc404ebe32e34cdbb87884-b1", + "@type": [ + "schema:Intangible", + "schema:Thing", + "schema:ComputerLanguage", + "thuecat:Html" + ], + "schema:value": { + "@language": "de", + "@value": "

Das Parkhaus Domplatz befindet sich unmittelbar unterhalb der Zitadelle Petersberg am n\u00f6rdlichen Rand des Domplatzes. Durch die zentrale Lage ist es ein idealer Ausgangspunkt f\u00fcr Stadtbummel und Erkundungen des Zentrums, des Petersbergs und des Andreasviertels.

" + } + }, + { + "@id": "genid-2c9c8a1b44cc404ebe32e34cdbb87884-b2", + "@type": [ + "schema:Intangible", + "schema:Thing", + "schema:ComputerLanguage", + "thuecat:Html" + ], + "schema:value": { + "@language": "en", + "@value": "

The Domplatz multi-storey car park is located directly below the Petersberg Citadel on the northern edge of the Domplatz. Its central location makes it an ideal starting point for strolling through the city and exploring the centre, the Petersberg and the Andreasviertel.

" + } + }, + { + "@id": "genid-2c9c8a1b44cc404ebe32e34cdbb87884-b3", + "@type": [ + "schema:Intangible", + "schema:Thing", + "schema:ComputerLanguage", + "thuecat:Html" + ], + "schema:value": { + "@language": "fr", + "@value": "

Le parking \u00e0 \u00e9tages de la Domplatz est situ\u00e9 juste en dessous de la citadelle de Petersberg, sur le bord nord de la Domplatz. Son emplacement central en fait un point de d\u00e9part id\u00e9al pour se promener dans la ville et explorer le centre, le Petersberg et l'Andreasviertel.

" + } + } + ], + "schema:geo": { + "@id": "genid-2c9c8a1b44cc404ebe32e34cdbb87884-b4", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:GeoCoordinates" + ], + "schema:latitude": { + "@type": "schema:Number", + "@value": "50.977648905044" + }, + "schema:longitude": { + "@type": "schema:Number", + "@value": "11.022127985954299" + } + }, + "schema:image": { + "@id": "https://thuecat.org/resources/dms_6486108" + }, + "schema:makesOffer": [ + { + "@id": "genid-2c9c8a1b44cc404ebe32e34cdbb87884-b11", + "@type": [ + "schema:Intangible", + "schema:Thing", + "schema:Offer" + ], + "schema:availability": { + "@type": "schema:ItemAvailability", + "@value": "schema:LimitedAvailability" + }, + "schema:offeredBy": { + "@id": "https://thuecat.org/resources/396420044896-drzt" + }, + "schema:priceSpecification": { + "@id": "genid-2c9c8a1b44cc404ebe32e34cdbb87884-b12", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:PriceSpecification", + "schema:Thing" + ], + "schema:price": { + "@type": "schema:Number", + "@value": "35" + }, + "schema:priceCurrency": { + "@type": "thuecat:Currency", + "@value": "thuecat:EUR" + }, + "thuecat:calculationRule": { + "@type": "thuecat:CalculationRule", + "@value": "thuecat:PerCar" + } + }, + "thuecat:offerType": { + "@type": "thuecat:OfferType", + "@value": "thuecat:ParkingFee" + } + }, + { + "@id": "genid-2c9c8a1b44cc404ebe32e34cdbb87884-b5", + "@type": [ + "schema:Intangible", + "schema:Thing", + "schema:Offer" + ], + "schema:availability": { + "@type": "schema:ItemAvailability", + "@value": "schema:LimitedAvailability" + }, + "schema:offeredBy": { + "@id": "https://thuecat.org/resources/396420044896-drzt" + }, + "schema:priceSpecification": { + "@id": "genid-2c9c8a1b44cc404ebe32e34cdbb87884-b6", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:PriceSpecification", + "schema:Thing" + ], + "schema:price": { + "@type": "schema:Number", + "@value": "1.5" + }, + "schema:priceCurrency": { + "@type": "thuecat:Currency", + "@value": "thuecat:EUR" + }, + "thuecat:calculationRule": { + "@type": "thuecat:CalculationRule", + "@value": "thuecat:PerCar" + } + }, + "thuecat:offerType": { + "@type": "thuecat:OfferType", + "@value": "thuecat:ParkingFee" + } + }, + { + "@id": "genid-2c9c8a1b44cc404ebe32e34cdbb87884-b7", + "@type": [ + "schema:Intangible", + "schema:Thing", + "schema:Offer" + ], + "schema:availability": { + "@type": "schema:ItemAvailability", + "@value": "schema:LimitedAvailability" + }, + "schema:offeredBy": { + "@id": "https://thuecat.org/resources/396420044896-drzt" + }, + "schema:priceSpecification": { + "@id": "genid-2c9c8a1b44cc404ebe32e34cdbb87884-b8", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:PriceSpecification", + "schema:Thing" + ], + "schema:price": { + "@type": "schema:Number", + "@value": "10" + }, + "schema:priceCurrency": { + "@type": "thuecat:Currency", + "@value": "thuecat:EUR" + }, + "thuecat:calculationRule": { + "@type": "thuecat:CalculationRule", + "@value": "thuecat:PerCar" + } + }, + "thuecat:offerType": { + "@type": "thuecat:OfferType", + "@value": "thuecat:ParkingFee" + } + }, + { + "@id": "genid-2c9c8a1b44cc404ebe32e34cdbb87884-b9", + "@type": [ + "schema:Intangible", + "schema:Thing", + "schema:Offer" + ], + "schema:availability": { + "@type": "schema:ItemAvailability", + "@value": "schema:LimitedAvailability" + }, + "schema:offeredBy": { + "@id": "https://thuecat.org/resources/396420044896-drzt" + }, + "schema:priceSpecification": { + "@id": "genid-2c9c8a1b44cc404ebe32e34cdbb87884-b10", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:PriceSpecification", + "schema:Thing" + ], + "schema:price": { + "@type": "schema:Number", + "@value": "50" + }, + "schema:priceCurrency": { + "@type": "thuecat:Currency", + "@value": "thuecat:EUR" + }, + "thuecat:calculationRule": { + "@type": "thuecat:CalculationRule", + "@value": "thuecat:PerCar" + } + }, + "thuecat:offerType": { + "@type": "thuecat:OfferType", + "@value": "thuecat:ParkingFee" + } + } + ], + "schema:name": [ + { + "@language": "de", + "@value": "Parkhaus Domplatz" + }, + { + "@language": "en", + "@value": "Car park Domplatz" + }, + { + "@language": "fr", + "@value": "Parking Domplatz" + } + ], + "schema:openingHoursSpecification": [ + { + "@id": "genid-2c9c8a1b44cc404ebe32e34cdbb87884-b13", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:OpeningHoursSpecification" + ], + "schema:closes": { + "@type": "schema:Time", + "@value": "22:00:00" + }, + "schema:dayOfWeek": [ + { + "@type": "schema:DayOfWeek", + "@value": "schema:Saturday" + }, + { + "@type": "schema:DayOfWeek", + "@value": "schema:Friday" + }, + { + "@type": "schema:DayOfWeek", + "@value": "schema:Thursday" + }, + { + "@type": "schema:DayOfWeek", + "@value": "schema:Tuesday" + }, + { + "@type": "schema:DayOfWeek", + "@value": "schema:Monday" + }, + { + "@type": "schema:DayOfWeek", + "@value": "schema:Wednesday" + } + ], + "schema:opens": { + "@type": "schema:Time", + "@value": "07:00:00" + } + }, + { + "@id": "genid-2c9c8a1b44cc404ebe32e34cdbb87884-b14", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:OpeningHoursSpecification" + ], + "schema:closes": { + "@type": "schema:Time", + "@value": "22:00:00" + }, + "schema:dayOfWeek": [ + { + "@type": "schema:DayOfWeek", + "@value": "schema:Sunday" + }, + { + "@type": "schema:DayOfWeek", + "@value": "schema:PublicHolidays" + } + ], + "schema:opens": { + "@type": "schema:Time", + "@value": "09:00:00" + } + } + ], + "schema:petsAllowed": { + "@type": "schema:Boolean", + "@value": "true" + }, + "schema:photo": { + "@id": "https://thuecat.org/resources/dms_6486108" + }, + "schema:smokingAllowed": { + "@type": "schema:Boolean", + "@value": "false" + }, + "schema:url": { + "@type": "schema:URL", + "@value": "https://www.stadtwerke-erfurt.de/pb/swe/produkte+_+leistungen/parken/parkhaus+domplatz" + }, + "thuecat:contentResponsible": { + "@id": "https://thuecat.org/resources/018132452787-ngbe" + }, + "thuecat:distanceToPublicTransport": { + "@id": "genid-2c9c8a1b44cc404ebe32e34cdbb87884-b15", + "@type": [ + "schema:Intangible", + "schema:QuantitativeValue", + "schema:StructuredValue", + "schema:Thing" + ], + "schema:unitCode": { + "@type": "thuecat:Unit", + "@value": "thuecat:MTR" + }, + "schema:value": { + "@type": "schema:Number", + "@value": "240" + } + }, + "thuecat:entryHeight": { + "@id": "genid-2c9c8a1b44cc404ebe32e34cdbb87884-b16", + "@type": [ + "schema:Intangible", + "schema:QuantitativeValue", + "schema:StructuredValue", + "schema:Thing" + ], + "schema:unitCode": { + "@type": "thuecat:Unit", + "@value": "thuecat:MTR" + }, + "schema:value": { + "@type": "schema:Number", + "@value": "2" + } + }, + "thuecat:gastro": { + "@type": "thuecat:GastroPoi", + "@value": "thuecat:ZeroGastronomy" + }, + "thuecat:managedBy": { + "@id": "https://thuecat.org/resources/570107928040-rfze" + }, + "thuecat:numberOfParkingSpace": { + "@id": "genid-2c9c8a1b44cc404ebe32e34cdbb87884-b17", + "@type": [ + "schema:Intangible", + "schema:QuantitativeValue", + "schema:StructuredValue", + "schema:Thing" + ], + "schema:unitText": { + "@type": "thuecat:TypeOfVehicle", + "@value": "thuecat:Car" + }, + "schema:value": { + "@type": "schema:Integer", + "@value": "300" + } + }, + "thuecat:objectsNearBy": [ + { + "@id": "https://thuecat.org/resources/908740175209-zbep" + }, + { + "@id": "https://thuecat.org/resources/835224016581-dara" + }, + { + "@id": "https://thuecat.org/resources/043064193523-jcyt" + }, + { + "@id": "https://thuecat.org/resources/363938447400-ammb" + } + ], + "thuecat:otherService": { + "@type": "thuecat:OtherService", + "@value": "thuecat:ZeroOtherServiceEnumMem" + }, + "thuecat:sanitation": { + "@type": "thuecat:Sanitation", + "@value": "thuecat:ZeroSanitation" + }, + "thuecat:trafficInfrastructure": { + "@type": "thuecat:TrafficInfrastructure", + "@value": "thuecat:ElectricVehicleCarChargingStationEnumMem" + } + } + ] +} diff --git a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/396420044896-drzt/GET_e234b318dcfb8dfae8661f8c07530fa6.txt b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/396420044896-drzt/GET_e234b318dcfb8dfae8661f8c07530fa6.txt deleted file mode 100644 index bba76b0..0000000 --- a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/396420044896-drzt/GET_e234b318dcfb8dfae8661f8c07530fa6.txt +++ /dev/null @@ -1,19 +0,0 @@ -HTTP/1.1 200 OK -Date: Wed, 17 Feb 2021 08:04:06 GMT -Content-Type: application/ld+json; charset=utf-8 -Content-Length: 10828 -Connection: keep-alive -Set-Cookie: ahSession=06f1bc392b6485385a5ad291337e404c45d21e40;path=/;expires=Sat, 20 Mar 2021 08:04:05 GMT;httpOnly=true; -Access-Control-Allow-Methods: HEAD, GET, POST, DELETE, OPTIONS -Access-Control-Allow-Headers: Authorization, Content-Type -Strict-Transport-Security: max-age=15724800; includeSubDomains -Access-Control-Allow-Credentials: true -X-Frame-Options: deny -X-XSS-Protection: 1; mode=block -X-Content-Type-Options: nosniff -Referrer-Policy: same-origin -Feature-Policy: microphone 'none'; camera 'none'; payment 'none' -Content-Security-Policy: default-src 'self'; script-src 'self' 'sha256-xfTbtWk8kVI65iLJs8LB3lWf2g0g10DS71pDdoutFHc='; style-src 'self' 'unsafe-inline' https://stackpath.bootstrapcdn.com; img-src 'self' data: blob: * -Access-Control-Allow-Origin: https://cdb.thuecat.org - -{"@context":{"schema":"http://schema.org/","dbo":"http://dbpedia.org/ontology/","dsv":"http://ontologies.sti-innsbruck.at/dsv/","foaf":"http://xmlns.com/foaf/0.1/","owl":"http://www.w3.org/2002/07/owl#","rdf":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","rdfs":"http://www.w3.org/2000/01/rdf-schema#","sh":"http://www.w3.org/ns/shacl#","xsd":"http://www.w3.org/2001/XMLSchema#","ttgds":"https://thuecat.org/ontology/ttgds/1.0/","cdb":"https://thuecat.org/ontology/cdb/1.0/","dachkg":"https://thuecat.org/ontology/dachkg/1.0/","thuecat":"https://thuecat.org/ontology/thuecat/1.0/","epapp":"https://thuecat.org/ontology/epapp/1.0/"},"@graph":[{"@id":"https://thuecat.org/resources/396420044896-drzt","@type":["schema:Place","schema:Organization","schema:LocalBusiness","schema:CivicStructure","schema:Thing","schema:ParkingFacility","ttgds:OtherInfraStructure","thuecat:OtherPOI","thuecat:MultiStoreyCarPark"],"schema:description":[{"@language":"de","@value":"Das Parkhaus Domplatz befindet sich unmittelbar unterhalb der Zitadelle Petersberg am nördlichen Rand des Domplatzes. Durch die zentrale Lage ist es ein idealer Ausgangspunkt für Stadtbummel und Erkundungen des Zentrums, des Petersbergs und des Andreasviertels."},{"@language":"fr","@value":"Le parking à étages de la Domplatz est situé juste en dessous de la citadelle de Petersberg, sur le bord nord de la Domplatz. Son emplacement central en fait un point de départ idéal pour se promener dans la ville et explorer le centre, le Petersberg et l'Andreasviertel."},{"@language":"en","@value":"The Domplatz multi-storey car park is located directly below the Petersberg Citadel on the northern edge of the Domplatz. Its central location makes it an ideal starting point for strolling through the city and exploring the centre, the Petersberg and the Andreasviertel."},{"@id":"genid-2c9c8a1b44cc404ebe32e34cdbb87884-b1","@type":["schema:Intangible","schema:Thing","schema:ComputerLanguage","thuecat:Html"],"schema:value":{"@language":"de","@value":"

Das Parkhaus Domplatz befindet sich unmittelbar unterhalb der Zitadelle Petersberg am nördlichen Rand des Domplatzes. Durch die zentrale Lage ist es ein idealer Ausgangspunkt für Stadtbummel und Erkundungen des Zentrums, des Petersbergs und des Andreasviertels.

"}},{"@id":"genid-2c9c8a1b44cc404ebe32e34cdbb87884-b2","@type":["schema:Intangible","schema:Thing","schema:ComputerLanguage","thuecat:Html"],"schema:value":{"@language":"en","@value":"

The Domplatz multi-storey car park is located directly below the Petersberg Citadel on the northern edge of the Domplatz. Its central location makes it an ideal starting point for strolling through the city and exploring the centre, the Petersberg and the Andreasviertel.

"}},{"@id":"genid-2c9c8a1b44cc404ebe32e34cdbb87884-b3","@type":["schema:Intangible","schema:Thing","schema:ComputerLanguage","thuecat:Html"],"schema:value":{"@language":"fr","@value":"

Le parking à étages de la Domplatz est situé juste en dessous de la citadelle de Petersberg, sur le bord nord de la Domplatz. Son emplacement central en fait un point de départ idéal pour se promener dans la ville et explorer le centre, le Petersberg et l'Andreasviertel.

"}}],"schema:name":[{"@language":"de","@value":"Parkhaus Domplatz"},{"@language":"en","@value":"Car park Domplatz"},{"@language":"fr","@value":"Parking Domplatz"}],"schema:containedInPlace":{"@id":"https://thuecat.org/resources/508431710173-wwne"},"schema:photo":{"@id":"https://thuecat.org/resources/dms_6486108"},"schema:image":{"@id":"https://thuecat.org/resources/dms_6486108"},"schema:petsAllowed":{"@type":"schema:Boolean","@value":"true"},"schema:geo":{"@id":"genid-2c9c8a1b44cc404ebe32e34cdbb87884-b4","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:GeoCoordinates"],"schema:longitude":{"@type":"schema:Number","@value":"11.022127985954299"},"schema:latitude":{"@type":"schema:Number","@value":"50.977648905044"}},"schema:openingHoursSpecification":[{"@id":"genid-2c9c8a1b44cc404ebe32e34cdbb87884-b13","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:OpeningHoursSpecification"],"schema:dayOfWeek":[{"@type":"schema:DayOfWeek","@value":"schema:Saturday"},{"@type":"schema:DayOfWeek","@value":"schema:Friday"},{"@type":"schema:DayOfWeek","@value":"schema:Thursday"},{"@type":"schema:DayOfWeek","@value":"schema:Tuesday"},{"@type":"schema:DayOfWeek","@value":"schema:Monday"},{"@type":"schema:DayOfWeek","@value":"schema:Wednesday"}],"schema:opens":{"@type":"schema:Time","@value":"07:00:00"},"schema:closes":{"@type":"schema:Time","@value":"22:00:00"}},{"@id":"genid-2c9c8a1b44cc404ebe32e34cdbb87884-b14","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:OpeningHoursSpecification"],"schema:dayOfWeek":[{"@type":"schema:DayOfWeek","@value":"schema:Sunday"},{"@type":"schema:DayOfWeek","@value":"schema:PublicHolidays"}],"schema:opens":{"@type":"schema:Time","@value":"09:00:00"},"schema:closes":{"@type":"schema:Time","@value":"22:00:00"}}],"schema:smokingAllowed":{"@type":"schema:Boolean","@value":"false"},"schema:url":{"@type":"schema:URL","@value":"https://www.stadtwerke-erfurt.de/pb/swe/produkte+_+leistungen/parken/parkhaus+domplatz"},"schema:address":{"@id":"genid-2c9c8a1b44cc404ebe32e34cdbb87884-b0","@type":["schema:Intangible","schema:PostalAddress","schema:StructuredValue","schema:Thing","schema:ContactPoint"],"schema:addressLocality":{"@language":"de","@value":"Erfurt"},"schema:addressCountry":{"@type":"thuecat:AddressCountry","@value":"thuecat:Germany"},"schema:postalCode":{"@language":"de","@value":"99084"},"schema:addressRegion":{"@type":"thuecat:AddressFederalState","@value":"thuecat:Thuringia"},"schema:telephone":{"@language":"de","@value":"+49 361 5640"},"schema:email":{"@language":"de","@value":"info@stadtwerke-erfurt.de"},"schema:streetAddress":{"@language":"de","@value":"Bechtheimer Str. 1"},"thuecat:typOfAddress":{"@type":"thuecat:TypOfAddress","@value":"thuecat:HouseAddress"}},"schema:makesOffer":[{"@id":"genid-2c9c8a1b44cc404ebe32e34cdbb87884-b11","@type":["schema:Intangible","schema:Thing","schema:Offer"],"schema:offeredBy":{"@id":"https://thuecat.org/resources/396420044896-drzt"},"schema:availability":{"@type":"schema:ItemAvailability","@value":"schema:LimitedAvailability"},"schema:priceSpecification":{"@id":"genid-2c9c8a1b44cc404ebe32e34cdbb87884-b12","@type":["schema:Intangible","schema:StructuredValue","schema:PriceSpecification","schema:Thing"],"schema:price":{"@type":"schema:Number","@value":"35"},"schema:priceCurrency":{"@type":"thuecat:Currency","@value":"thuecat:EUR"},"thuecat:calculationRule":{"@type":"thuecat:CalculationRule","@value":"thuecat:PerCar"}},"thuecat:offerType":{"@type":"thuecat:OfferType","@value":"thuecat:ParkingFee"}},{"@id":"genid-2c9c8a1b44cc404ebe32e34cdbb87884-b5","@type":["schema:Intangible","schema:Thing","schema:Offer"],"schema:offeredBy":{"@id":"https://thuecat.org/resources/396420044896-drzt"},"schema:availability":{"@type":"schema:ItemAvailability","@value":"schema:LimitedAvailability"},"schema:priceSpecification":{"@id":"genid-2c9c8a1b44cc404ebe32e34cdbb87884-b6","@type":["schema:Intangible","schema:StructuredValue","schema:PriceSpecification","schema:Thing"],"schema:price":{"@type":"schema:Number","@value":"1.5"},"schema:priceCurrency":{"@type":"thuecat:Currency","@value":"thuecat:EUR"},"thuecat:calculationRule":{"@type":"thuecat:CalculationRule","@value":"thuecat:PerCar"}},"thuecat:offerType":{"@type":"thuecat:OfferType","@value":"thuecat:ParkingFee"}},{"@id":"genid-2c9c8a1b44cc404ebe32e34cdbb87884-b7","@type":["schema:Intangible","schema:Thing","schema:Offer"],"schema:offeredBy":{"@id":"https://thuecat.org/resources/396420044896-drzt"},"schema:availability":{"@type":"schema:ItemAvailability","@value":"schema:LimitedAvailability"},"schema:priceSpecification":{"@id":"genid-2c9c8a1b44cc404ebe32e34cdbb87884-b8","@type":["schema:Intangible","schema:StructuredValue","schema:PriceSpecification","schema:Thing"],"schema:price":{"@type":"schema:Number","@value":"10"},"schema:priceCurrency":{"@type":"thuecat:Currency","@value":"thuecat:EUR"},"thuecat:calculationRule":{"@type":"thuecat:CalculationRule","@value":"thuecat:PerCar"}},"thuecat:offerType":{"@type":"thuecat:OfferType","@value":"thuecat:ParkingFee"}},{"@id":"genid-2c9c8a1b44cc404ebe32e34cdbb87884-b9","@type":["schema:Intangible","schema:Thing","schema:Offer"],"schema:offeredBy":{"@id":"https://thuecat.org/resources/396420044896-drzt"},"schema:availability":{"@type":"schema:ItemAvailability","@value":"schema:LimitedAvailability"},"schema:priceSpecification":{"@id":"genid-2c9c8a1b44cc404ebe32e34cdbb87884-b10","@type":["schema:Intangible","schema:StructuredValue","schema:PriceSpecification","schema:Thing"],"schema:price":{"@type":"schema:Number","@value":"50"},"schema:priceCurrency":{"@type":"thuecat:Currency","@value":"thuecat:EUR"},"thuecat:calculationRule":{"@type":"thuecat:CalculationRule","@value":"thuecat:PerCar"}},"thuecat:offerType":{"@type":"thuecat:OfferType","@value":"thuecat:ParkingFee"}}],"thuecat:numberOfParkingSpace":{"@id":"genid-2c9c8a1b44cc404ebe32e34cdbb87884-b17","@type":["schema:Intangible","schema:QuantitativeValue","schema:StructuredValue","schema:Thing"],"schema:value":{"@type":"schema:Integer","@value":"300"},"schema:unitText":{"@type":"thuecat:TypeOfVehicle","@value":"thuecat:Car"}},"thuecat:contentResponsible":{"@id":"https://thuecat.org/resources/018132452787-ngbe"},"thuecat:managedBy":{"@id":"https://thuecat.org/resources/570107928040-rfze"},"thuecat:gastro":{"@type":"thuecat:GastroPoi","@value":"thuecat:ZeroGastronomy"},"thuecat:otherService":{"@type":"thuecat:OtherService","@value":"thuecat:ZeroOtherServiceEnumMem"},"thuecat:sanitation":{"@type":"thuecat:Sanitation","@value":"thuecat:ZeroSanitation"},"thuecat:trafficInfrastructure":{"@type":"thuecat:TrafficInfrastructure","@value":"thuecat:ElectricVehicleCarChargingStationEnumMem"},"thuecat:distanceToPublicTransport":{"@id":"genid-2c9c8a1b44cc404ebe32e34cdbb87884-b15","@type":["schema:Intangible","schema:QuantitativeValue","schema:StructuredValue","schema:Thing"],"schema:unitCode":{"@type":"thuecat:Unit","@value":"thuecat:MTR"},"schema:value":{"@type":"schema:Number","@value":"240"}},"thuecat:objectsNearBy":[{"@id":"https://thuecat.org/resources/908740175209-zbep"},{"@id":"https://thuecat.org/resources/835224016581-dara"},{"@id":"https://thuecat.org/resources/043064193523-jcyt"},{"@id":"https://thuecat.org/resources/363938447400-ammb"}],"thuecat:entryHeight":{"@id":"genid-2c9c8a1b44cc404ebe32e34cdbb87884-b16","@type":["schema:Intangible","schema:QuantitativeValue","schema:StructuredValue","schema:Thing"],"schema:unitCode":{"@type":"thuecat:Unit","@value":"thuecat:MTR"},"schema:value":{"@type":"schema:Number","@value":"2"}}}]} diff --git a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/440055527204-ocar.json b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/440055527204-ocar.json new file mode 100644 index 0000000..e93eff2 --- /dev/null +++ b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/440055527204-ocar.json @@ -0,0 +1,437 @@ +{ + "@context": { + "cdb": "https://thuecat.org/ontology/cdb/1.0/", + "dachkg": "https://thuecat.org/ontology/dachkg/1.0/", + "dbo": "http://dbpedia.org/ontology/", + "dsv": "http://ontologies.sti-innsbruck.at/dsv/", + "epapp": "https://thuecat.org/ontology/epapp/1.0/", + "foaf": "http://xmlns.com/foaf/0.1/", + "owl": "http://www.w3.org/2002/07/owl#", + "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", + "rdfs": "http://www.w3.org/2000/01/rdf-schema#", + "schema": "http://schema.org/", + "sh": "http://www.w3.org/ns/shacl#", + "thuecat": "https://thuecat.org/ontology/thuecat/1.0/", + "ttgds": "https://thuecat.org/ontology/ttgds/1.0/", + "xsd": "http://www.w3.org/2001/XMLSchema#" + }, + "@graph": [ + { + "@id": "https://thuecat.org/resources/440055527204-ocar", + "@type": [ + "schema:Place", + "schema:Organization", + "schema:LocalBusiness", + "schema:CivicStructure", + "schema:Thing", + "schema:TouristAttraction", + "schema:ParkingFacility", + "ttgds:OtherInfraStructure", + "thuecat:Building", + "thuecat:OtherPOI", + "thuecat:MultiStoreyCarPark", + "thuecat:TrafficBuilding" + ], + "schema:address": { + "@id": "genid-9de58329a0684feaa8b9b5ea70621af8-b0", + "@type": [ + "schema:Intangible", + "schema:PostalAddress", + "schema:StructuredValue", + "schema:Thing", + "schema:ContactPoint" + ], + "schema:addressCountry": { + "@type": "thuecat:AddressCountry", + "@value": "thuecat:Germany" + }, + "schema:addressLocality": { + "@language": "de", + "@value": "Erfurt" + }, + "schema:addressRegion": { + "@type": "thuecat:AddressFederalState", + "@value": "thuecat:Thuringia" + }, + "schema:email": { + "@language": "de", + "@value": "servicecenter@q-park.de" + }, + "schema:postalCode": { + "@language": "de", + "@value": "99084" + }, + "schema:streetAddress": { + "@language": "de", + "@value": "Anger 1" + }, + "schema:telephone": { + "@language": "de", + "@value": "+49 218 18190290" + }, + "thuecat:typOfAddress": { + "@type": "thuecat:TypOfAddress", + "@value": "thuecat:HouseAddress" + } + }, + "schema:containedInPlace": { + "@id": "https://thuecat.org/resources/043064193523-jcyt" + }, + "schema:description": [ + { + "@language": "fr", + "@value": "Le Q-Park est situ\u00e9 directement derri\u00e8re le grand magasin Anger 1 dans le centre-ville d'Erfurt et peut \u00eatre atteint par la Juri-Gagarin-Ring/Meyfartstra\u00dfe." + }, + { + "@language": "en", + "@value": "The Q-Park is located directly behind the department store Anger 1 in Erfurt's city centre and can be reached via Juri-Gagarin-Ring/Meyfartstra\u00dfe." + }, + { + "@language": "de", + "@value": "Der Q-Park liegt direkt hinter dem Kaufhaus Anger 1 im Erfurter Stadtzentrum und ist \u00fcber Juri-Gagarin-Ring/Meyfartstra\u00dfe zu erreichen. Durch die direkte Anbindung an den Stadtring, ist das Parkhaus gut von au\u00dferhalb \u00fcber Schnellstra\u00dfen und Autobahnen zu erreichen und befindet sich gleichzeitig im unmittelbaren modernen Zentrum Erfurts." + }, + { + "@id": "genid-9de58329a0684feaa8b9b5ea70621af8-b1", + "@type": [ + "schema:Intangible", + "schema:Thing", + "schema:ComputerLanguage", + "thuecat:Html" + ], + "schema:value": { + "@language": "de", + "@value": "

Der Q-Park liegt direkt hinter dem Kaufhaus Anger 1 im Erfurter Stadtzentrum und ist \u00fcber Juri-Gagarin-Ring/Meyfartstra\u00dfe zu erreichen. Durch die direkte Anbindung an den Stadtring, ist das Parkhaus gut von au\u00dferhalb \u00fcber Schnellstra\u00dfen und Autobahnen zu erreichen und befindet sich gleichzeitig im unmittelbaren modernen Zentrum Erfurts.

" + } + }, + { + "@id": "genid-9de58329a0684feaa8b9b5ea70621af8-b2", + "@type": [ + "schema:Intangible", + "schema:Thing", + "schema:ComputerLanguage", + "thuecat:Html" + ], + "schema:value": { + "@language": "en", + "@value": "The Q-Park is located directly behind the department store Anger 1 in Erfurt's city centre and can be reached via Juri-Gagarin-Ring/Meyfartstra\u00dfe." + } + }, + { + "@id": "genid-9de58329a0684feaa8b9b5ea70621af8-b3", + "@type": [ + "schema:Intangible", + "schema:Thing", + "schema:ComputerLanguage", + "thuecat:Html" + ], + "schema:value": { + "@language": "fr", + "@value": "Le Q-Park est situ\u00e9 directement derri\u00e8re le grand magasin Anger 1 dans le centre-ville d'Erfurt et peut \u00eatre atteint par la Juri-Gagarin-Ring/Meyfartstra\u00dfe." + } + } + ], + "schema:geo": { + "@id": "genid-9de58329a0684feaa8b9b5ea70621af8-b4", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:GeoCoordinates" + ], + "schema:latitude": { + "@type": "schema:Number", + "@value": "50.977999330565794" + }, + "schema:longitude": { + "@type": "schema:Number", + "@value": "11.037503264052475" + } + }, + "schema:hasMap": { + "@type": "schema:URL", + "@value": "https://www.google.de/maps/place/Q-Park+Anger+1+Parkhaus/@50.9777795,11.036599,18.5z/data=!4m12!1m6!3m5!1s0x47a47295932dd6c5:0x619ce72e7a54f805!2sPredigerkirche!8m2!3d50.976505!4d11.0289217!3m4!1s0x47a472bc3ecf3a5d:0x88cb2943674c2ea2!8m2!3d50.978002!4d11.0375074" + }, + "schema:image": { + "@id": "https://thuecat.org/resources/dms_5197164" + }, + "schema:isAccessibleForFree": { + "@type": "schema:Boolean", + "@value": "false" + }, + "schema:makesOffer": [ + { + "@id": "genid-9de58329a0684feaa8b9b5ea70621af8-b5", + "@type": [ + "schema:Intangible", + "schema:Thing", + "schema:Offer" + ], + "schema:offeredBy": { + "@id": "https://thuecat.org/resources/440055527204-ocar" + }, + "schema:priceSpecification": { + "@id": "genid-9de58329a0684feaa8b9b5ea70621af8-b6", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:PriceSpecification", + "schema:Thing" + ], + "schema:price": { + "@type": "schema:Number", + "@value": "2.2" + }, + "schema:priceCurrency": { + "@type": "thuecat:Currency", + "@value": "thuecat:EUR" + }, + "thuecat:calculationRule": { + "@type": "thuecat:CalculationRule", + "@value": "thuecat:PerCar" + } + }, + "thuecat:offerType": { + "@type": "thuecat:OfferType", + "@value": "thuecat:ParkingFee" + } + }, + { + "@id": "genid-9de58329a0684feaa8b9b5ea70621af8-b7", + "@type": [ + "schema:Intangible", + "schema:Thing", + "schema:Offer" + ], + "schema:offeredBy": { + "@id": "https://thuecat.org/resources/440055527204-ocar" + }, + "schema:priceSpecification": { + "@id": "genid-9de58329a0684feaa8b9b5ea70621af8-b8", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:PriceSpecification", + "schema:Thing" + ], + "schema:price": { + "@type": "schema:Number", + "@value": "1" + }, + "schema:priceCurrency": { + "@type": "thuecat:Currency", + "@value": "thuecat:EUR" + }, + "thuecat:calculationRule": { + "@type": "thuecat:CalculationRule", + "@value": "thuecat:PerCar" + } + }, + "thuecat:offerType": { + "@type": "thuecat:OfferType", + "@value": "thuecat:ParkingFee" + } + }, + { + "@id": "genid-9de58329a0684feaa8b9b5ea70621af8-b9", + "@type": [ + "schema:Intangible", + "schema:Thing", + "schema:Offer" + ], + "schema:offeredBy": { + "@id": "https://thuecat.org/resources/440055527204-ocar" + }, + "schema:priceSpecification": { + "@id": "genid-9de58329a0684feaa8b9b5ea70621af8-b10", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:PriceSpecification", + "schema:Thing" + ], + "schema:price": { + "@type": "schema:Number", + "@value": "13" + }, + "schema:priceCurrency": { + "@type": "thuecat:Currency", + "@value": "thuecat:EUR" + }, + "thuecat:calculationRule": { + "@type": "thuecat:CalculationRule", + "@value": "thuecat:PerCar" + } + }, + "thuecat:offerType": { + "@type": "thuecat:OfferType", + "@value": "thuecat:ParkingFee" + } + } + ], + "schema:name": [ + { + "@language": "de", + "@value": "Q-Park Anger 1 Parkhaus" + }, + { + "@language": "en", + "@value": "Q-Park Anger 1 multi-storey car park" + }, + { + "@language": "fr", + "@value": "Q-Park Anger 1 parking \u00e0 \u00e9tages" + } + ], + "schema:openingHoursSpecification": { + "@id": "genid-9de58329a0684feaa8b9b5ea70621af8-b11", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:OpeningHoursSpecification" + ], + "schema:closes": { + "@type": "schema:Time", + "@value": "23:59:00" + }, + "schema:dayOfWeek": [ + { + "@type": "schema:DayOfWeek", + "@value": "schema:Saturday" + }, + { + "@type": "schema:DayOfWeek", + "@value": "schema:Sunday" + }, + { + "@type": "schema:DayOfWeek", + "@value": "schema:Friday" + }, + { + "@type": "schema:DayOfWeek", + "@value": "schema:Thursday" + }, + { + "@type": "schema:DayOfWeek", + "@value": "schema:Tuesday" + }, + { + "@type": "schema:DayOfWeek", + "@value": "schema:Monday" + }, + { + "@type": "schema:DayOfWeek", + "@value": "schema:Wednesday" + } + ], + "schema:opens": { + "@type": "schema:Time", + "@value": "05:30:00" + }, + "schema:validFrom": { + "@type": "schema:Date", + "@value": "2020-12-01" + }, + "schema:validThrough": { + "@type": "schema:Date", + "@value": "2021-12-31" + } + }, + "schema:petsAllowed": { + "@type": "schema:Boolean", + "@value": "true" + }, + "schema:photo": { + "@id": "https://thuecat.org/resources/dms_5197164" + }, + "schema:smokingAllowed": { + "@type": "schema:Boolean", + "@value": "false" + }, + "schema:url": { + "@type": "schema:URL", + "@value": "https://www.q-park.de/de-de/staedte/erfurt/anger-1/" + }, + "thuecat:contentResponsible": { + "@id": "https://thuecat.org/resources/018132452787-ngbe" + }, + "thuecat:distanceToPublicTransport": { + "@id": "genid-9de58329a0684feaa8b9b5ea70621af8-b12", + "@type": [ + "schema:Intangible", + "schema:QuantitativeValue", + "schema:StructuredValue", + "schema:Thing" + ], + "schema:unitCode": { + "@type": "thuecat:Unit", + "@value": "thuecat:MTR" + }, + "schema:value": { + "@type": "schema:Number", + "@value": "120" + } + }, + "thuecat:entryHeight": { + "@id": "genid-9de58329a0684feaa8b9b5ea70621af8-b13", + "@type": [ + "schema:Intangible", + "schema:QuantitativeValue", + "schema:StructuredValue", + "schema:Thing" + ], + "schema:unitCode": { + "@type": "thuecat:Unit", + "@value": "thuecat:MTR" + }, + "schema:value": { + "@type": "schema:Number", + "@value": "2.1" + } + }, + "thuecat:gastro": { + "@type": "thuecat:GastroPoi", + "@value": "thuecat:ZeroGastronomy" + }, + "thuecat:numberOfParkingSpace": { + "@id": "genid-9de58329a0684feaa8b9b5ea70621af8-b14", + "@type": [ + "schema:Intangible", + "schema:QuantitativeValue", + "schema:StructuredValue", + "schema:Thing" + ], + "schema:unitText": { + "@type": "thuecat:TypeOfVehicle", + "@value": "thuecat:Car" + }, + "schema:value": { + "@type": "schema:Integer", + "@value": "716" + } + }, + "thuecat:objectsNearBy": [ + { + "@id": "https://thuecat.org/resources/r_16573215-oapoi" + }, + { + "@id": "https://thuecat.org/resources/r_22031603-oapoi" + }, + { + "@id": "https://thuecat.org/resources/896842796891-acor" + }, + { + "@id": "https://thuecat.org/resources/691296454763-qdjy" + } + ], + "thuecat:otherService": { + "@type": "thuecat:OtherService", + "@value": "thuecat:ZeroOtherServiceEnumMem" + }, + "thuecat:sanitation": { + "@type": "thuecat:Sanitation", + "@value": "thuecat:Toilets" + } + } + ] +} diff --git a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/440055527204-ocar/GET_ed2b49df916e1c2dba1a679b9866de31.txt b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/440055527204-ocar/GET_ed2b49df916e1c2dba1a679b9866de31.txt deleted file mode 100644 index 6c00e86..0000000 --- a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/440055527204-ocar/GET_ed2b49df916e1c2dba1a679b9866de31.txt +++ /dev/null @@ -1,19 +0,0 @@ -HTTP/1.1 200 OK -Date: Wed, 17 Feb 2021 08:04:06 GMT -Content-Type: application/ld+json; charset=utf-8 -Content-Length: 11716 -Connection: keep-alive -Set-Cookie: ahSession=06f1bc392b6485385a5ad291337e404c45d21e40;path=/;expires=Sat, 20 Mar 2021 08:04:05 GMT;httpOnly=true; -Access-Control-Allow-Methods: HEAD, GET, POST, DELETE, OPTIONS -Access-Control-Allow-Headers: Authorization, Content-Type -Strict-Transport-Security: max-age=15724800; includeSubDomains -Access-Control-Allow-Credentials: true -X-Frame-Options: deny -X-XSS-Protection: 1; mode=block -X-Content-Type-Options: nosniff -Referrer-Policy: same-origin -Feature-Policy: microphone 'none'; camera 'none'; payment 'none' -Content-Security-Policy: default-src 'self'; script-src 'self' 'sha256-xfTbtWk8kVI65iLJs8LB3lWf2g0g10DS71pDdoutFHc='; style-src 'self' 'unsafe-inline' https://stackpath.bootstrapcdn.com; img-src 'self' data: blob: * -Access-Control-Allow-Origin: https://cdb.thuecat.org - -{"@context":{"schema":"http://schema.org/","dbo":"http://dbpedia.org/ontology/","dsv":"http://ontologies.sti-innsbruck.at/dsv/","foaf":"http://xmlns.com/foaf/0.1/","owl":"http://www.w3.org/2002/07/owl#","rdf":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","rdfs":"http://www.w3.org/2000/01/rdf-schema#","sh":"http://www.w3.org/ns/shacl#","xsd":"http://www.w3.org/2001/XMLSchema#","ttgds":"https://thuecat.org/ontology/ttgds/1.0/","cdb":"https://thuecat.org/ontology/cdb/1.0/","dachkg":"https://thuecat.org/ontology/dachkg/1.0/","thuecat":"https://thuecat.org/ontology/thuecat/1.0/","epapp":"https://thuecat.org/ontology/epapp/1.0/"},"@graph":[{"@id":"https://thuecat.org/resources/440055527204-ocar","@type":["schema:Place","schema:Organization","schema:LocalBusiness","schema:CivicStructure","schema:Thing","schema:TouristAttraction","schema:ParkingFacility","ttgds:OtherInfraStructure","thuecat:Building","thuecat:OtherPOI","thuecat:MultiStoreyCarPark","thuecat:TrafficBuilding"],"schema:description":[{"@language":"fr","@value":"Le Q-Park est situé directement derrière le grand magasin Anger 1 dans le centre-ville d'Erfurt et peut être atteint par la Juri-Gagarin-Ring/Meyfartstraße."},{"@language":"en","@value":"The Q-Park is located directly behind the department store Anger 1 in Erfurt's city centre and can be reached via Juri-Gagarin-Ring/Meyfartstraße."},{"@language":"de","@value":"Der Q-Park liegt direkt hinter dem Kaufhaus Anger 1 im Erfurter Stadtzentrum und ist über Juri-Gagarin-Ring/Meyfartstraße zu erreichen. Durch die direkte Anbindung an den Stadtring, ist das Parkhaus gut von außerhalb über Schnellstraßen und Autobahnen zu erreichen und befindet sich gleichzeitig im unmittelbaren modernen Zentrum Erfurts."},{"@id":"genid-9de58329a0684feaa8b9b5ea70621af8-b1","@type":["schema:Intangible","schema:Thing","schema:ComputerLanguage","thuecat:Html"],"schema:value":{"@language":"de","@value":"

Der Q-Park liegt direkt hinter dem Kaufhaus Anger 1 im Erfurter Stadtzentrum und ist über Juri-Gagarin-Ring/Meyfartstraße zu erreichen. Durch die direkte Anbindung an den Stadtring, ist das Parkhaus gut von außerhalb über Schnellstraßen und Autobahnen zu erreichen und befindet sich gleichzeitig im unmittelbaren modernen Zentrum Erfurts.

"}},{"@id":"genid-9de58329a0684feaa8b9b5ea70621af8-b2","@type":["schema:Intangible","schema:Thing","schema:ComputerLanguage","thuecat:Html"],"schema:value":{"@language":"en","@value":"The Q-Park is located directly behind the department store Anger 1 in Erfurt's city centre and can be reached via Juri-Gagarin-Ring/Meyfartstraße."}},{"@id":"genid-9de58329a0684feaa8b9b5ea70621af8-b3","@type":["schema:Intangible","schema:Thing","schema:ComputerLanguage","thuecat:Html"],"schema:value":{"@language":"fr","@value":"Le Q-Park est situé directement derrière le grand magasin Anger 1 dans le centre-ville d'Erfurt et peut être atteint par la Juri-Gagarin-Ring/Meyfartstraße."}}],"schema:name":[{"@language":"de","@value":"Q-Park Anger 1 Parkhaus"},{"@language":"en","@value":"Q-Park Anger 1 multi-storey car park"},{"@language":"fr","@value":"Q-Park Anger 1 parking à étages"}],"schema:containedInPlace":{"@id":"https://thuecat.org/resources/043064193523-jcyt"},"schema:photo":{"@id":"https://thuecat.org/resources/dms_5197164"},"schema:image":{"@id":"https://thuecat.org/resources/dms_5197164"},"schema:petsAllowed":{"@type":"schema:Boolean","@value":"true"},"schema:hasMap":{"@type":"schema:URL","@value":"https://www.google.de/maps/place/Q-Park+Anger+1+Parkhaus/@50.9777795,11.036599,18.5z/data=!4m12!1m6!3m5!1s0x47a47295932dd6c5:0x619ce72e7a54f805!2sPredigerkirche!8m2!3d50.976505!4d11.0289217!3m4!1s0x47a472bc3ecf3a5d:0x88cb2943674c2ea2!8m2!3d50.978002!4d11.0375074"},"schema:geo":{"@id":"genid-9de58329a0684feaa8b9b5ea70621af8-b4","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:GeoCoordinates"],"schema:longitude":{"@type":"schema:Number","@value":"11.037503264052475"},"schema:latitude":{"@type":"schema:Number","@value":"50.977999330565794"}},"schema:openingHoursSpecification":{"@id":"genid-9de58329a0684feaa8b9b5ea70621af8-b11","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:OpeningHoursSpecification"],"schema:validFrom":{"@type":"schema:Date","@value":"2020-12-01"},"schema:dayOfWeek":[{"@type":"schema:DayOfWeek","@value":"schema:Saturday"},{"@type":"schema:DayOfWeek","@value":"schema:Sunday"},{"@type":"schema:DayOfWeek","@value":"schema:Friday"},{"@type":"schema:DayOfWeek","@value":"schema:Thursday"},{"@type":"schema:DayOfWeek","@value":"schema:Tuesday"},{"@type":"schema:DayOfWeek","@value":"schema:Monday"},{"@type":"schema:DayOfWeek","@value":"schema:Wednesday"}],"schema:opens":{"@type":"schema:Time","@value":"05:30:00"},"schema:validThrough":{"@type":"schema:Date","@value":"2021-12-31"},"schema:closes":{"@type":"schema:Time","@value":"23:59:00"}},"schema:isAccessibleForFree":{"@type":"schema:Boolean","@value":"false"},"schema:smokingAllowed":{"@type":"schema:Boolean","@value":"false"},"schema:url":{"@type":"schema:URL","@value":"https://www.q-park.de/de-de/staedte/erfurt/anger-1/"},"schema:address":{"@id":"genid-9de58329a0684feaa8b9b5ea70621af8-b0","@type":["schema:Intangible","schema:PostalAddress","schema:StructuredValue","schema:Thing","schema:ContactPoint"],"schema:addressLocality":{"@language":"de","@value":"Erfurt"},"schema:addressCountry":{"@type":"thuecat:AddressCountry","@value":"thuecat:Germany"},"schema:postalCode":{"@language":"de","@value":"99084"},"schema:addressRegion":{"@type":"thuecat:AddressFederalState","@value":"thuecat:Thuringia"},"schema:telephone":{"@language":"de","@value":"+49 218 18190290"},"schema:email":{"@language":"de","@value":"servicecenter@q-park.de"},"schema:streetAddress":{"@language":"de","@value":"Anger 1"},"thuecat:typOfAddress":{"@type":"thuecat:TypOfAddress","@value":"thuecat:HouseAddress"}},"schema:makesOffer":[{"@id":"genid-9de58329a0684feaa8b9b5ea70621af8-b5","@type":["schema:Intangible","schema:Thing","schema:Offer"],"schema:offeredBy":{"@id":"https://thuecat.org/resources/440055527204-ocar"},"schema:priceSpecification":{"@id":"genid-9de58329a0684feaa8b9b5ea70621af8-b6","@type":["schema:Intangible","schema:StructuredValue","schema:PriceSpecification","schema:Thing"],"schema:price":{"@type":"schema:Number","@value":"2.2"},"schema:priceCurrency":{"@type":"thuecat:Currency","@value":"thuecat:EUR"},"thuecat:calculationRule":{"@type":"thuecat:CalculationRule","@value":"thuecat:PerCar"}},"thuecat:offerType":{"@type":"thuecat:OfferType","@value":"thuecat:ParkingFee"}},{"@id":"genid-9de58329a0684feaa8b9b5ea70621af8-b7","@type":["schema:Intangible","schema:Thing","schema:Offer"],"schema:offeredBy":{"@id":"https://thuecat.org/resources/440055527204-ocar"},"schema:priceSpecification":{"@id":"genid-9de58329a0684feaa8b9b5ea70621af8-b8","@type":["schema:Intangible","schema:StructuredValue","schema:PriceSpecification","schema:Thing"],"schema:price":{"@type":"schema:Number","@value":"1"},"schema:priceCurrency":{"@type":"thuecat:Currency","@value":"thuecat:EUR"},"thuecat:calculationRule":{"@type":"thuecat:CalculationRule","@value":"thuecat:PerCar"}},"thuecat:offerType":{"@type":"thuecat:OfferType","@value":"thuecat:ParkingFee"}},{"@id":"genid-9de58329a0684feaa8b9b5ea70621af8-b9","@type":["schema:Intangible","schema:Thing","schema:Offer"],"schema:offeredBy":{"@id":"https://thuecat.org/resources/440055527204-ocar"},"schema:priceSpecification":{"@id":"genid-9de58329a0684feaa8b9b5ea70621af8-b10","@type":["schema:Intangible","schema:StructuredValue","schema:PriceSpecification","schema:Thing"],"schema:price":{"@type":"schema:Number","@value":"13"},"schema:priceCurrency":{"@type":"thuecat:Currency","@value":"thuecat:EUR"},"thuecat:calculationRule":{"@type":"thuecat:CalculationRule","@value":"thuecat:PerCar"}},"thuecat:offerType":{"@type":"thuecat:OfferType","@value":"thuecat:ParkingFee"}}],"thuecat:numberOfParkingSpace":{"@id":"genid-9de58329a0684feaa8b9b5ea70621af8-b14","@type":["schema:Intangible","schema:QuantitativeValue","schema:StructuredValue","schema:Thing"],"schema:value":{"@type":"schema:Integer","@value":"716"},"schema:unitText":{"@type":"thuecat:TypeOfVehicle","@value":"thuecat:Car"}},"thuecat:contentResponsible":{"@id":"https://thuecat.org/resources/018132452787-ngbe"},"thuecat:gastro":{"@type":"thuecat:GastroPoi","@value":"thuecat:ZeroGastronomy"},"thuecat:otherService":{"@type":"thuecat:OtherService","@value":"thuecat:ZeroOtherServiceEnumMem"},"thuecat:sanitation":{"@type":"thuecat:Sanitation","@value":"thuecat:Toilets"},"thuecat:distanceToPublicTransport":{"@id":"genid-9de58329a0684feaa8b9b5ea70621af8-b12","@type":["schema:Intangible","schema:QuantitativeValue","schema:StructuredValue","schema:Thing"],"schema:unitCode":{"@type":"thuecat:Unit","@value":"thuecat:MTR"},"schema:value":{"@type":"schema:Number","@value":"120"}},"thuecat:objectsNearBy":[{"@id":"https://thuecat.org/resources/r_16573215-oapoi"},{"@id":"https://thuecat.org/resources/r_22031603-oapoi"},{"@id":"https://thuecat.org/resources/896842796891-acor"},{"@id":"https://thuecat.org/resources/691296454763-qdjy"}],"thuecat:entryHeight":{"@id":"genid-9de58329a0684feaa8b9b5ea70621af8-b13","@type":["schema:Intangible","schema:QuantitativeValue","schema:StructuredValue","schema:Thing"],"schema:unitCode":{"@type":"thuecat:Unit","@value":"thuecat:MTR"},"schema:value":{"@type":"schema:Number","@value":"2.1"}}}]} diff --git a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/497839263245-edbm.json b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/497839263245-edbm.json new file mode 100644 index 0000000..e6b9a76 --- /dev/null +++ b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/497839263245-edbm.json @@ -0,0 +1,213 @@ +{ + "@context": { + "cdb": "https://thuecat.org/ontology/cdb/1.0/", + "dachkg": "https://thuecat.org/ontology/dachkg/1.0/", + "dbo": "http://dbpedia.org/ontology/", + "dsv": "http://ontologies.sti-innsbruck.at/dsv/", + "epapp": "https://thuecat.org/ontology/epapp/1.0/", + "foaf": "http://xmlns.com/foaf/0.1/", + "owl": "http://www.w3.org/2002/07/owl#", + "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", + "rdfs": "http://www.w3.org/2000/01/rdf-schema#", + "schema": "http://schema.org/", + "sh": "http://www.w3.org/ns/shacl#", + "thuecat": "https://thuecat.org/ontology/thuecat/1.0/", + "ttgds": "https://thuecat.org/ontology/ttgds/1.0/", + "xsd": "http://www.w3.org/2001/XMLSchema#" + }, + "@graph": [ + { + "@id": "https://thuecat.org/resources/497839263245-edbm", + "@type": [ + "schema:Place", + "schema:Organization", + "schema:LocalBusiness", + "schema:Thing", + "schema:TouristAttraction", + "ttgds:OtherInfraStructure", + "thuecat:OtherPOI", + "thuecat:StrollingMile" + ], + "schema:address": { + "@id": "genid-4205641db5894928b636fbc984941a62-b0", + "@type": [ + "schema:Intangible", + "schema:PostalAddress", + "schema:StructuredValue", + "schema:Thing", + "schema:ContactPoint" + ], + "schema:addressCountry": { + "@type": "thuecat:AddressCountry", + "@value": "thuecat:Germany" + }, + "schema:addressLocality": { + "@language": "de", + "@value": "Erfurt" + }, + "schema:addressRegion": { + "@type": "thuecat:AddressFederalState", + "@value": "thuecat:Thuringia" + }, + "schema:postalCode": { + "@language": "de", + "@value": "99084" + }, + "schema:streetAddress": { + "@language": "de", + "@value": "Waagegasse" + }, + "thuecat:typOfAddress": { + "@type": "thuecat:TypOfAddress", + "@value": "thuecat:HouseAddress" + } + }, + "schema:audience": [ + { + "@id": "https://thuecat.org/resources/290287712606-zkwq" + }, + { + "@id": "https://thuecat.org/resources/312868368592-wnce" + }, + { + "@id": "https://thuecat.org/resources/301753337945-akzy" + }, + { + "@id": "https://thuecat.org/resources/304061111979-rmed" + } + ], + "schema:containedInPlace": { + "@id": "https://thuecat.org/resources/043064193523-jcyt" + }, + "schema:containsPlace": { + "@id": "https://thuecat.org/resources/165868194223-zmqf" + }, + "schema:description": [ + { + "@language": "de", + "@value": "Die Waagegasse mag zun\u00e4chst unspektakul\u00e4r erscheinen, ist aber eine bemerkenswert alte und f\u00fcr die Erfurter Geschichte sehr bedeutsame Stra\u00dfe. Denn hier wurden s\u00e4mtliche H\u00e4ndler, die Erfurt passieren und/oder in Erfurt handeln wollten, durchgef\u00fchrt. Die Stra\u00dfe ist genauso breit wie ein Fuhrwerk, sodass jeder einzeln durchgeschleust werden konnte. Jede Kutsche wurde hier gewogen, je nach Wert Steuern erhoben und die Ware wurde drei Tage in den heute noch sichtbaren Stapelh\u00e4usern gelagert.\nHeute spielt die Waagegasse vor allem als \"Schleichweg\" zwischen Michaelis- und Allerheiligenstra\u00dfe, als Zugang zur Alten Synagoge und nat\u00fcrlich bei zahlreichen Stadtf\u00fchrungen eine Rolle." + }, + { + "@language": "fr", + "@value": "La Waagegasse peut sembler peu spectaculaire au premier abord, mais il s'agit d'une rue remarquablement ancienne et tr\u00e8s importante pour l'histoire d'Erfurt. En effet, tous les marchands qui voulaient passer par Erfurt et/ou faire du commerce \u00e0 Erfurt passaient par ici. La rue est aussi large qu'un carrosse, de sorte que l'on pouvait faire passer chacun d'eux individuellement. Chaque chariot \u00e9tait pes\u00e9 ici, des taxes \u00e9taient pr\u00e9lev\u00e9es en fonction de sa valeur et les marchandises \u00e9taient stock\u00e9es pendant trois jours dans les maisons d'empilage qui sont encore visibles aujourd'hui.\nAujourd'hui, la Waagegasse joue surtout un r\u00f4le de \"chemin de traverse\" entre la Michaelisstrasse et l'Allerheiligenstrasse, d'acc\u00e8s \u00e0 l'ancienne synagogue et, bien s\u00fbr, dans de nombreuses visites de la ville." + }, + { + "@language": "en", + "@value": "The Waagegasse may seem unspectacular at first, but it is a remarkably old and very significant street for Erfurt's history. This is because all merchants who wanted to pass through Erfurt and/or trade in Erfurt passed through here. The street is as wide as a carriage, so that each one could be passed through individually. Each carriage was weighed here, taxes were levied according to its value and the goods were stored for three days in the stacking houses that are still visible today.\nToday, the Waagegasse plays a role primarily as a \"sneak path\" between Michaelisstrasse and Allerheiligenstrasse, as access to the Old Synagogue and, of course, on numerous city tours." + }, + { + "@id": "genid-4205641db5894928b636fbc984941a62-b1", + "@type": [ + "schema:Intangible", + "schema:Thing", + "schema:ComputerLanguage", + "thuecat:Html" + ], + "schema:value": { + "@language": "de", + "@value": "

Die Waagegasse mag zun\u00e4chst unspektakul\u00e4r erscheinen, ist aber eine bemerkenswert alte und f\u00fcr die Erfurter Geschichte sehr bedeutsame Stra\u00dfe. Denn hier wurden s\u00e4mtliche H\u00e4ndler, die Erfurt passieren und/oder in Erfurt handeln wollten, durchgef\u00fchrt. Die Stra\u00dfe ist genauso breit wie ein Fuhrwerk, sodass jeder einzeln durchgeschleust werden konnte. Jede Kutsche wurde hier gewogen, je nach Wert Steuern erhoben und die Ware wurde drei Tage in den heute noch sichtbaren Stapelh\u00e4usern gelagert.

Heute spielt die Waagegasse vor allem als \"Schleichweg\" zwischen Michaelis- und Allerheiligenstra\u00dfe, als Zugang zur Alten Synagoge und nat\u00fcrlich bei zahlreichen Stadtf\u00fchrungen eine Rolle.

" + } + }, + { + "@id": "genid-4205641db5894928b636fbc984941a62-b2", + "@type": [ + "schema:Intangible", + "schema:Thing", + "schema:ComputerLanguage", + "thuecat:Html" + ], + "schema:value": { + "@language": "en", + "@value": "

The Waagegasse may seem unspectacular at first, but it is a remarkably old and very significant street for Erfurt's history. This is because all merchants who wanted to pass through Erfurt and/or trade in Erfurt passed through here. The street is as wide as a carriage, so that each one could be passed through individually. Each carriage was weighed here, taxes were levied according to its value and the goods were stored for three days in the stacking houses that are still visible today.

Today, the Waagegasse plays a role primarily as a \"sneak path\" between Michaelisstrasse and Allerheiligenstrasse, as access to the Old Synagogue and, of course, on numerous city tours.

" + } + }, + { + "@id": "genid-4205641db5894928b636fbc984941a62-b3", + "@type": [ + "schema:Intangible", + "schema:Thing", + "schema:ComputerLanguage", + "thuecat:Html" + ], + "schema:value": { + "@language": "fr", + "@value": "

La Waagegasse peut sembler peu spectaculaire au premier abord, mais il s'agit d'une rue remarquablement ancienne et tr\u00e8s importante pour l'histoire d'Erfurt. En effet, tous les marchands qui voulaient passer par Erfurt et/ou faire du commerce \u00e0 Erfurt passaient par ici. La rue est aussi large qu'un carrosse, de sorte que l'on pouvait faire passer chacun d'eux individuellement. Chaque chariot \u00e9tait pes\u00e9 ici, des taxes \u00e9taient pr\u00e9lev\u00e9es en fonction de sa valeur et les marchandises \u00e9taient stock\u00e9es pendant trois jours dans les maisons d'empilage qui sont encore visibles aujourd'hui.

Aujourd'hui, la Waagegasse joue surtout un r\u00f4le de \"chemin de traverse\" entre la Michaelisstrasse et l'Allerheiligenstrasse, d'acc\u00e8s \u00e0 l'ancienne synagogue et, bien s\u00fbr, dans de nombreuses visites de la ville.

" + } + } + ], + "schema:geo": { + "@id": "genid-4205641db5894928b636fbc984941a62-b4", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:GeoCoordinates" + ], + "schema:latitude": { + "@type": "schema:Number", + "@value": "50.97868297541305" + }, + "schema:longitude": { + "@type": "schema:Number", + "@value": "11.027608736826844" + } + }, + "schema:hasMap": { + "@type": "schema:URL", + "@value": "https://www.google.de/maps/@50.9787007,11.0277439,21z" + }, + "schema:image": [ + { + "@id": "https://thuecat.org/resources/dms_653435" + }, + { + "@id": "https://thuecat.org/resources/dms_653458" + }, + { + "@id": "https://thuecat.org/resources/dms_653546" + }, + { + "@id": "https://thuecat.org/resources/dms_653571" + }, + { + "@id": "https://thuecat.org/resources/dms_5319657" + }, + { + "@id": "https://thuecat.org/resources/dms_5319686" + } + ], + "schema:name": { + "@language": "de", + "@value": "Waagegasse Erfurt" + }, + "schema:petsAllowed": { + "@type": "schema:Boolean", + "@value": "true" + }, + "schema:photo": { + "@id": "https://thuecat.org/resources/dms_5319686" + }, + "schema:smokingAllowed": { + "@type": "schema:Boolean", + "@value": "true" + }, + "thuecat:contentResponsible": { + "@id": "https://thuecat.org/resources/018132452787-ngbe" + }, + "thuecat:gastro": [ + { + "@type": "thuecat:GastroPoi", + "@value": "thuecat:BarEnumMem" + }, + { + "@type": "thuecat:GastroPoi", + "@value": "thuecat:Restaurant" + } + ], + "thuecat:sanitation": { + "@type": "thuecat:Sanitation", + "@value": "thuecat:ZeroSanitation" + } + } + ] +} diff --git a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/497839263245-edbm/GET_68f53911ca843d0b5c0f792784fe3000.txt b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/497839263245-edbm/GET_68f53911ca843d0b5c0f792784fe3000.txt deleted file mode 100644 index 5a953c7..0000000 --- a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/497839263245-edbm/GET_68f53911ca843d0b5c0f792784fe3000.txt +++ /dev/null @@ -1,19 +0,0 @@ -HTTP/1.1 200 OK -Date: Wed, 17 Feb 2021 08:04:06 GMT -Content-Type: application/ld+json; charset=utf-8 -Content-Length: 11716 -Connection: keep-alive -Set-Cookie: ahSession=06f1bc392b6485385a5ad291337e404c45d21e40;path=/;expires=Sat, 20 Mar 2021 08:04:05 GMT;httpOnly=true; -Access-Control-Allow-Methods: HEAD, GET, POST, DELETE, OPTIONS -Access-Control-Allow-Headers: Authorization, Content-Type -Strict-Transport-Security: max-age=15724800; includeSubDomains -Access-Control-Allow-Credentials: true -X-Frame-Options: deny -X-XSS-Protection: 1; mode=block -X-Content-Type-Options: nosniff -Referrer-Policy: same-origin -Feature-Policy: microphone 'none'; camera 'none'; payment 'none' -Content-Security-Policy: default-src 'self'; script-src 'self' 'sha256-xfTbtWk8kVI65iLJs8LB3lWf2g0g10DS71pDdoutFHc='; style-src 'self' 'unsafe-inline' https://stackpath.bootstrapcdn.com; img-src 'self' data: blob: * -Access-Control-Allow-Origin: https://cdb.thuecat.org - -{"@context":{"schema":"http://schema.org/","dbo":"http://dbpedia.org/ontology/","dsv":"http://ontologies.sti-innsbruck.at/dsv/","foaf":"http://xmlns.com/foaf/0.1/","owl":"http://www.w3.org/2002/07/owl#","rdf":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","rdfs":"http://www.w3.org/2000/01/rdf-schema#","sh":"http://www.w3.org/ns/shacl#","xsd":"http://www.w3.org/2001/XMLSchema#","ttgds":"https://thuecat.org/ontology/ttgds/1.0/","cdb":"https://thuecat.org/ontology/cdb/1.0/","dachkg":"https://thuecat.org/ontology/dachkg/1.0/","thuecat":"https://thuecat.org/ontology/thuecat/1.0/","epapp":"https://thuecat.org/ontology/epapp/1.0/"},"@graph":[{"@id":"https://thuecat.org/resources/497839263245-edbm","@type":["schema:Place","schema:Organization","schema:LocalBusiness","schema:Thing","schema:TouristAttraction","ttgds:OtherInfraStructure","thuecat:OtherPOI","thuecat:StrollingMile"],"schema:description":[{"@language":"de","@value":"Die Waagegasse mag zunächst unspektakulär erscheinen, ist aber eine bemerkenswert alte und für die Erfurter Geschichte sehr bedeutsame Straße. Denn hier wurden sämtliche Händler, die Erfurt passieren und/oder in Erfurt handeln wollten, durchgeführt. Die Straße ist genauso breit wie ein Fuhrwerk, sodass jeder einzeln durchgeschleust werden konnte. Jede Kutsche wurde hier gewogen, je nach Wert Steuern erhoben und die Ware wurde drei Tage in den heute noch sichtbaren Stapelhäusern gelagert.\nHeute spielt die Waagegasse vor allem als \"Schleichweg\" zwischen Michaelis- und Allerheiligenstraße, als Zugang zur Alten Synagoge und natürlich bei zahlreichen Stadtführungen eine Rolle."},{"@language":"fr","@value":"La Waagegasse peut sembler peu spectaculaire au premier abord, mais il s'agit d'une rue remarquablement ancienne et très importante pour l'histoire d'Erfurt. En effet, tous les marchands qui voulaient passer par Erfurt et/ou faire du commerce à Erfurt passaient par ici. La rue est aussi large qu'un carrosse, de sorte que l'on pouvait faire passer chacun d'eux individuellement. Chaque chariot était pesé ici, des taxes étaient prélevées en fonction de sa valeur et les marchandises étaient stockées pendant trois jours dans les maisons d'empilage qui sont encore visibles aujourd'hui.\nAujourd'hui, la Waagegasse joue surtout un rôle de \"chemin de traverse\" entre la Michaelisstrasse et l'Allerheiligenstrasse, d'accès à l'ancienne synagogue et, bien sûr, dans de nombreuses visites de la ville."},{"@language":"en","@value":"The Waagegasse may seem unspectacular at first, but it is a remarkably old and very significant street for Erfurt's history. This is because all merchants who wanted to pass through Erfurt and/or trade in Erfurt passed through here. The street is as wide as a carriage, so that each one could be passed through individually. Each carriage was weighed here, taxes were levied according to its value and the goods were stored for three days in the stacking houses that are still visible today.\nToday, the Waagegasse plays a role primarily as a \"sneak path\" between Michaelisstrasse and Allerheiligenstrasse, as access to the Old Synagogue and, of course, on numerous city tours."},{"@id":"genid-4205641db5894928b636fbc984941a62-b1","@type":["schema:Intangible","schema:Thing","schema:ComputerLanguage","thuecat:Html"],"schema:value":{"@language":"de","@value":"

Die Waagegasse mag zunächst unspektakulär erscheinen, ist aber eine bemerkenswert alte und für die Erfurter Geschichte sehr bedeutsame Straße. Denn hier wurden sämtliche Händler, die Erfurt passieren und/oder in Erfurt handeln wollten, durchgeführt. Die Straße ist genauso breit wie ein Fuhrwerk, sodass jeder einzeln durchgeschleust werden konnte. Jede Kutsche wurde hier gewogen, je nach Wert Steuern erhoben und die Ware wurde drei Tage in den heute noch sichtbaren Stapelhäusern gelagert.

Heute spielt die Waagegasse vor allem als \"Schleichweg\" zwischen Michaelis- und Allerheiligenstraße, als Zugang zur Alten Synagoge und natürlich bei zahlreichen Stadtführungen eine Rolle.

"}},{"@id":"genid-4205641db5894928b636fbc984941a62-b2","@type":["schema:Intangible","schema:Thing","schema:ComputerLanguage","thuecat:Html"],"schema:value":{"@language":"en","@value":"

The Waagegasse may seem unspectacular at first, but it is a remarkably old and very significant street for Erfurt's history. This is because all merchants who wanted to pass through Erfurt and/or trade in Erfurt passed through here. The street is as wide as a carriage, so that each one could be passed through individually. Each carriage was weighed here, taxes were levied according to its value and the goods were stored for three days in the stacking houses that are still visible today.

Today, the Waagegasse plays a role primarily as a \"sneak path\" between Michaelisstrasse and Allerheiligenstrasse, as access to the Old Synagogue and, of course, on numerous city tours.

"}},{"@id":"genid-4205641db5894928b636fbc984941a62-b3","@type":["schema:Intangible","schema:Thing","schema:ComputerLanguage","thuecat:Html"],"schema:value":{"@language":"fr","@value":"

La Waagegasse peut sembler peu spectaculaire au premier abord, mais il s'agit d'une rue remarquablement ancienne et très importante pour l'histoire d'Erfurt. En effet, tous les marchands qui voulaient passer par Erfurt et/ou faire du commerce à Erfurt passaient par ici. La rue est aussi large qu'un carrosse, de sorte que l'on pouvait faire passer chacun d'eux individuellement. Chaque chariot était pesé ici, des taxes étaient prélevées en fonction de sa valeur et les marchandises étaient stockées pendant trois jours dans les maisons d'empilage qui sont encore visibles aujourd'hui.

Aujourd'hui, la Waagegasse joue surtout un rôle de \"chemin de traverse\" entre la Michaelisstrasse et l'Allerheiligenstrasse, d'accès à l'ancienne synagogue et, bien sûr, dans de nombreuses visites de la ville.

"}}],"schema:name":{"@language":"de","@value":"Waagegasse Erfurt"},"schema:containedInPlace":{"@id":"https://thuecat.org/resources/043064193523-jcyt"},"schema:containsPlace":{"@id":"https://thuecat.org/resources/165868194223-zmqf"},"schema:photo":{"@id":"https://thuecat.org/resources/dms_5319686"},"schema:image":[{"@id":"https://thuecat.org/resources/dms_653435"},{"@id":"https://thuecat.org/resources/dms_653458"},{"@id":"https://thuecat.org/resources/dms_653546"},{"@id":"https://thuecat.org/resources/dms_653571"},{"@id":"https://thuecat.org/resources/dms_5319657"},{"@id":"https://thuecat.org/resources/dms_5319686"}],"schema:audience":[{"@id":"https://thuecat.org/resources/290287712606-zkwq"},{"@id":"https://thuecat.org/resources/312868368592-wnce"},{"@id":"https://thuecat.org/resources/301753337945-akzy"},{"@id":"https://thuecat.org/resources/304061111979-rmed"}],"schema:petsAllowed":{"@type":"schema:Boolean","@value":"true"},"schema:hasMap":{"@type":"schema:URL","@value":"https://www.google.de/maps/@50.9787007,11.0277439,21z"},"schema:geo":{"@id":"genid-4205641db5894928b636fbc984941a62-b4","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:GeoCoordinates"],"schema:longitude":{"@type":"schema:Number","@value":"11.027608736826844"},"schema:latitude":{"@type":"schema:Number","@value":"50.97868297541305"}},"schema:smokingAllowed":{"@type":"schema:Boolean","@value":"true"},"schema:address":{"@id":"genid-4205641db5894928b636fbc984941a62-b0","@type":["schema:Intangible","schema:PostalAddress","schema:StructuredValue","schema:Thing","schema:ContactPoint"],"schema:addressLocality":{"@language":"de","@value":"Erfurt"},"schema:addressCountry":{"@type":"thuecat:AddressCountry","@value":"thuecat:Germany"},"schema:postalCode":{"@language":"de","@value":"99084"},"schema:addressRegion":{"@type":"thuecat:AddressFederalState","@value":"thuecat:Thuringia"},"schema:streetAddress":{"@language":"de","@value":"Waagegasse"},"thuecat:typOfAddress":{"@type":"thuecat:TypOfAddress","@value":"thuecat:HouseAddress"}},"thuecat:contentResponsible":{"@id":"https://thuecat.org/resources/018132452787-ngbe"},"thuecat:gastro":[{"@type":"thuecat:GastroPoi","@value":"thuecat:BarEnumMem"},{"@type":"thuecat:GastroPoi","@value":"thuecat:Restaurant"}],"thuecat:sanitation":{"@type":"thuecat:Sanitation","@value":"thuecat:ZeroSanitation"}}]} diff --git a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/508431710173-wwne.json b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/508431710173-wwne.json new file mode 100644 index 0000000..722467e --- /dev/null +++ b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/508431710173-wwne.json @@ -0,0 +1,238 @@ +{ + "@context": { + "cdb": "https://thuecat.org/ontology/cdb/1.0/", + "dachkg": "https://thuecat.org/ontology/dachkg/1.0/", + "dbo": "http://dbpedia.org/ontology/", + "dsv": "http://ontologies.sti-innsbruck.at/dsv/", + "epapp": "https://thuecat.org/ontology/epapp/1.0/", + "foaf": "http://xmlns.com/foaf/0.1/", + "owl": "http://www.w3.org/2002/07/owl#", + "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", + "rdfs": "http://www.w3.org/2000/01/rdf-schema#", + "schema": "http://schema.org/", + "sh": "http://www.w3.org/ns/shacl#", + "thuecat": "https://thuecat.org/ontology/thuecat/1.0/", + "ttgds": "https://thuecat.org/ontology/ttgds/1.0/", + "xsd": "http://www.w3.org/2001/XMLSchema#" + }, + "@graph": [ + { + "@id": "https://thuecat.org/resources/508431710173-wwne", + "@type": [ + "schema:Place", + "schema:Organization", + "schema:LocalBusiness", + "schema:Thing", + "schema:TouristAttraction", + "ttgds:OtherInfraStructure", + "thuecat:OtherPOI", + "thuecat:StrollingMile" + ], + "schema:address": { + "@id": "genid-443f86d2acdc469dad4b3588d31d0c49-b0", + "@type": [ + "schema:Intangible", + "schema:PostalAddress", + "schema:StructuredValue", + "schema:Thing", + "schema:ContactPoint" + ], + "schema:addressCountry": { + "@type": "thuecat:AddressCountry", + "@value": "thuecat:Germany" + }, + "schema:addressLocality": { + "@language": "de", + "@value": "Erfurt" + }, + "schema:addressRegion": { + "@type": "thuecat:AddressFederalState", + "@value": "thuecat:Thuringia" + }, + "schema:postalCode": { + "@language": "de", + "@value": "99084" + }, + "schema:streetAddress": { + "@language": "de", + "@value": "Domplatz" + }, + "thuecat:typOfAddress": { + "@type": "thuecat:TypOfAddress", + "@value": "thuecat:HouseAddress" + } + }, + "schema:containedInPlace": { + "@id": "https://thuecat.org/resources/043064193523-jcyt" + }, + "schema:containsPlace": [ + { + "@id": "https://thuecat.org/resources/396420044896-drzt" + }, + { + "@id": "https://thuecat.org/resources/835224016581-dara" + }, + { + "@id": "https://thuecat.org/resources/363938447400-ammb" + }, + { + "@id": "https://thuecat.org/resources/146945912069-xkhb" + }, + { + "@id": "https://thuecat.org/resources/772412525329-tjkf" + }, + { + "@id": "https://thuecat.org/resources/056407295912-gtoa" + }, + { + "@id": "https://thuecat.org/resources/173676937638-bjpa" + }, + { + "@id": "https://thuecat.org/resources/133118786105-nhtp" + } + ], + "schema:description": [ + { + "@language": "de", + "@value": "Der Domplatz ist der wohl bekannteste Platz Erfurts, nicht zuletzt wegen des imposanten Ensembles aus dem Dom St. Marien und der St. Severikirche. Am Fu\u00dfe des Petersbergs und am Rand der Altstadt gelegen, bietet er viel Platz f\u00fcr allerlei Feste und Veranstaltungen. \nMontag bis Samstag findet hier au\u00dferdem der Wochenmarkt statt.\nIm Osten und im S\u00fcden des Domplatzes laden eine Vielzahl Caf\u00e9s und Restaurants zum Verweilen und Genie\u00dfen ein." + }, + { + "@language": "fr", + "@value": "Avec pour toile de fond l\u2019imposante cath\u00e9drale Notre-Dame et l\u2019\u00e9glise Saint-S\u00e9v\u00e8re, la place de la cath\u00e9drale vous attire avec ses charmants petits magasins et un large choix en terme de gastronomie.\nDes marchands de la r\u00e9gion vous proposent chaque jour, de 7 \u00e0 14h, des produits frais comme des fruits et l\u00e9gumes, de la viande et des saucisses ainsi que de nombreuses gourmandises.\n" + }, + { + "@language": "en", + "@value": "Domplatz square is only a few seconds' walk from Kettenstrasse. Set against the majestic backdrop of the cathedral and the Church of St Severus, it boasts a host of attractive boutiques and a variety of restaurants and caf\u00e9s. The square's daily market, which operates from 7am until 2pm sells fresh regional produce including fruit and vegetables, meat and sausage products and many other tasty treats.\nFrom Domplatz square, Marktstrasse - which follows the centuries-old trading route the Via Regia - leads you back towards the city centre." + }, + { + "@id": "genid-443f86d2acdc469dad4b3588d31d0c49-b1", + "@type": [ + "schema:Intangible", + "schema:Thing", + "schema:ComputerLanguage", + "thuecat:Html" + ], + "schema:value": { + "@language": "de", + "@value": "

Der Domplatz ist der wohl bekannteste Platz Erfurts, nicht zuletzt wegen des imposanten Ensembles aus dem Dom St. Marien und der St. Severikirche. Am Fu\u00dfe des Petersbergs und am Rand der Altstadt gelegen, bietet er viel Platz f\u00fcr allerlei Feste und Veranstaltungen.

Montag bis Samstag findet hier au\u00dferdem der Wochenmarkt statt.

Im Osten und im S\u00fcden des Domplatzes laden eine Vielzahl Caf\u00e9s und Restaurants zum Verweilen und Genie\u00dfen ein.

" + } + }, + { + "@id": "genid-443f86d2acdc469dad4b3588d31d0c49-b2", + "@type": [ + "schema:Intangible", + "schema:Thing", + "schema:ComputerLanguage", + "thuecat:Html" + ], + "schema:value": { + "@language": "fr", + "@value": "

Avec pour toile de fond l\u2019imposante cath\u00e9drale Notre-Dame et l\u2019\u00e9glise Saint-S\u00e9v\u00e8re, la place de la cath\u00e9drale vous attire avec ses charmants petits magasins et un large choix en terme de gastronomie.

Des marchands de la r\u00e9gion vous proposent chaque jour, de 7 \u00e0 14h, des produits frais comme des fruits et l\u00e9gumes, de la viande et des saucisses ainsi que de nombreuses gourmandises.

" + } + }, + { + "@id": "genid-443f86d2acdc469dad4b3588d31d0c49-b3", + "@type": [ + "schema:Intangible", + "schema:Thing", + "schema:ComputerLanguage", + "thuecat:Html" + ], + "schema:value": { + "@language": "en", + "@value": "

Domplatz square is only a few seconds' walk from Kettenstrasse. Set against the majestic backdrop of the cathedral and the Church of St Severus, it boasts a host of attractive boutiques and a variety of restaurants and caf\u00e9s. The square's daily market, which operates from 7am until 2pm sells fresh regional produce including fruit and vegetables, meat and sausage products and many other tasty treats.

From Domplatz square, Marktstrasse - which follows the centuries-old trading route the Via Regia - leads you back towards the city centre.

" + } + } + ], + "schema:geo": { + "@id": "genid-443f86d2acdc469dad4b3588d31d0c49-b4", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:GeoCoordinates" + ], + "schema:latitude": { + "@type": "schema:Number", + "@value": "50.97694183291915" + }, + "schema:longitude": { + "@type": "schema:Number", + "@value": "11.023886024076779" + } + }, + "schema:hasMap": { + "@type": "schema:URL", + "@value": "https://www.google.de/maps/@50.9767896,11.023818,18.25z" + }, + "schema:image": [ + { + "@id": "https://thuecat.org/resources/dms_5122508" + }, + { + "@id": "https://thuecat.org/resources/dms_5319718" + }, + { + "@id": "https://thuecat.org/resources/dms_5319755" + }, + { + "@id": "https://thuecat.org/resources/dms_5319964" + } + ], + "schema:name": [ + { + "@language": "de", + "@value": "Domplatz Erfurt" + }, + { + "@language": "fr", + "@value": "Place de la cath\u00e9drale et rue commer\u00e7ante" + }, + { + "@language": "en", + "@value": "Domplatz (Cathedral Square)" + } + ], + "schema:paymentAccepted": { + "@language": "de", + "@value": "Unterscheidet sich je nach Gesch\u00e4ft." + }, + "schema:petsAllowed": { + "@type": "schema:Boolean", + "@value": "true" + }, + "schema:photo": { + "@id": "https://thuecat.org/resources/dms_5319718" + }, + "schema:smokingAllowed": { + "@type": "schema:Boolean", + "@value": "true" + }, + "thuecat:contentResponsible": { + "@id": "https://thuecat.org/resources/018132452787-ngbe" + }, + "thuecat:gastro": [ + { + "@type": "thuecat:GastroPoi", + "@value": "thuecat:TakeawayShop" + }, + { + "@type": "thuecat:GastroPoi", + "@value": "thuecat:Cafe" + }, + { + "@type": "thuecat:GastroPoi", + "@value": "thuecat:BarEnumMem" + }, + { + "@type": "thuecat:GastroPoi", + "@value": "thuecat:Restaurant" + } + ], + "thuecat:sanitation": { + "@type": "thuecat:Sanitation", + "@value": "thuecat:Toilets" + } + } + ] +} diff --git a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/508431710173-wwne/GET_8a1f3581a2447dd37e646da1707ad9e7.txt b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/508431710173-wwne/GET_8a1f3581a2447dd37e646da1707ad9e7.txt deleted file mode 100644 index b5b2b51..0000000 --- a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/508431710173-wwne/GET_8a1f3581a2447dd37e646da1707ad9e7.txt +++ /dev/null @@ -1,19 +0,0 @@ -HTTP/1.1 200 OK -Date: Wed, 17 Feb 2021 08:04:06 GMT -Content-Type: application/ld+json; charset=utf-8 -Content-Length: 11716 -Connection: keep-alive -Set-Cookie: ahSession=06f1bc392b6485385a5ad291337e404c45d21e40;path=/;expires=Sat, 20 Mar 2021 08:04:05 GMT;httpOnly=true; -Access-Control-Allow-Methods: HEAD, GET, POST, DELETE, OPTIONS -Access-Control-Allow-Headers: Authorization, Content-Type -Strict-Transport-Security: max-age=15724800; includeSubDomains -Access-Control-Allow-Credentials: true -X-Frame-Options: deny -X-XSS-Protection: 1; mode=block -X-Content-Type-Options: nosniff -Referrer-Policy: same-origin -Feature-Policy: microphone 'none'; camera 'none'; payment 'none' -Content-Security-Policy: default-src 'self'; script-src 'self' 'sha256-xfTbtWk8kVI65iLJs8LB3lWf2g0g10DS71pDdoutFHc='; style-src 'self' 'unsafe-inline' https://stackpath.bootstrapcdn.com; img-src 'self' data: blob: * -Access-Control-Allow-Origin: https://cdb.thuecat.org - -{"@context":{"schema":"http://schema.org/","dbo":"http://dbpedia.org/ontology/","dsv":"http://ontologies.sti-innsbruck.at/dsv/","foaf":"http://xmlns.com/foaf/0.1/","owl":"http://www.w3.org/2002/07/owl#","rdf":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","rdfs":"http://www.w3.org/2000/01/rdf-schema#","sh":"http://www.w3.org/ns/shacl#","xsd":"http://www.w3.org/2001/XMLSchema#","ttgds":"https://thuecat.org/ontology/ttgds/1.0/","cdb":"https://thuecat.org/ontology/cdb/1.0/","dachkg":"https://thuecat.org/ontology/dachkg/1.0/","thuecat":"https://thuecat.org/ontology/thuecat/1.0/","epapp":"https://thuecat.org/ontology/epapp/1.0/"},"@graph":[{"@id":"https://thuecat.org/resources/508431710173-wwne","@type":["schema:Place","schema:Organization","schema:LocalBusiness","schema:Thing","schema:TouristAttraction","ttgds:OtherInfraStructure","thuecat:OtherPOI","thuecat:StrollingMile"],"schema:description":[{"@language":"de","@value":"Der Domplatz ist der wohl bekannteste Platz Erfurts, nicht zuletzt wegen des imposanten Ensembles aus dem Dom St. Marien und der St. Severikirche. Am Fuße des Petersbergs und am Rand der Altstadt gelegen, bietet er viel Platz für allerlei Feste und Veranstaltungen. \nMontag bis Samstag findet hier außerdem der Wochenmarkt statt.\nIm Osten und im Süden des Domplatzes laden eine Vielzahl Cafés und Restaurants zum Verweilen und Genießen ein."},{"@language":"fr","@value":"Avec pour toile de fond l’imposante cathédrale Notre-Dame et l’église Saint-Sévère, la place de la cathédrale vous attire avec ses charmants petits magasins et un large choix en terme de gastronomie.\nDes marchands de la région vous proposent chaque jour, de 7 à 14h, des produits frais comme des fruits et légumes, de la viande et des saucisses ainsi que de nombreuses gourmandises.\n"},{"@language":"en","@value":"Domplatz square is only a few seconds' walk from Kettenstrasse. Set against the majestic backdrop of the cathedral and the Church of St Severus, it boasts a host of attractive boutiques and a variety of restaurants and cafés. The square's daily market, which operates from 7am until 2pm sells fresh regional produce including fruit and vegetables, meat and sausage products and many other tasty treats.\nFrom Domplatz square, Marktstrasse - which follows the centuries-old trading route the Via Regia - leads you back towards the city centre."},{"@id":"genid-443f86d2acdc469dad4b3588d31d0c49-b1","@type":["schema:Intangible","schema:Thing","schema:ComputerLanguage","thuecat:Html"],"schema:value":{"@language":"de","@value":"

Der Domplatz ist der wohl bekannteste Platz Erfurts, nicht zuletzt wegen des imposanten Ensembles aus dem Dom St. Marien und der St. Severikirche. Am Fuße des Petersbergs und am Rand der Altstadt gelegen, bietet er viel Platz für allerlei Feste und Veranstaltungen.

Montag bis Samstag findet hier außerdem der Wochenmarkt statt.

Im Osten und im Süden des Domplatzes laden eine Vielzahl Cafés und Restaurants zum Verweilen und Genießen ein.

"}},{"@id":"genid-443f86d2acdc469dad4b3588d31d0c49-b2","@type":["schema:Intangible","schema:Thing","schema:ComputerLanguage","thuecat:Html"],"schema:value":{"@language":"fr","@value":"

Avec pour toile de fond l’imposante cathédrale Notre-Dame et l’église Saint-Sévère, la place de la cathédrale vous attire avec ses charmants petits magasins et un large choix en terme de gastronomie.

Des marchands de la région vous proposent chaque jour, de 7 à 14h, des produits frais comme des fruits et légumes, de la viande et des saucisses ainsi que de nombreuses gourmandises.

"}},{"@id":"genid-443f86d2acdc469dad4b3588d31d0c49-b3","@type":["schema:Intangible","schema:Thing","schema:ComputerLanguage","thuecat:Html"],"schema:value":{"@language":"en","@value":"

Domplatz square is only a few seconds' walk from Kettenstrasse. Set against the majestic backdrop of the cathedral and the Church of St Severus, it boasts a host of attractive boutiques and a variety of restaurants and cafés. The square's daily market, which operates from 7am until 2pm sells fresh regional produce including fruit and vegetables, meat and sausage products and many other tasty treats.

From Domplatz square, Marktstrasse - which follows the centuries-old trading route the Via Regia - leads you back towards the city centre.

"}}],"schema:name":[{"@language":"de","@value":"Domplatz Erfurt"},{"@language":"fr","@value":"Place de la cathédrale et rue commerçante"},{"@language":"en","@value":"Domplatz (Cathedral Square)"}],"schema:containedInPlace":{"@id":"https://thuecat.org/resources/043064193523-jcyt"},"schema:containsPlace":[{"@id":"https://thuecat.org/resources/396420044896-drzt"},{"@id":"https://thuecat.org/resources/835224016581-dara"},{"@id":"https://thuecat.org/resources/363938447400-ammb"},{"@id":"https://thuecat.org/resources/146945912069-xkhb"},{"@id":"https://thuecat.org/resources/772412525329-tjkf"},{"@id":"https://thuecat.org/resources/056407295912-gtoa"},{"@id":"https://thuecat.org/resources/173676937638-bjpa"},{"@id":"https://thuecat.org/resources/133118786105-nhtp"}],"schema:photo":{"@id":"https://thuecat.org/resources/dms_5319718"},"schema:image":[{"@id":"https://thuecat.org/resources/dms_5122508"},{"@id":"https://thuecat.org/resources/dms_5319718"},{"@id":"https://thuecat.org/resources/dms_5319755"},{"@id":"https://thuecat.org/resources/dms_5319964"}],"schema:petsAllowed":{"@type":"schema:Boolean","@value":"true"},"schema:hasMap":{"@type":"schema:URL","@value":"https://www.google.de/maps/@50.9767896,11.023818,18.25z"},"schema:geo":{"@id":"genid-443f86d2acdc469dad4b3588d31d0c49-b4","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:GeoCoordinates"],"schema:longitude":{"@type":"schema:Number","@value":"11.023886024076779"},"schema:latitude":{"@type":"schema:Number","@value":"50.97694183291915"}},"schema:smokingAllowed":{"@type":"schema:Boolean","@value":"true"},"schema:paymentAccepted":{"@language":"de","@value":"Unterscheidet sich je nach Geschäft."},"schema:address":{"@id":"genid-443f86d2acdc469dad4b3588d31d0c49-b0","@type":["schema:Intangible","schema:PostalAddress","schema:StructuredValue","schema:Thing","schema:ContactPoint"],"schema:addressLocality":{"@language":"de","@value":"Erfurt"},"schema:addressCountry":{"@type":"thuecat:AddressCountry","@value":"thuecat:Germany"},"schema:postalCode":{"@language":"de","@value":"99084"},"schema:addressRegion":{"@type":"thuecat:AddressFederalState","@value":"thuecat:Thuringia"},"schema:streetAddress":{"@language":"de","@value":"Domplatz"},"thuecat:typOfAddress":{"@type":"thuecat:TypOfAddress","@value":"thuecat:HouseAddress"}},"thuecat:contentResponsible":{"@id":"https://thuecat.org/resources/018132452787-ngbe"},"thuecat:gastro":[{"@type":"thuecat:GastroPoi","@value":"thuecat:TakeawayShop"},{"@type":"thuecat:GastroPoi","@value":"thuecat:Cafe"},{"@type":"thuecat:GastroPoi","@value":"thuecat:BarEnumMem"},{"@type":"thuecat:GastroPoi","@value":"thuecat:Restaurant"}],"thuecat:sanitation":{"@type":"thuecat:Sanitation","@value":"thuecat:Toilets"}}]} diff --git a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/573211638937-gmqb.json b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/573211638937-gmqb.json new file mode 100644 index 0000000..eaf3108 --- /dev/null +++ b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/573211638937-gmqb.json @@ -0,0 +1,32 @@ +{ + "@context": { + "cdb": "https://thuecat.org/ontology/cdb/1.0/", + "dachkg": "https://thuecat.org/ontology/dachkg/1.0/", + "dbo": "http://dbpedia.org/ontology/", + "dsv": "http://ontologies.sti-innsbruck.at/dsv/", + "epapp": "https://thuecat.org/ontology/epapp/1.0/", + "foaf": "http://xmlns.com/foaf/0.1/", + "owl": "http://www.w3.org/2002/07/owl#", + "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", + "rdfs": "http://www.w3.org/2000/01/rdf-schema#", + "schema": "http://schema.org/", + "sh": "http://www.w3.org/ns/shacl#", + "thuecat": "https://thuecat.org/ontology/thuecat/1.0/", + "ttgds": "https://thuecat.org/ontology/ttgds/1.0/", + "xsd": "http://www.w3.org/2001/XMLSchema#" + }, + "@graph": [ + { + "@id": "https://thuecat.org/resources/573211638937-gmqb", + "@type": [], + "schema:containsPlace": [ + { + "@id": "https://thuecat.org/resources/932209179057-xqhd" + }, + { + "@id": "https://thuecat.org/resources/427978371125-hekp" + } + ] + } + ] +} diff --git a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/573211638937-gmqb/GET_54e220a05e132d4644a58f33c065152d.txt b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/573211638937-gmqb/GET_54e220a05e132d4644a58f33c065152d.txt deleted file mode 100644 index 55b2693..0000000 --- a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/573211638937-gmqb/GET_54e220a05e132d4644a58f33c065152d.txt +++ /dev/null @@ -1,19 +0,0 @@ -HTTP/1.1 200 OK -Date: Wed, 17 Feb 2021 08:04:06 GMT -Content-Type: application/ld+json; charset=utf-8 -Content-Length: 11716 -Connection: keep-alive -Set-Cookie: ahSession=06f1bc392b6485385a5ad291337e404c45d21e40;path=/;expires=Sat, 20 Mar 2021 08:04:05 GMT;httpOnly=true; -Access-Control-Allow-Methods: HEAD, GET, POST, DELETE, OPTIONS -Access-Control-Allow-Headers: Authorization, Content-Type -Strict-Transport-Security: max-age=15724800; includeSubDomains -Access-Control-Allow-Credentials: true -X-Frame-Options: deny -X-XSS-Protection: 1; mode=block -X-Content-Type-Options: nosniff -Referrer-Policy: same-origin -Feature-Policy: microphone 'none'; camera 'none'; payment 'none' -Content-Security-Policy: default-src 'self'; script-src 'self' 'sha256-xfTbtWk8kVI65iLJs8LB3lWf2g0g10DS71pDdoutFHc='; style-src 'self' 'unsafe-inline' https://stackpath.bootstrapcdn.com; img-src 'self' data: blob: * -Access-Control-Allow-Origin: https://cdb.thuecat.org - -{"@context":{"schema":"http://schema.org/","dbo":"http://dbpedia.org/ontology/","dsv":"http://ontologies.sti-innsbruck.at/dsv/","foaf":"http://xmlns.com/foaf/0.1/","owl":"http://www.w3.org/2002/07/owl#","rdf":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","rdfs":"http://www.w3.org/2000/01/rdf-schema#","sh":"http://www.w3.org/ns/shacl#","xsd":"http://www.w3.org/2001/XMLSchema#","ttgds":"https://thuecat.org/ontology/ttgds/1.0/","cdb":"https://thuecat.org/ontology/cdb/1.0/","dachkg":"https://thuecat.org/ontology/dachkg/1.0/","thuecat":"https://thuecat.org/ontology/thuecat/1.0/","epapp":"https://thuecat.org/ontology/epapp/1.0/"},"@graph":[{"@id":"https://thuecat.org/resources/573211638937-gmqb","@type":[],"schema:containsPlace":[{"@id":"https://thuecat.org/resources/932209179057-xqhd"},{"@id":"https://thuecat.org/resources/427978371125-hekp"}]}]} diff --git a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/835224016581-dara.json b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/835224016581-dara.json new file mode 100644 index 0000000..b459d18 --- /dev/null +++ b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/835224016581-dara.json @@ -0,0 +1,512 @@ +{ + "@context": { + "cdb": "https://thuecat.org/ontology/cdb/1.0/", + "dachkg": "https://thuecat.org/ontology/dachkg/1.0/", + "dbo": "http://dbpedia.org/ontology/", + "dsv": "http://ontologies.sti-innsbruck.at/dsv/", + "foaf": "http://xmlns.com/foaf/0.1/", + "owl": "http://www.w3.org/2002/07/owl#", + "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", + "rdfs": "http://www.w3.org/2000/01/rdf-schema#", + "schema": "http://schema.org/", + "sh": "http://www.w3.org/ns/shacl#", + "thuecat": "https://thuecat.org/ontology/thuecat/1.0/", + "ttgds": "https://thuecat.org/ontology/ttgds/1.0/", + "xsd": "http://www.w3.org/2001/XMLSchema#" + }, + "@graph": [ + { + "@id": "https://thuecat.org/resources/835224016581-dara", + "@type": [ + "schema:Place", + "schema:Thing", + "schema:TouristAttraction", + "ttgds:PointOfInterest", + "thuecat:Building", + "thuecat:ReligiousBuilding", + "thuecat:Cathedral", + "thuecat:CatholicChurch", + "thuecat:Dome" + ], + "schema:address": { + "@id": "genid-7bb7d92bd6624bdf84634c86e8acdbb4-b0", + "@type": [ + "schema:Intangible", + "schema:PostalAddress", + "schema:StructuredValue", + "schema:Thing", + "schema:ContactPoint" + ], + "schema:addressCountry": { + "@type": "thuecat:AddressCountry", + "@value": "thuecat:Germany" + }, + "schema:addressLocality": { + "@language": "de", + "@value": "Erfurt" + }, + "schema:addressRegion": { + "@type": "thuecat:AddressFederalState", + "@value": "thuecat:Thuringia" + }, + "schema:email": { + "@language": "de", + "@value": "dominformation@domberg-erfurt.de" + }, + "schema:postalCode": { + "@language": "de", + "@value": "99084" + }, + "schema:streetAddress": { + "@language": "de", + "@value": "Domstufen 1" + }, + "schema:telephone": { + "@language": "de", + "@value": "+49 361 6461265" + }, + "thuecat:typOfAddress": { + "@type": "thuecat:TypOfAddress", + "@value": "thuecat:HouseAddress" + } + }, + "schema:audience": [ + { + "@id": "https://thuecat.org/resources/290287712606-zkwq" + }, + { + "@id": "https://thuecat.org/resources/631158796785-rmet" + }, + { + "@id": "https://thuecat.org/resources/312868368592-wnce" + }, + { + "@id": "https://thuecat.org/resources/301753337945-akzy" + }, + { + "@id": "https://thuecat.org/resources/304061111979-rmed" + }, + { + "@id": "https://thuecat.org/resources/668239314161-keen" + } + ], + "schema:availableLanguage": [ + { + "@type": "thuecat:Language", + "@value": "thuecat:German" + }, + { + "@type": "thuecat:Language", + "@value": "thuecat:English" + } + ], + "schema:containedInPlace": [ + { + "@id": "https://thuecat.org/resources/043064193523-jcyt" + }, + { + "@id": "https://thuecat.org/resources/573211638937-gmqb" + }, + { + "@id": "https://thuecat.org/resources/508431710173-wwne" + } + ], + "schema:description": [ + { + "@language": "en", + "@value": "The late Gothic cathedral with its high-Gothic choir and Romanesque tower replaced the church built on this site for Bishop Boniface in 742. The central tower houses the \"Gloriosa\", the world\u2019s largest medieval free-swinging bell. " + }, + { + "@language": "de", + "@value": "\u00dcber eine 70-stufige Freitreppe gelangt man vom Domplatz auf den Domberg mit seinen beiden ehemaligen Stiftskirchen. Der Dom, mit hochgotischem Chor, romanischem Turmbereich und sp\u00e4tgotischer Westhalle, ist Nachfolger des 724 von Rom veranlassten Sakralbaus. Er war die Hauptkirche des 742 von Bischof Bonifatius gegr\u00fcndeten Bistums Erfurt und w\u00e4hrend des Mittelalters bis in das fr\u00fche 19. Jahrhundert Sitz des Collegiatstifts St. Marien. 1507 erhielt Martin Luther hier die Priesterweihe.\nDer urspr\u00fcnglich romanische Kirchenbau wurde in der Zeit der Gotik entscheidend umgebaut. Besonders sehenswert sind die gotischen Chorfenster, das umf\u00e4ngliche Chorgest\u00fchl (14. Jhd.) sowie die romanischen Skulpturen einer thronenden Madonna und eines monumentalen Kerzentr\u00e4gers im Innenraum. Ber\u00fchmt ist er auch wegen der \u201eGloriosa\u201c, der mit 2,56 m Durchmesser gr\u00f6\u00dften freischwingenden mittelalterlichen Glocke der Welt.\nDas Ensemble von Dom und Severikirche bildet eine imposante Kulisse f\u00fcr die j\u00e4hrlich im Sommer stattfindenden DomStufen-Festspiele." + }, + { + "@id": "genid-7bb7d92bd6624bdf84634c86e8acdbb4-b1", + "@type": [ + "thuecat:Html" + ], + "schema:value": { + "@language": "de", + "@value": "\u00dcber eine 70-stufige Freitreppe gelangt man vom Domplatz auf den Domberg mit seinen beiden ehemaligen Stiftskirchen. Der Dom, mit hochgotischem Chor, romanischem Turmbereich und sp\u00e4tgotischer Westhalle, ist Nachfolger des 724 von Rom veranlassten Sakralbaus. Er war die Hauptkirche des 742 von Bischof Bonifatius gegr\u00fcndeten Bistums Erfurt und w\u00e4hrend des Mittelalters bis in das fr\u00fche 19. Jahrhundert Sitz des Collegiatstifts St. Marien. 1507 erhielt Martin Luther hier die Priesterweihe.\n\nDer urspr\u00fcnglich romanische Kirchenbau wurde in der Zeit der Gotik entscheidend umgebaut. Besonders sehenswert sind die gotischen Chorfenster, das umf\u00e4ngliche Chorgest\u00fchl (14. Jhd.) sowie die romanischen Skulpturen einer thronenden Madonna und eines monumentalen Kerzentr\u00e4gers im Innenraum. Ber\u00fchmt ist er auch wegen der \u201eGloriosa\u201c, der mit 2,56 m Durchmesser gr\u00f6\u00dften freischwingenden mittelalterlichen Glocke der Welt.\n\nDas Ensemble von Dom und Severikirche bildet eine imposante Kulisse f\u00fcr die j\u00e4hrlich im Sommer stattfindenden DomStufen-Festspiele." + } + }, + { + "@id": "genid-7bb7d92bd6624bdf84634c86e8acdbb4-b2", + "@type": [ + "thuecat:Html" + ], + "schema:value": { + "@language": "en", + "@value": "The late Gothic cathedral with its high-Gothic choir and Romanesque tower replaced the church built on this site for Bishop Boniface in 742. The central tower houses the \"Gloriosa\", the world\u2019s largest medieval free-swinging bell. " + } + } + ], + "schema:event": { + "@id": "https://thuecat.org/resources/877394006549-htcm" + }, + "schema:geo": { + "@id": "genid-7bb7d92bd6624bdf84634c86e8acdbb4-b3", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:GeoCoordinates" + ], + "schema:latitude": { + "@type": "schema:Number", + "@value": "50.975955358589545" + }, + "schema:longitude": { + "@type": "schema:Number", + "@value": "11.023667024961856" + } + }, + "schema:hasMap": { + "@type": "schema:URL", + "@value": "https://www.google.de/maps/place/Erfurter+Dom/@50.9759889,11.0202592,995m/data=!3m1!1e3!4m5!3m4!1s0x47a472947dc34709:0xc571fc7f144f9dd5!8m2!3d50.9758057!4d11.0232903" + }, + "schema:image": [ + { + "@id": "https://thuecat.org/resources/dms_5713563" + }, + { + "@id": "https://thuecat.org/resources/dms_5159186" + }, + { + "@id": "https://thuecat.org/resources/dms_5159216" + } + ], + "schema:isAccessibleForFree": { + "@type": "schema:Boolean", + "@value": "true" + }, + "schema:name": [ + { + "@language": "de", + "@value": "Dom St. Marien" + }, + { + "@language": "en", + "@value": "Cathedral of St. Mary" + } + ], + "schema:openingHoursSpecification": [ + { + "@id": "genid-7bb7d92bd6624bdf84634c86e8acdbb4-b4", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:OpeningHoursSpecification" + ], + "schema:closes": { + "@type": "schema:Time", + "@value": "18:00:00" + }, + "schema:dayOfWeek": [ + { + "@type": "schema:DayOfWeek", + "@value": "schema:Saturday" + }, + { + "@type": "schema:DayOfWeek", + "@value": "schema:Friday" + }, + { + "@type": "schema:DayOfWeek", + "@value": "schema:Thursday" + }, + { + "@type": "schema:DayOfWeek", + "@value": "schema:Tuesday" + }, + { + "@type": "schema:DayOfWeek", + "@value": "schema:Monday" + }, + { + "@type": "schema:DayOfWeek", + "@value": "schema:Wednesday" + } + ], + "schema:opens": { + "@type": "schema:Time", + "@value": "09:30:00" + }, + "schema:validFrom": { + "@type": "schema:Date", + "@value": "2021-05-01" + }, + "schema:validThrough": { + "@type": "schema:Date", + "@value": "2021-10-31" + } + }, + { + "@id": "genid-7bb7d92bd6624bdf84634c86e8acdbb4-b5", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:OpeningHoursSpecification" + ], + "schema:closes": { + "@type": "schema:Time", + "@value": "18:00:00" + }, + "schema:dayOfWeek": { + "@type": "schema:DayOfWeek", + "@value": "schema:Sunday" + }, + "schema:opens": { + "@type": "schema:Time", + "@value": "13:00:00" + }, + "schema:validFrom": { + "@type": "schema:Date", + "@value": "2021-05-01" + }, + "schema:validThrough": { + "@type": "schema:Date", + "@value": "2021-10-31" + } + }, + { + "@id": "genid-7bb7d92bd6624bdf84634c86e8acdbb4-b6", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:OpeningHoursSpecification" + ], + "schema:closes": { + "@type": "schema:Time", + "@value": "17:00:00" + }, + "schema:dayOfWeek": [ + { + "@type": "schema:DayOfWeek", + "@value": "schema:Saturday" + }, + { + "@type": "schema:DayOfWeek", + "@value": "schema:Friday" + }, + { + "@type": "schema:DayOfWeek", + "@value": "schema:Thursday" + }, + { + "@type": "schema:DayOfWeek", + "@value": "schema:Tuesday" + }, + { + "@type": "schema:DayOfWeek", + "@value": "schema:Monday" + }, + { + "@type": "schema:DayOfWeek", + "@value": "schema:Wednesday" + } + ], + "schema:opens": { + "@type": "schema:Time", + "@value": "09:30:00" + }, + "schema:validFrom": { + "@type": "schema:Date", + "@value": "2021-11-01" + }, + "schema:validThrough": { + "@type": "schema:Date", + "@value": "2022-04-30" + } + }, + { + "@id": "genid-7bb7d92bd6624bdf84634c86e8acdbb4-b7", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:OpeningHoursSpecification" + ], + "schema:closes": { + "@type": "schema:Time", + "@value": "17:00:00" + }, + "schema:dayOfWeek": { + "@type": "schema:DayOfWeek", + "@value": "schema:Sunday" + }, + "schema:opens": { + "@type": "schema:Time", + "@value": "13:00:00" + }, + "schema:validFrom": { + "@type": "schema:Date", + "@value": "2021-11-01" + }, + "schema:validThrough": { + "@type": "schema:Date", + "@value": "2022-04-30" + } + } + ], + "schema:petsAllowed": { + "@type": "schema:Boolean", + "@value": "false" + }, + "schema:photo": { + "@id": "https://thuecat.org/resources/dms_5159216" + }, + "schema:publicAccess": { + "@type": "schema:Boolean", + "@value": "true" + }, + "schema:sameAs": [ + { + "@type": "xsd:string", + "@value": "https://d-nb.info/gnd/4199339-1" + }, + { + "@type": "schema:URL", + "@value": "https://www.outdooractive.com/de/51497768" + } + ], + "schema:smokingAllowed": { + "@type": "schema:Boolean", + "@value": "false" + }, + "schema:subjectOf": [ + { + "@id": "https://thuecat.org/resources/dms_5301198" + }, + { + "@id": "https://thuecat.org/resources/dms_5301226" + }, + { + "@id": "https://thuecat.org/resources/dms_5301252" + }, + { + "@id": "https://thuecat.org/resources/dms_5301333" + }, + { + "@id": "https://thuecat.org/resources/dms_5301367" + }, + { + "@id": "https://thuecat.org/resources/dms_5301494" + }, + { + "@id": "https://thuecat.org/resources/dms_5301396" + }, + { + "@id": "https://thuecat.org/resources/dms_5301527" + }, + { + "@id": "https://thuecat.org/resources/dms_5301426" + }, + { + "@id": "https://thuecat.org/resources/dms_5301462" + } + ], + "schema:url": { + "@type": "schema:URL", + "@value": "http://www.dom-erfurt.de" + }, + "thuecat:architecturalStyle": { + "@type": "thuecat:ArchitecturalStyle", + "@value": "thuecat:GothicArt" + }, + "thuecat:contentResponsible": { + "@id": "https://thuecat.org/resources/018132452787-ngbe" + }, + "thuecat:digitalOffer": { + "@type": "thuecat:DigitalOffer", + "@value": "thuecat:AugmentedReality" + }, + "thuecat:distanceToPublicTransport": { + "@id": "genid-7bb7d92bd6624bdf84634c86e8acdbb4-b8", + "@type": [ + "schema:Intangible", + "schema:QuantitativeValue", + "schema:StructuredValue", + "schema:Thing" + ], + "schema:unitCode": { + "@type": "thuecat:Unit", + "@value": "thuecat:MTR" + }, + "schema:value": { + "@type": "schema:Number", + "@value": "350" + } + }, + "thuecat:entrance": { + "@type": "thuecat:Entrance", + "@value": "thuecat:IndoorActivities" + }, + "thuecat:gastro": { + "@type": "thuecat:GastroPoi", + "@value": "thuecat:ZeroGastronomy" + }, + "thuecat:guidedTour": [ + { + "@type": "thuecat:EnumGuidedTour", + "@value": "thuecat:GuidedTourOnlyWithRegistration" + }, + { + "@type": "thuecat:EnumGuidedTour", + "@value": "thuecat:GuidedTourRegistrationNotRequired" + } + ], + "thuecat:isRuin": { + "@type": "schema:Boolean", + "@value": "false" + }, + "thuecat:monumentEnum": { + "@type": "thuecat:MonumentEnum", + "@value": "thuecat:ArchitecturalMonumentSingle" + }, + "thuecat:otherService": [ + { + "@type": "thuecat:OtherService", + "@value": "thuecat:SeatingPossibilitiesRestArea" + }, + { + "@type": "thuecat:OtherService", + "@value": "thuecat:SouvenirShop" + } + ], + "thuecat:parkingFacilityNearBy": { + "@id": "https://thuecat.org/resources/396420044896-drzt" + }, + "thuecat:photography": { + "@language": "de", + "@value": "Fotogenehmigung f\u00fcr innen" + }, + "thuecat:sanitation": [ + { + "@type": "thuecat:Sanitation", + "@value": "thuecat:Toilets" + }, + { + "@type": "thuecat:Sanitation", + "@value": "thuecat:DisabledToilets" + } + ], + "thuecat:trafficInfrastructure": [ + { + "@type": "thuecat:TrafficInfrastructure", + "@value": "thuecat:BicycleLockersEnumMem" + }, + { + "@type": "thuecat:TrafficInfrastructure", + "@value": "thuecat:BusParkCoachParkEnumMem" + } + ], + "thuecat:whoWasHere": { + "@id": "https://thuecat.org/resources/901716982561-qqcn" + } + } + ] +} diff --git a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/835224016581-dara/GET_ad20c0db0ea2cf3000ca2738f00dd421.txt b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/835224016581-dara/GET_ad20c0db0ea2cf3000ca2738f00dd421.txt deleted file mode 100644 index 1e40590..0000000 --- a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/835224016581-dara/GET_ad20c0db0ea2cf3000ca2738f00dd421.txt +++ /dev/null @@ -1,19 +0,0 @@ -HTTP/1.1 200 OK -Date: Wed, 17 Feb 2021 08:04:06 GMT -Content-Type: application/ld+json; charset=utf-8 -Content-Length: 11716 -Connection: keep-alive -Set-Cookie: ahSession=06f1bc392b6485385a5ad291337e404c45d21e40;path=/;expires=Sat, 20 Mar 2021 08:04:05 GMT;httpOnly=true; -Access-Control-Allow-Methods: HEAD, GET, POST, DELETE, OPTIONS -Access-Control-Allow-Headers: Authorization, Content-Type -Strict-Transport-Security: max-age=15724800; includeSubDomains -Access-Control-Allow-Credentials: true -X-Frame-Options: deny -X-XSS-Protection: 1; mode=block -X-Content-Type-Options: nosniff -Referrer-Policy: same-origin -Feature-Policy: microphone 'none'; camera 'none'; payment 'none' -Content-Security-Policy: default-src 'self'; script-src 'self' 'sha256-xfTbtWk8kVI65iLJs8LB3lWf2g0g10DS71pDdoutFHc='; style-src 'self' 'unsafe-inline' https://stackpath.bootstrapcdn.com; img-src 'self' data: blob: * -Access-Control-Allow-Origin: https://cdb.thuecat.org - -{"@context":{"schema":"http://schema.org/","dbo":"http://dbpedia.org/ontology/","dsv":"http://ontologies.sti-innsbruck.at/dsv/","foaf":"http://xmlns.com/foaf/0.1/","owl":"http://www.w3.org/2002/07/owl#","rdf":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","rdfs":"http://www.w3.org/2000/01/rdf-schema#","sh":"http://www.w3.org/ns/shacl#","xsd":"http://www.w3.org/2001/XMLSchema#","ttgds":"https://thuecat.org/ontology/ttgds/1.0/","cdb":"https://thuecat.org/ontology/cdb/1.0/","dachkg":"https://thuecat.org/ontology/dachkg/1.0/","thuecat":"https://thuecat.org/ontology/thuecat/1.0/"},"@graph":[{"@id":"https://thuecat.org/resources/835224016581-dara","@type":["schema:Place","schema:Thing","schema:TouristAttraction","ttgds:PointOfInterest","thuecat:Building","thuecat:ReligiousBuilding","thuecat:Cathedral","thuecat:CatholicChurch","thuecat:Dome"],"schema:description":[{"@language":"en","@value":"The late Gothic cathedral with its high-Gothic choir and Romanesque tower replaced the church built on this site for Bishop Boniface in 742. The central tower houses the \"Gloriosa\", the world’s largest medieval free-swinging bell. "},{"@language":"de","@value":"Über eine 70-stufige Freitreppe gelangt man vom Domplatz auf den Domberg mit seinen beiden ehemaligen Stiftskirchen. Der Dom, mit hochgotischem Chor, romanischem Turmbereich und spätgotischer Westhalle, ist Nachfolger des 724 von Rom veranlassten Sakralbaus. Er war die Hauptkirche des 742 von Bischof Bonifatius gegründeten Bistums Erfurt und während des Mittelalters bis in das frühe 19. Jahrhundert Sitz des Collegiatstifts St. Marien. 1507 erhielt Martin Luther hier die Priesterweihe.\nDer ursprünglich romanische Kirchenbau wurde in der Zeit der Gotik entscheidend umgebaut. Besonders sehenswert sind die gotischen Chorfenster, das umfängliche Chorgestühl (14. Jhd.) sowie die romanischen Skulpturen einer thronenden Madonna und eines monumentalen Kerzenträgers im Innenraum. Berühmt ist er auch wegen der „Gloriosa“, der mit 2,56 m Durchmesser größten freischwingenden mittelalterlichen Glocke der Welt.\nDas Ensemble von Dom und Severikirche bildet eine imposante Kulisse für die jährlich im Sommer stattfindenden DomStufen-Festspiele."},{"@id":"genid-7bb7d92bd6624bdf84634c86e8acdbb4-b1","@type":["thuecat:Html"],"schema:value":{"@language":"de","@value":"Über eine 70-stufige Freitreppe gelangt man vom Domplatz auf den Domberg mit seinen beiden ehemaligen Stiftskirchen. Der Dom, mit hochgotischem Chor, romanischem Turmbereich und spätgotischer Westhalle, ist Nachfolger des 724 von Rom veranlassten Sakralbaus. Er war die Hauptkirche des 742 von Bischof Bonifatius gegründeten Bistums Erfurt und während des Mittelalters bis in das frühe 19. Jahrhundert Sitz des Collegiatstifts St. Marien. 1507 erhielt Martin Luther hier die Priesterweihe.\n\nDer ursprünglich romanische Kirchenbau wurde in der Zeit der Gotik entscheidend umgebaut. Besonders sehenswert sind die gotischen Chorfenster, das umfängliche Chorgestühl (14. Jhd.) sowie die romanischen Skulpturen einer thronenden Madonna und eines monumentalen Kerzenträgers im Innenraum. Berühmt ist er auch wegen der „Gloriosa“, der mit 2,56 m Durchmesser größten freischwingenden mittelalterlichen Glocke der Welt.\n\nDas Ensemble von Dom und Severikirche bildet eine imposante Kulisse für die jährlich im Sommer stattfindenden DomStufen-Festspiele."}},{"@id":"genid-7bb7d92bd6624bdf84634c86e8acdbb4-b2","@type":["thuecat:Html"],"schema:value":{"@language":"en","@value":"The late Gothic cathedral with its high-Gothic choir and Romanesque tower replaced the church built on this site for Bishop Boniface in 742. The central tower houses the \"Gloriosa\", the world’s largest medieval free-swinging bell. "}}],"schema:sameAs":[{"@type":"xsd:string","@value":"https://d-nb.info/gnd/4199339-1"},{"@type":"schema:URL","@value":"https://www.outdooractive.com/de/51497768"}],"schema:name":[{"@language":"de","@value":"Dom St. Marien"},{"@language":"en","@value":"Cathedral of St. Mary"}],"schema:containedInPlace":[{"@id":"https://thuecat.org/resources/043064193523-jcyt"},{"@id":"https://thuecat.org/resources/573211638937-gmqb"},{"@id":"https://thuecat.org/resources/508431710173-wwne"}],"schema:photo":{"@id":"https://thuecat.org/resources/dms_5159216"},"schema:image":[{"@id":"https://thuecat.org/resources/dms_5713563"},{"@id":"https://thuecat.org/resources/dms_5159186"},{"@id":"https://thuecat.org/resources/dms_5159216"}],"schema:audience":[{"@id":"https://thuecat.org/resources/290287712606-zkwq"},{"@id":"https://thuecat.org/resources/631158796785-rmet"},{"@id":"https://thuecat.org/resources/312868368592-wnce"},{"@id":"https://thuecat.org/resources/301753337945-akzy"},{"@id":"https://thuecat.org/resources/304061111979-rmed"},{"@id":"https://thuecat.org/resources/668239314161-keen"}],"schema:petsAllowed":{"@type":"schema:Boolean","@value":"false"},"schema:hasMap":{"@type":"schema:URL","@value":"https://www.google.de/maps/place/Erfurter+Dom/@50.9759889,11.0202592,995m/data=!3m1!1e3!4m5!3m4!1s0x47a472947dc34709:0xc571fc7f144f9dd5!8m2!3d50.9758057!4d11.0232903"},"schema:geo":{"@id":"genid-7bb7d92bd6624bdf84634c86e8acdbb4-b3","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:GeoCoordinates"],"schema:longitude":{"@type":"schema:Number","@value":"11.023667024961856"},"schema:latitude":{"@type":"schema:Number","@value":"50.975955358589545"}},"schema:openingHoursSpecification":[{"@id":"genid-7bb7d92bd6624bdf84634c86e8acdbb4-b4","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:OpeningHoursSpecification"],"schema:validFrom":{"@type":"schema:Date","@value":"2021-05-01"},"schema:dayOfWeek":[{"@type":"schema:DayOfWeek","@value":"schema:Saturday"},{"@type":"schema:DayOfWeek","@value":"schema:Friday"},{"@type":"schema:DayOfWeek","@value":"schema:Thursday"},{"@type":"schema:DayOfWeek","@value":"schema:Tuesday"},{"@type":"schema:DayOfWeek","@value":"schema:Monday"},{"@type":"schema:DayOfWeek","@value":"schema:Wednesday"}],"schema:opens":{"@type":"schema:Time","@value":"09:30:00"},"schema:validThrough":{"@type":"schema:Date","@value":"2021-10-31"},"schema:closes":{"@type":"schema:Time","@value":"18:00:00"}},{"@id":"genid-7bb7d92bd6624bdf84634c86e8acdbb4-b5","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:OpeningHoursSpecification"],"schema:validFrom":{"@type":"schema:Date","@value":"2021-05-01"},"schema:dayOfWeek":{"@type":"schema:DayOfWeek","@value":"schema:Sunday"},"schema:opens":{"@type":"schema:Time","@value":"13:00:00"},"schema:validThrough":{"@type":"schema:Date","@value":"2021-10-31"},"schema:closes":{"@type":"schema:Time","@value":"18:00:00"}},{"@id":"genid-7bb7d92bd6624bdf84634c86e8acdbb4-b6","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:OpeningHoursSpecification"],"schema:validFrom":{"@type":"schema:Date","@value":"2021-11-01"},"schema:dayOfWeek":[{"@type":"schema:DayOfWeek","@value":"schema:Saturday"},{"@type":"schema:DayOfWeek","@value":"schema:Friday"},{"@type":"schema:DayOfWeek","@value":"schema:Thursday"},{"@type":"schema:DayOfWeek","@value":"schema:Tuesday"},{"@type":"schema:DayOfWeek","@value":"schema:Monday"},{"@type":"schema:DayOfWeek","@value":"schema:Wednesday"}],"schema:opens":{"@type":"schema:Time","@value":"09:30:00"},"schema:validThrough":{"@type":"schema:Date","@value":"2022-04-30"},"schema:closes":{"@type":"schema:Time","@value":"17:00:00"}},{"@id":"genid-7bb7d92bd6624bdf84634c86e8acdbb4-b7","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:OpeningHoursSpecification"],"schema:validFrom":{"@type":"schema:Date","@value":"2021-11-01"},"schema:dayOfWeek":{"@type":"schema:DayOfWeek","@value":"schema:Sunday"},"schema:opens":{"@type":"schema:Time","@value":"13:00:00"},"schema:validThrough":{"@type":"schema:Date","@value":"2022-04-30"},"schema:closes":{"@type":"schema:Time","@value":"17:00:00"}}],"schema:isAccessibleForFree":{"@type":"schema:Boolean","@value":"true"},"schema:smokingAllowed":{"@type":"schema:Boolean","@value":"false"},"schema:event":{"@id":"https://thuecat.org/resources/877394006549-htcm"},"schema:subjectOf":[{"@id":"https://thuecat.org/resources/dms_5301198"},{"@id":"https://thuecat.org/resources/dms_5301226"},{"@id":"https://thuecat.org/resources/dms_5301252"},{"@id":"https://thuecat.org/resources/dms_5301333"},{"@id":"https://thuecat.org/resources/dms_5301367"},{"@id":"https://thuecat.org/resources/dms_5301494"},{"@id":"https://thuecat.org/resources/dms_5301396"},{"@id":"https://thuecat.org/resources/dms_5301527"},{"@id":"https://thuecat.org/resources/dms_5301426"},{"@id":"https://thuecat.org/resources/dms_5301462"}],"schema:url":{"@type":"schema:URL","@value":"http://www.dom-erfurt.de"},"schema:availableLanguage":[{"@type":"thuecat:Language","@value":"thuecat:German"},{"@type":"thuecat:Language","@value":"thuecat:English"}],"schema:publicAccess":{"@type":"schema:Boolean","@value":"true"},"schema:address":{"@id":"genid-7bb7d92bd6624bdf84634c86e8acdbb4-b0","@type":["schema:Intangible","schema:PostalAddress","schema:StructuredValue","schema:Thing","schema:ContactPoint"],"schema:addressLocality":{"@language":"de","@value":"Erfurt"},"schema:addressCountry":{"@type":"thuecat:AddressCountry","@value":"thuecat:Germany"},"schema:postalCode":{"@language":"de","@value":"99084"},"schema:addressRegion":{"@type":"thuecat:AddressFederalState","@value":"thuecat:Thuringia"},"schema:telephone":{"@language":"de","@value":"+49 361 6461265"},"schema:email":{"@language":"de","@value":"dominformation@domberg-erfurt.de"},"schema:streetAddress":{"@language":"de","@value":"Domstufen 1"},"thuecat:typOfAddress":{"@type":"thuecat:TypOfAddress","@value":"thuecat:HouseAddress"}},"thuecat:contentResponsible":{"@id":"https://thuecat.org/resources/018132452787-ngbe"},"thuecat:monumentEnum":{"@type":"thuecat:MonumentEnum","@value":"thuecat:ArchitecturalMonumentSingle"},"thuecat:whoWasHere":{"@id":"https://thuecat.org/resources/901716982561-qqcn"},"thuecat:digitalOffer":{"@type":"thuecat:DigitalOffer","@value":"thuecat:AugmentedReality"},"thuecat:entrance":{"@type":"thuecat:Entrance","@value":"thuecat:IndoorActivities"},"thuecat:gastro":{"@type":"thuecat:GastroPoi","@value":"thuecat:ZeroGastronomy"},"thuecat:guidedTour":[{"@type":"thuecat:EnumGuidedTour","@value":"thuecat:GuidedTourOnlyWithRegistration"},{"@type":"thuecat:EnumGuidedTour","@value":"thuecat:GuidedTourRegistrationNotRequired"}],"thuecat:otherService":[{"@type":"thuecat:OtherService","@value":"thuecat:SeatingPossibilitiesRestArea"},{"@type":"thuecat:OtherService","@value":"thuecat:SouvenirShop"}],"thuecat:photography":{"@language":"de","@value":"Fotogenehmigung für innen"},"thuecat:sanitation":[{"@type":"thuecat:Sanitation","@value":"thuecat:Toilets"},{"@type":"thuecat:Sanitation","@value":"thuecat:DisabledToilets"}],"thuecat:trafficInfrastructure":[{"@type":"thuecat:TrafficInfrastructure","@value":"thuecat:BicycleLockersEnumMem"},{"@type":"thuecat:TrafficInfrastructure","@value":"thuecat:BusParkCoachParkEnumMem"}],"thuecat:distanceToPublicTransport":{"@id":"genid-7bb7d92bd6624bdf84634c86e8acdbb4-b8","@type":["schema:Intangible","schema:QuantitativeValue","schema:StructuredValue","schema:Thing"],"schema:unitCode":{"@type":"thuecat:Unit","@value":"thuecat:MTR"},"schema:value":{"@type":"schema:Number","@value":"350"}},"thuecat:parkingFacilityNearBy":{"@id":"https://thuecat.org/resources/396420044896-drzt"},"thuecat:architecturalStyle":{"@type":"thuecat:ArchitecturalStyle","@value":"thuecat:GothicArt"},"thuecat:isRuin":{"@type":"schema:Boolean","@value":"false"}}]} diff --git a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/dms_134288.json b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/dms_134288.json new file mode 100644 index 0000000..00f0994 --- /dev/null +++ b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/dms_134288.json @@ -0,0 +1,351 @@ +{ + "@context": { + "cdb": "https://thuecat.org/ontology/cdb/1.0/", + "dachkg": "https://thuecat.org/ontology/dachkg/1.0/", + "dbo": "http://dbpedia.org/ontology/", + "dsv": "http://ontologies.sti-innsbruck.at/dsv/", + "foaf": "http://xmlns.com/foaf/0.1/", + "owl": "http://www.w3.org/2002/07/owl#", + "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", + "rdfs": "http://www.w3.org/2000/01/rdf-schema#", + "schema": "http://schema.org/", + "sh": "http://www.w3.org/ns/shacl#", + "thuecat": "https://thuecat.org/ontology/thuecat/1.0/", + "ttgds": "https://thuecat.org/ontology/ttgds/1.0/", + "xsd": "http://www.w3.org/2001/XMLSchema#" + }, + "@graph": [ + { + "@id": "https://thuecat.org/resources/dms_134288", + "@type": [ + "schema:CreativeWork", + "schema:MediaObject", + "schema:Thing", + "schema:ImageObject", + "http://purl.org/dc/dcmitype/Image" + ], + "schema:author": { + "@type": "xsd:string", + "@value": "Florian Trykowski" + }, + "schema:bitrate": { + "@type": "xsd:string", + "@value": "8" + }, + "schema:copyrightYear": { + "@language": "de", + "@value": "2019" + }, + "schema:description": { + "@language": "de", + "@value": "Kr\u00e4merbr\u00fccke in Erfurt" + }, + "schema:exifData": [ + { + "@id": "genid-5958021d95614a2193e3f66fdc21fad1-b55969", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "tiff:Model" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "NIKON D5" + } + }, + { + "@id": "genid-5958021d95614a2193e3f66fdc21fad1-b55970", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "exif:ExposureTime" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "0.005" + } + }, + { + "@id": "genid-5958021d95614a2193e3f66fdc21fad1-b55971", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "tiff:XResolution" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "300.0" + } + }, + { + "@id": "genid-5958021d95614a2193e3f66fdc21fad1-b55972", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "tiff:Software" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "Adobe Photoshop CS6 (Macintosh)" + } + }, + { + "@id": "genid-5958021d95614a2193e3f66fdc21fad1-b55973", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "tiff:Orientation" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "1" + } + }, + { + "@id": "genid-5958021d95614a2193e3f66fdc21fad1-b55974", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "tiff:ResolutionUnit" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "Inch" + } + }, + { + "@id": "genid-5958021d95614a2193e3f66fdc21fad1-b55975", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "tiff:SamplesPerPixel" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "3" + } + }, + { + "@id": "genid-5958021d95614a2193e3f66fdc21fad1-b55976", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "exif:IsoSpeedRatings" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "140" + } + }, + { + "@id": "genid-5958021d95614a2193e3f66fdc21fad1-b55977", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "tiff:YResolution" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "300.0" + } + }, + { + "@id": "genid-5958021d95614a2193e3f66fdc21fad1-b55978", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "tiff:Make" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "NIKON CORPORATION" + } + }, + { + "@id": "genid-5958021d95614a2193e3f66fdc21fad1-b55979", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "exif:Flash" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "false" + } + }, + { + "@id": "genid-5958021d95614a2193e3f66fdc21fad1-b55980", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "exif:FocalLength" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "50.0" + } + }, + { + "@id": "genid-5958021d95614a2193e3f66fdc21fad1-b55981", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "exif:FNumber" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "10.0" + } + }, + { + "@id": "genid-5958021d95614a2193e3f66fdc21fad1-b55982", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "exif:DateTimeOriginal" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "2019-08-16T15:09:26" + } + } + ], + "schema:height": { + "@type": "xsd:string", + "@value": "3426" + }, + "schema:identifier": { + "@type": "schema:PropertyValue", + "@value": "134288" + }, + "schema:keywords": [ + { + "@type": "xsd:string", + "@value": "Sommer" + }, + { + "@type": "xsd:string", + "@value": "Vorder- / Frontallicht" + }, + { + "@type": "xsd:string", + "@value": "St\u00e4dte und Architektur" + }, + { + "@type": "xsd:string", + "@value": "Erfurt" + } + ], + "schema:license": { + "@language": "de", + "@value": "https://creativecommons.org/publicdomain/zero/1.0/deed.de" + }, + "schema:name": { + "@language": "de", + "@value": "Erfurt-Kraemerbruecke.jpg" + }, + "schema:sameAs": { + "@type": "xsd:anyURI", + "@value": "https://wbk.thuecat.org" + }, + "schema:thumbnailUrl": { + "@type": "xsd:string", + "@value": "https://cms.thuecat.org/o/adaptive-media/image/134288/Thumbnail-300x300/image" + }, + "schema:url": { + "@type": "xsd:anyURI", + "@value": "https://cms.thuecat.org/o/adaptive-media/image/134288/Preview-1280x0/image" + }, + "schema:width": { + "@type": "xsd:string", + "@value": "5139" + }, + "thuecat:licenseAuthor": { + "@language": "de", + "@value": "https://home.ttgnet.de/ttg/projekte/10006/90136/Projektdokumente/Vergabe%20Rahmenvertrag%20Fotoproduktion" + }, + "thuecat:licenseLocation": { + "@language": "de", + "@value": "https://home.ttgnet.de/ttg/projekte/10006/90136/Projektdokumente/Fotoproduktion-Trykowski/2019%2007%20Shooting%20Erfurt%20Panoramabild%20ega%20und%20Innenstadt" + }, + "thuecat:licensePeriod": { + "@language": "de", + "@value": "" + }, + "thuecat:licensePerson": { + "@language": "de", + "@value": "https://home.ttgnet.de/ttg/projekte/10006/90136/Projektdokumente/Fotoproduktion-Trykowski/2019%2007%20Shooting%20Erfurt%20Panoramabild%20ega%20und%20Innenstadt" + } + } + ] +} diff --git a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/dms_134288/GET_a8efc4904f4ce96380b8a4fee43396eb.txt b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/dms_134288/GET_a8efc4904f4ce96380b8a4fee43396eb.txt deleted file mode 100644 index d78c2a8..0000000 --- a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/dms_134288/GET_a8efc4904f4ce96380b8a4fee43396eb.txt +++ /dev/null @@ -1,19 +0,0 @@ -HTTP/1.1 200 OK -Date: Wed, 17 Feb 2021 08:03:50 GMT -Content-Type: application/ld+json; charset=utf-8 -Content-Length: 7346 -Connection: keep-alive -Set-Cookie: ahSession=94f536c5d0713fb056832561e2c6ebe083d95749;path=/;expires=Sat, 20 Mar 2021 08:03:50 GMT;httpOnly=true; -Access-Control-Allow-Methods: HEAD, GET, POST, DELETE, OPTIONS -Access-Control-Allow-Headers: Authorization, Content-Type -Strict-Transport-Security: max-age=15724800; includeSubDomains -Access-Control-Allow-Credentials: true -X-Frame-Options: deny -X-XSS-Protection: 1; mode=block -X-Content-Type-Options: nosniff -Referrer-Policy: same-origin -Feature-Policy: microphone 'none'; camera 'none'; payment 'none' -Content-Security-Policy: default-src 'self'; script-src 'self' 'sha256-xfTbtWk8kVI65iLJs8LB3lWf2g0g10DS71pDdoutFHc='; style-src 'self' 'unsafe-inline' https://stackpath.bootstrapcdn.com; img-src 'self' data: blob: * -Access-Control-Allow-Origin: https://cdb.thuecat.org - -{"@context":{"schema":"http://schema.org/","dbo":"http://dbpedia.org/ontology/","dsv":"http://ontologies.sti-innsbruck.at/dsv/","foaf":"http://xmlns.com/foaf/0.1/","owl":"http://www.w3.org/2002/07/owl#","rdf":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","rdfs":"http://www.w3.org/2000/01/rdf-schema#","sh":"http://www.w3.org/ns/shacl#","xsd":"http://www.w3.org/2001/XMLSchema#","ttgds":"https://thuecat.org/ontology/ttgds/1.0/","cdb":"https://thuecat.org/ontology/cdb/1.0/","dachkg":"https://thuecat.org/ontology/dachkg/1.0/","thuecat":"https://thuecat.org/ontology/thuecat/1.0/"},"@graph":[{"@id":"https://thuecat.org/resources/dms_134288","@type":["schema:CreativeWork","schema:MediaObject","schema:Thing","schema:ImageObject","http://purl.org/dc/dcmitype/Image"],"schema:width":{"@type":"xsd:string","@value":"5139"},"schema:description":{"@language":"de","@value":"Krämerbrücke in Erfurt"},"schema:sameAs":{"@type":"xsd:anyURI","@value":"https://wbk.thuecat.org"},"schema:identifier":{"@type":"schema:PropertyValue","@value":"134288"},"schema:keywords":[{"@type":"xsd:string","@value":"Sommer"},{"@type":"xsd:string","@value":"Vorder- / Frontallicht"},{"@type":"xsd:string","@value":"Städte und Architektur"},{"@type":"xsd:string","@value":"Erfurt"}],"schema:name":{"@language":"de","@value":"Erfurt-Kraemerbruecke.jpg"},"schema:copyrightYear":{"@language":"de","@value":"2019"},"schema:height":{"@type":"xsd:string","@value":"3426"},"schema:bitrate":{"@type":"xsd:string","@value":"8"},"schema:exifData":[{"@id":"genid-5958021d95614a2193e3f66fdc21fad1-b55969","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"tiff:Model"},"schema:value":{"@type":"xsd:string","@value":"NIKON D5"}},{"@id":"genid-5958021d95614a2193e3f66fdc21fad1-b55970","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"exif:ExposureTime"},"schema:value":{"@type":"xsd:string","@value":"0.005"}},{"@id":"genid-5958021d95614a2193e3f66fdc21fad1-b55971","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"tiff:XResolution"},"schema:value":{"@type":"xsd:string","@value":"300.0"}},{"@id":"genid-5958021d95614a2193e3f66fdc21fad1-b55972","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"tiff:Software"},"schema:value":{"@type":"xsd:string","@value":"Adobe Photoshop CS6 (Macintosh)"}},{"@id":"genid-5958021d95614a2193e3f66fdc21fad1-b55973","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"tiff:Orientation"},"schema:value":{"@type":"xsd:string","@value":"1"}},{"@id":"genid-5958021d95614a2193e3f66fdc21fad1-b55974","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"tiff:ResolutionUnit"},"schema:value":{"@type":"xsd:string","@value":"Inch"}},{"@id":"genid-5958021d95614a2193e3f66fdc21fad1-b55975","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"tiff:SamplesPerPixel"},"schema:value":{"@type":"xsd:string","@value":"3"}},{"@id":"genid-5958021d95614a2193e3f66fdc21fad1-b55976","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"exif:IsoSpeedRatings"},"schema:value":{"@type":"xsd:string","@value":"140"}},{"@id":"genid-5958021d95614a2193e3f66fdc21fad1-b55977","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"tiff:YResolution"},"schema:value":{"@type":"xsd:string","@value":"300.0"}},{"@id":"genid-5958021d95614a2193e3f66fdc21fad1-b55978","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"tiff:Make"},"schema:value":{"@type":"xsd:string","@value":"NIKON CORPORATION"}},{"@id":"genid-5958021d95614a2193e3f66fdc21fad1-b55979","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"exif:Flash"},"schema:value":{"@type":"xsd:string","@value":"false"}},{"@id":"genid-5958021d95614a2193e3f66fdc21fad1-b55980","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"exif:FocalLength"},"schema:value":{"@type":"xsd:string","@value":"50.0"}},{"@id":"genid-5958021d95614a2193e3f66fdc21fad1-b55981","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"exif:FNumber"},"schema:value":{"@type":"xsd:string","@value":"10.0"}},{"@id":"genid-5958021d95614a2193e3f66fdc21fad1-b55982","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"exif:DateTimeOriginal"},"schema:value":{"@type":"xsd:string","@value":"2019-08-16T15:09:26"}}],"schema:author":{"@type":"xsd:string","@value":"Florian Trykowski"},"schema:thumbnailUrl":{"@type":"xsd:string","@value":"https://cms.thuecat.org/o/adaptive-media/image/134288/Thumbnail-300x300/image"},"schema:url":{"@type":"xsd:anyURI","@value":"https://cms.thuecat.org/o/adaptive-media/image/134288/Preview-1280x0/image"},"schema:license":{"@language":"de","@value":"https://creativecommons.org/publicdomain/zero/1.0/deed.de"},"thuecat:licenseAuthor":{"@language":"de","@value":"https://home.ttgnet.de/ttg/projekte/10006/90136/Projektdokumente/Vergabe%20Rahmenvertrag%20Fotoproduktion"},"thuecat:licenseLocation":{"@language":"de","@value":"https://home.ttgnet.de/ttg/projekte/10006/90136/Projektdokumente/Fotoproduktion-Trykowski/2019%2007%20Shooting%20Erfurt%20Panoramabild%20ega%20und%20Innenstadt"},"thuecat:licensePeriod":{"@language":"de","@value":""},"thuecat:licensePerson":{"@language":"de","@value":"https://home.ttgnet.de/ttg/projekte/10006/90136/Projektdokumente/Fotoproduktion-Trykowski/2019%2007%20Shooting%20Erfurt%20Panoramabild%20ega%20und%20Innenstadt"}}]} diff --git a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/dms_134362.json b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/dms_134362.json new file mode 100644 index 0000000..ac9865f --- /dev/null +++ b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/dms_134362.json @@ -0,0 +1,351 @@ +{ + "@context": { + "cdb": "https://thuecat.org/ontology/cdb/1.0/", + "dachkg": "https://thuecat.org/ontology/dachkg/1.0/", + "dbo": "http://dbpedia.org/ontology/", + "dsv": "http://ontologies.sti-innsbruck.at/dsv/", + "foaf": "http://xmlns.com/foaf/0.1/", + "owl": "http://www.w3.org/2002/07/owl#", + "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", + "rdfs": "http://www.w3.org/2000/01/rdf-schema#", + "schema": "http://schema.org/", + "sh": "http://www.w3.org/ns/shacl#", + "thuecat": "https://thuecat.org/ontology/thuecat/1.0/", + "ttgds": "https://thuecat.org/ontology/ttgds/1.0/", + "xsd": "http://www.w3.org/2001/XMLSchema#" + }, + "@graph": [ + { + "@id": "https://thuecat.org/resources/dms_134362", + "@type": [ + "schema:CreativeWork", + "schema:MediaObject", + "schema:Thing", + "schema:ImageObject", + "http://purl.org/dc/dcmitype/Image" + ], + "schema:author": { + "@type": "xsd:string", + "@value": "Florian Trykowski" + }, + "schema:bitrate": { + "@type": "xsd:string", + "@value": "8" + }, + "schema:copyrightYear": { + "@language": "de", + "@value": "2019" + }, + "schema:description": { + "@language": "de", + "@value": "Kr\u00e4merbr\u00fccke in Erfurt" + }, + "schema:exifData": [ + { + "@id": "genid-5958021d95614a2193e3f66fdc21fad1-b178480", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "tiff:Model" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "NIKON D5" + } + }, + { + "@id": "genid-5958021d95614a2193e3f66fdc21fad1-b178481", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "exif:ExposureTime" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "0.004" + } + }, + { + "@id": "genid-5958021d95614a2193e3f66fdc21fad1-b178482", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "tiff:XResolution" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "300.0" + } + }, + { + "@id": "genid-5958021d95614a2193e3f66fdc21fad1-b178483", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "tiff:Software" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "Adobe Photoshop CS6 (Macintosh)" + } + }, + { + "@id": "genid-5958021d95614a2193e3f66fdc21fad1-b178484", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "tiff:Orientation" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "1" + } + }, + { + "@id": "genid-5958021d95614a2193e3f66fdc21fad1-b178485", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "tiff:ResolutionUnit" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "Inch" + } + }, + { + "@id": "genid-5958021d95614a2193e3f66fdc21fad1-b178486", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "tiff:SamplesPerPixel" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "3" + } + }, + { + "@id": "genid-5958021d95614a2193e3f66fdc21fad1-b178487", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "exif:IsoSpeedRatings" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "560" + } + }, + { + "@id": "genid-5958021d95614a2193e3f66fdc21fad1-b178488", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "tiff:YResolution" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "300.0" + } + }, + { + "@id": "genid-5958021d95614a2193e3f66fdc21fad1-b178489", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "tiff:Make" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "NIKON CORPORATION" + } + }, + { + "@id": "genid-5958021d95614a2193e3f66fdc21fad1-b178490", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "exif:Flash" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "false" + } + }, + { + "@id": "genid-5958021d95614a2193e3f66fdc21fad1-b178491", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "exif:FocalLength" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "14.0" + } + }, + { + "@id": "genid-5958021d95614a2193e3f66fdc21fad1-b178492", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "exif:FNumber" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "14.0" + } + }, + { + "@id": "genid-5958021d95614a2193e3f66fdc21fad1-b178493", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "exif:DateTimeOriginal" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "2019-08-16T13:52:38" + } + } + ], + "schema:height": { + "@type": "xsd:string", + "@value": "3233" + }, + "schema:identifier": { + "@type": "schema:PropertyValue", + "@value": "134362" + }, + "schema:keywords": [ + { + "@type": "xsd:string", + "@value": "Sommer" + }, + { + "@type": "xsd:string", + "@value": "Vorder- / Frontallicht" + }, + { + "@type": "xsd:string", + "@value": "St\u00e4dte und Architektur" + }, + { + "@type": "xsd:string", + "@value": "Erfurt" + } + ], + "schema:license": { + "@language": "de", + "@value": "https://creativecommons.org/publicdomain/zero/1.0/deed.de" + }, + "schema:name": { + "@language": "de", + "@value": "Erfurt-Kraemerbruecke-11.jpg" + }, + "schema:sameAs": { + "@type": "xsd:anyURI", + "@value": "https://wbk.thuecat.org" + }, + "schema:thumbnailUrl": { + "@type": "xsd:string", + "@value": "https://cms.thuecat.org/o/adaptive-media/image/134362/Thumbnail-300x300/image" + }, + "schema:url": { + "@type": "xsd:anyURI", + "@value": "https://cms.thuecat.org/o/adaptive-media/image/134362/Preview-1280x0/image" + }, + "schema:width": { + "@type": "xsd:string", + "@value": "4849" + }, + "thuecat:licenseAuthor": { + "@language": "de", + "@value": "https://home.ttgnet.de/ttg/projekte/10006/90136/Projektdokumente/Vergabe%20Rahmenvertrag%20Fotoproduktion" + }, + "thuecat:licenseLocation": { + "@language": "de", + "@value": "https://home.ttgnet.de/ttg/projekte/10006/90136/Projektdokumente/Fotoproduktion-Trykowski/2019%2007%20Shooting%20Erfurt%20Panoramabild%20ega%20und%20Innenstadt" + }, + "thuecat:licensePeriod": { + "@language": "de", + "@value": "" + }, + "thuecat:licensePerson": { + "@language": "de", + "@value": "https://home.ttgnet.de/ttg/projekte/10006/90136/Projektdokumente/Fotoproduktion-Trykowski/2019%2007%20Shooting%20Erfurt%20Panoramabild%20ega%20und%20Innenstadt" + } + } + ] +} diff --git a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/dms_134362/GET_047397c88c8cb1bb5514d4d3ef4b4839.txt b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/dms_134362/GET_047397c88c8cb1bb5514d4d3ef4b4839.txt deleted file mode 100644 index 3656fd3..0000000 --- a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/dms_134362/GET_047397c88c8cb1bb5514d4d3ef4b4839.txt +++ /dev/null @@ -1,19 +0,0 @@ -HTTP/1.1 200 OK -Date: Wed, 17 Feb 2021 08:03:50 GMT -Content-Type: application/ld+json; charset=utf-8 -Content-Length: 7366 -Connection: keep-alive -Set-Cookie: ahSession=3e3e3f03b24a3a9f7eea750ec4c9b99774e2c09e;path=/;expires=Sat, 20 Mar 2021 08:03:50 GMT;httpOnly=true; -Access-Control-Allow-Methods: HEAD, GET, POST, DELETE, OPTIONS -Access-Control-Allow-Headers: Authorization, Content-Type -Strict-Transport-Security: max-age=15724800; includeSubDomains -Access-Control-Allow-Credentials: true -X-Frame-Options: deny -X-XSS-Protection: 1; mode=block -X-Content-Type-Options: nosniff -Referrer-Policy: same-origin -Feature-Policy: microphone 'none'; camera 'none'; payment 'none' -Content-Security-Policy: default-src 'self'; script-src 'self' 'sha256-xfTbtWk8kVI65iLJs8LB3lWf2g0g10DS71pDdoutFHc='; style-src 'self' 'unsafe-inline' https://stackpath.bootstrapcdn.com; img-src 'self' data: blob: * -Access-Control-Allow-Origin: https://cdb.thuecat.org - -{"@context":{"schema":"http://schema.org/","dbo":"http://dbpedia.org/ontology/","dsv":"http://ontologies.sti-innsbruck.at/dsv/","foaf":"http://xmlns.com/foaf/0.1/","owl":"http://www.w3.org/2002/07/owl#","rdf":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","rdfs":"http://www.w3.org/2000/01/rdf-schema#","sh":"http://www.w3.org/ns/shacl#","xsd":"http://www.w3.org/2001/XMLSchema#","ttgds":"https://thuecat.org/ontology/ttgds/1.0/","cdb":"https://thuecat.org/ontology/cdb/1.0/","dachkg":"https://thuecat.org/ontology/dachkg/1.0/","thuecat":"https://thuecat.org/ontology/thuecat/1.0/"},"@graph":[{"@id":"https://thuecat.org/resources/dms_134362","@type":["schema:CreativeWork","schema:MediaObject","schema:Thing","schema:ImageObject","http://purl.org/dc/dcmitype/Image"],"schema:width":{"@type":"xsd:string","@value":"4849"},"schema:description":{"@language":"de","@value":"Krämerbrücke in Erfurt"},"schema:sameAs":{"@type":"xsd:anyURI","@value":"https://wbk.thuecat.org"},"schema:identifier":{"@type":"schema:PropertyValue","@value":"134362"},"schema:keywords":[{"@type":"xsd:string","@value":"Sommer"},{"@type":"xsd:string","@value":"Vorder- / Frontallicht"},{"@type":"xsd:string","@value":"Städte und Architektur"},{"@type":"xsd:string","@value":"Erfurt"}],"schema:name":{"@language":"de","@value":"Erfurt-Kraemerbruecke-11.jpg"},"schema:copyrightYear":{"@language":"de","@value":"2019"},"schema:height":{"@type":"xsd:string","@value":"3233"},"schema:bitrate":{"@type":"xsd:string","@value":"8"},"schema:exifData":[{"@id":"genid-5958021d95614a2193e3f66fdc21fad1-b178480","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"tiff:Model"},"schema:value":{"@type":"xsd:string","@value":"NIKON D5"}},{"@id":"genid-5958021d95614a2193e3f66fdc21fad1-b178481","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"exif:ExposureTime"},"schema:value":{"@type":"xsd:string","@value":"0.004"}},{"@id":"genid-5958021d95614a2193e3f66fdc21fad1-b178482","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"tiff:XResolution"},"schema:value":{"@type":"xsd:string","@value":"300.0"}},{"@id":"genid-5958021d95614a2193e3f66fdc21fad1-b178483","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"tiff:Software"},"schema:value":{"@type":"xsd:string","@value":"Adobe Photoshop CS6 (Macintosh)"}},{"@id":"genid-5958021d95614a2193e3f66fdc21fad1-b178484","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"tiff:Orientation"},"schema:value":{"@type":"xsd:string","@value":"1"}},{"@id":"genid-5958021d95614a2193e3f66fdc21fad1-b178485","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"tiff:ResolutionUnit"},"schema:value":{"@type":"xsd:string","@value":"Inch"}},{"@id":"genid-5958021d95614a2193e3f66fdc21fad1-b178486","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"tiff:SamplesPerPixel"},"schema:value":{"@type":"xsd:string","@value":"3"}},{"@id":"genid-5958021d95614a2193e3f66fdc21fad1-b178487","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"exif:IsoSpeedRatings"},"schema:value":{"@type":"xsd:string","@value":"560"}},{"@id":"genid-5958021d95614a2193e3f66fdc21fad1-b178488","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"tiff:YResolution"},"schema:value":{"@type":"xsd:string","@value":"300.0"}},{"@id":"genid-5958021d95614a2193e3f66fdc21fad1-b178489","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"tiff:Make"},"schema:value":{"@type":"xsd:string","@value":"NIKON CORPORATION"}},{"@id":"genid-5958021d95614a2193e3f66fdc21fad1-b178490","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"exif:Flash"},"schema:value":{"@type":"xsd:string","@value":"false"}},{"@id":"genid-5958021d95614a2193e3f66fdc21fad1-b178491","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"exif:FocalLength"},"schema:value":{"@type":"xsd:string","@value":"14.0"}},{"@id":"genid-5958021d95614a2193e3f66fdc21fad1-b178492","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"exif:FNumber"},"schema:value":{"@type":"xsd:string","@value":"14.0"}},{"@id":"genid-5958021d95614a2193e3f66fdc21fad1-b178493","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"exif:DateTimeOriginal"},"schema:value":{"@type":"xsd:string","@value":"2019-08-16T13:52:38"}}],"schema:author":{"@type":"xsd:string","@value":"Florian Trykowski"},"schema:thumbnailUrl":{"@type":"xsd:string","@value":"https://cms.thuecat.org/o/adaptive-media/image/134362/Thumbnail-300x300/image"},"schema:url":{"@type":"xsd:anyURI","@value":"https://cms.thuecat.org/o/adaptive-media/image/134362/Preview-1280x0/image"},"schema:license":{"@language":"de","@value":"https://creativecommons.org/publicdomain/zero/1.0/deed.de"},"thuecat:licenseAuthor":{"@language":"de","@value":"https://home.ttgnet.de/ttg/projekte/10006/90136/Projektdokumente/Vergabe%20Rahmenvertrag%20Fotoproduktion"},"thuecat:licenseLocation":{"@language":"de","@value":"https://home.ttgnet.de/ttg/projekte/10006/90136/Projektdokumente/Fotoproduktion-Trykowski/2019%2007%20Shooting%20Erfurt%20Panoramabild%20ega%20und%20Innenstadt"},"thuecat:licensePeriod":{"@language":"de","@value":""},"thuecat:licensePerson":{"@language":"de","@value":"https://home.ttgnet.de/ttg/projekte/10006/90136/Projektdokumente/Fotoproduktion-Trykowski/2019%2007%20Shooting%20Erfurt%20Panoramabild%20ega%20und%20Innenstadt"}}]} diff --git a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/dms_5099196.json b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/dms_5099196.json new file mode 100644 index 0000000..bd7ad49 --- /dev/null +++ b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/dms_5099196.json @@ -0,0 +1,320 @@ +{ + "@context": { + "cdb": "https://thuecat.org/ontology/cdb/1.0/", + "dachkg": "https://thuecat.org/ontology/dachkg/1.0/", + "dbo": "http://dbpedia.org/ontology/", + "dsv": "http://ontologies.sti-innsbruck.at/dsv/", + "foaf": "http://xmlns.com/foaf/0.1/", + "owl": "http://www.w3.org/2002/07/owl#", + "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", + "rdfs": "http://www.w3.org/2000/01/rdf-schema#", + "schema": "http://schema.org/", + "sh": "http://www.w3.org/ns/shacl#", + "thuecat": "https://thuecat.org/ontology/thuecat/1.0/", + "ttgds": "https://thuecat.org/ontology/ttgds/1.0/", + "xsd": "http://www.w3.org/2001/XMLSchema#" + }, + "@graph": [ + { + "@id": "https://thuecat.org/resources/dms_5099196", + "@type": [ + "schema:CreativeWork", + "schema:MediaObject", + "schema:Thing", + "schema:ImageObject", + "http://purl.org/dc/dcmitype/Image" + ], + "schema:bitrate": { + "@type": "xsd:string", + "@value": "8" + }, + "schema:copyrightYear": { + "@language": "de", + "@value": "2009" + }, + "schema:description": { + "@language": "de", + "@value": "Frontaler Blick auf die Hausfront/Hausfassade im Innenhof mit Zugang \u00fcber die Waagegasse" + }, + "schema:exifData": [ + { + "@id": "genid-b438fc33428047b2996d0871fbf41bc5-b0", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "tiff:Model" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "Canon EOS 5D" + } + }, + { + "@id": "genid-b438fc33428047b2996d0871fbf41bc5-b1", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "exif:ExposureTime" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "0.004" + } + }, + { + "@id": "genid-b438fc33428047b2996d0871fbf41bc5-b10", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "tiff:Make" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "Canon" + } + }, + { + "@id": "genid-b438fc33428047b2996d0871fbf41bc5-b2", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "exif:Flash" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "false" + } + }, + { + "@id": "genid-b438fc33428047b2996d0871fbf41bc5-b3", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "exif:FocalLength" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "16.0" + } + }, + { + "@id": "genid-b438fc33428047b2996d0871fbf41bc5-b4", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "exif:FNumber" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "8.0" + } + }, + { + "@id": "genid-b438fc33428047b2996d0871fbf41bc5-b5", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "exif:DateTimeOriginal" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "2009-07-05T15:07:37" + } + }, + { + "@id": "genid-b438fc33428047b2996d0871fbf41bc5-b6", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "tiff:Software" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "Adobe Photoshop CS4 Macintosh" + } + }, + { + "@id": "genid-b438fc33428047b2996d0871fbf41bc5-b7", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "tiff:Orientation" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "1" + } + }, + { + "@id": "genid-b438fc33428047b2996d0871fbf41bc5-b8", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "tiff:SamplesPerPixel" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "4" + } + }, + { + "@id": "genid-b438fc33428047b2996d0871fbf41bc5-b9", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "exif:IsoSpeedRatings" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "100" + } + } + ], + "schema:height": { + "@type": "xsd:string", + "@value": "948" + }, + "schema:identifier": { + "@type": "schema:PropertyValue", + "@value": "5099196" + }, + "schema:keywords": [ + { + "@type": "xsd:string", + "@value": "Frontal" + }, + { + "@type": "xsd:string", + "@value": "Tag" + }, + { + "@type": "xsd:string", + "@value": "Geb\u00e4ude / Architektur" + }, + { + "@type": "xsd:string", + "@value": "Sommer" + }, + { + "@type": "xsd:string", + "@value": "Bauwerk" + }, + { + "@type": "xsd:string", + "@value": "Vorder- / Frontallicht" + }, + { + "@type": "xsd:string", + "@value": "Erfurt" + }, + { + "@type": "xsd:string", + "@value": "j\u00fcdisches leben" + }, + { + "@type": "xsd:string", + "@value": "synagoge" + }, + { + "@type": "xsd:string", + "@value": "J\u00fcdische Kultur" + } + ], + "schema:license": { + "@language": "de", + "@value": "https://creativecommons.org/licenses/by/4.0/" + }, + "schema:name": { + "@language": "de", + "@value": "Erfurt-Alte Synagoge" + }, + "schema:sameAs": { + "@type": "xsd:anyURI", + "@value": "https://wbk.thuecat.org" + }, + "schema:thumbnailUrl": { + "@type": "xsd:string", + "@value": "https://cms.thuecat.org/o/adaptive-media/image/5099196/Thumbnail-300x300/image" + }, + "schema:url": { + "@type": "xsd:anyURI", + "@value": "https://cms.thuecat.org/o/adaptive-media/image/5099196/Preview-1280x0/image" + }, + "schema:width": { + "@type": "xsd:string", + "@value": "1181" + }, + "thuecat:licenseAuthor": { + "@language": "de", + "@value": "F:\\Bilddatenbank\\Museen und Ausstellungen\\Alte Synagoge" + }, + "thuecat:licenseLocation": { + "@language": "de", + "@value": "" + }, + "thuecat:licensePeriod": { + "@language": "de", + "@value": "" + }, + "thuecat:licensePerson": { + "@language": "de", + "@value": "" + } + } + ] +} diff --git a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/dms_5099196/GET_a7dd3aa49ff3a80ac1524e59372926a2.txt b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/dms_5099196/GET_a7dd3aa49ff3a80ac1524e59372926a2.txt deleted file mode 100644 index c9deb2a..0000000 --- a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/dms_5099196/GET_a7dd3aa49ff3a80ac1524e59372926a2.txt +++ /dev/null @@ -1,19 +0,0 @@ -HTTP/1.1 200 OK -Date: Wed, 17 Feb 2021 08:03:50 GMT -Content-Type: application/ld+json; charset=utf-8 -Content-Length: 6166 -Connection: keep-alive -Set-Cookie: ahSession=d3fdef0fb0e239f6c69b2e554a93e878e6d2a686;path=/;expires=Sat, 20 Mar 2021 08:03:49 GMT;httpOnly=true; -Access-Control-Allow-Methods: HEAD, GET, POST, DELETE, OPTIONS -Access-Control-Allow-Headers: Authorization, Content-Type -Strict-Transport-Security: max-age=15724800; includeSubDomains -Access-Control-Allow-Credentials: true -X-Frame-Options: deny -X-XSS-Protection: 1; mode=block -X-Content-Type-Options: nosniff -Referrer-Policy: same-origin -Feature-Policy: microphone 'none'; camera 'none'; payment 'none' -Content-Security-Policy: default-src 'self'; script-src 'self' 'sha256-xfTbtWk8kVI65iLJs8LB3lWf2g0g10DS71pDdoutFHc='; style-src 'self' 'unsafe-inline' https://stackpath.bootstrapcdn.com; img-src 'self' data: blob: * -Access-Control-Allow-Origin: https://cdb.thuecat.org - -{"@context":{"schema":"http://schema.org/","dbo":"http://dbpedia.org/ontology/","dsv":"http://ontologies.sti-innsbruck.at/dsv/","foaf":"http://xmlns.com/foaf/0.1/","owl":"http://www.w3.org/2002/07/owl#","rdf":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","rdfs":"http://www.w3.org/2000/01/rdf-schema#","sh":"http://www.w3.org/ns/shacl#","xsd":"http://www.w3.org/2001/XMLSchema#","ttgds":"https://thuecat.org/ontology/ttgds/1.0/","cdb":"https://thuecat.org/ontology/cdb/1.0/","dachkg":"https://thuecat.org/ontology/dachkg/1.0/","thuecat":"https://thuecat.org/ontology/thuecat/1.0/"},"@graph":[{"@id":"https://thuecat.org/resources/dms_5099196","@type":["schema:CreativeWork","schema:MediaObject","schema:Thing","schema:ImageObject","http://purl.org/dc/dcmitype/Image"],"schema:width":{"@type":"xsd:string","@value":"1181"},"schema:description":{"@language":"de","@value":"Frontaler Blick auf die Hausfront/Hausfassade im Innenhof mit Zugang über die Waagegasse"},"schema:sameAs":{"@type":"xsd:anyURI","@value":"https://wbk.thuecat.org"},"schema:identifier":{"@type":"schema:PropertyValue","@value":"5099196"},"schema:keywords":[{"@type":"xsd:string","@value":"Frontal"},{"@type":"xsd:string","@value":"Tag"},{"@type":"xsd:string","@value":"Gebäude / Architektur"},{"@type":"xsd:string","@value":"Sommer"},{"@type":"xsd:string","@value":"Bauwerk"},{"@type":"xsd:string","@value":"Vorder- / Frontallicht"},{"@type":"xsd:string","@value":"Erfurt"},{"@type":"xsd:string","@value":"jüdisches leben"},{"@type":"xsd:string","@value":"synagoge"},{"@type":"xsd:string","@value":"Jüdische Kultur"}],"schema:name":{"@language":"de","@value":"Erfurt-Alte Synagoge"},"schema:copyrightYear":{"@language":"de","@value":"2009"},"schema:height":{"@type":"xsd:string","@value":"948"},"schema:bitrate":{"@type":"xsd:string","@value":"8"},"schema:exifData":[{"@id":"genid-b438fc33428047b2996d0871fbf41bc5-b0","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"tiff:Model"},"schema:value":{"@type":"xsd:string","@value":"Canon EOS 5D"}},{"@id":"genid-b438fc33428047b2996d0871fbf41bc5-b1","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"exif:ExposureTime"},"schema:value":{"@type":"xsd:string","@value":"0.004"}},{"@id":"genid-b438fc33428047b2996d0871fbf41bc5-b10","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"tiff:Make"},"schema:value":{"@type":"xsd:string","@value":"Canon"}},{"@id":"genid-b438fc33428047b2996d0871fbf41bc5-b2","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"exif:Flash"},"schema:value":{"@type":"xsd:string","@value":"false"}},{"@id":"genid-b438fc33428047b2996d0871fbf41bc5-b3","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"exif:FocalLength"},"schema:value":{"@type":"xsd:string","@value":"16.0"}},{"@id":"genid-b438fc33428047b2996d0871fbf41bc5-b4","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"exif:FNumber"},"schema:value":{"@type":"xsd:string","@value":"8.0"}},{"@id":"genid-b438fc33428047b2996d0871fbf41bc5-b5","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"exif:DateTimeOriginal"},"schema:value":{"@type":"xsd:string","@value":"2009-07-05T15:07:37"}},{"@id":"genid-b438fc33428047b2996d0871fbf41bc5-b6","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"tiff:Software"},"schema:value":{"@type":"xsd:string","@value":"Adobe Photoshop CS4 Macintosh"}},{"@id":"genid-b438fc33428047b2996d0871fbf41bc5-b7","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"tiff:Orientation"},"schema:value":{"@type":"xsd:string","@value":"1"}},{"@id":"genid-b438fc33428047b2996d0871fbf41bc5-b8","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"tiff:SamplesPerPixel"},"schema:value":{"@type":"xsd:string","@value":"4"}},{"@id":"genid-b438fc33428047b2996d0871fbf41bc5-b9","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"exif:IsoSpeedRatings"},"schema:value":{"@type":"xsd:string","@value":"100"}}],"schema:thumbnailUrl":{"@type":"xsd:string","@value":"https://cms.thuecat.org/o/adaptive-media/image/5099196/Thumbnail-300x300/image"},"schema:url":{"@type":"xsd:anyURI","@value":"https://cms.thuecat.org/o/adaptive-media/image/5099196/Preview-1280x0/image"},"schema:license":{"@language":"de","@value":"https://creativecommons.org/licenses/by/4.0/"},"thuecat:licenseAuthor":{"@language":"de","@value":"F:\\Bilddatenbank\\Museen und Ausstellungen\\Alte Synagoge"},"thuecat:licenseLocation":{"@language":"de","@value":""},"thuecat:licensePeriod":{"@language":"de","@value":""},"thuecat:licensePerson":{"@language":"de","@value":""}}]} diff --git a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/dms_5159186.json b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/dms_5159186.json new file mode 100644 index 0000000..8486bfc --- /dev/null +++ b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/dms_5159186.json @@ -0,0 +1,152 @@ +{ + "@context": { + "cdb": "https://thuecat.org/ontology/cdb/1.0/", + "dachkg": "https://thuecat.org/ontology/dachkg/1.0/", + "dbo": "http://dbpedia.org/ontology/", + "dsv": "http://ontologies.sti-innsbruck.at/dsv/", + "foaf": "http://xmlns.com/foaf/0.1/", + "owl": "http://www.w3.org/2002/07/owl#", + "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", + "rdfs": "http://www.w3.org/2000/01/rdf-schema#", + "schema": "http://schema.org/", + "sh": "http://www.w3.org/ns/shacl#", + "thuecat": "https://thuecat.org/ontology/thuecat/1.0/", + "ttgds": "https://thuecat.org/ontology/ttgds/1.0/", + "xsd": "http://www.w3.org/2001/XMLSchema#" + }, + "@graph": [ + { + "@id": "https://thuecat.org/resources/dms_5159186", + "@type": [ + "schema:CreativeWork", + "schema:MediaObject", + "schema:Thing", + "schema:ImageObject", + "http://purl.org/dc/dcmitype/Image" + ], + "schema:bitrate": { + "@type": "xsd:string", + "@value": "8" + }, + "schema:copyrightYear": { + "@language": "de", + "@value": "2020" + }, + "schema:description": { + "@language": "de", + "@value": "Sicht auf Dom St. Marien, St. Severikirche sowie die davor liegenden Klostergeb\u00e4ude und einem Ausschnitt des Biergartens umgeben von einem d\u00e4mmerungsverf\u00e4rten Himmel" + }, + "schema:exifData": { + "@id": "genid-2baad45f571f4196811b62a1b4e4027f-b0", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "tiff:Software" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "Google" + } + }, + "schema:height": { + "@type": "xsd:string", + "@value": "2160" + }, + "schema:identifier": { + "@type": "schema:PropertyValue", + "@value": "5159186" + }, + "schema:keywords": [ + { + "@type": "xsd:string", + "@value": "Kultur und Geschichte" + }, + { + "@type": "xsd:string", + "@value": "Geb\u00e4ude / Architektur" + }, + { + "@type": "xsd:string", + "@value": "Bauwerk" + }, + { + "@type": "xsd:string", + "@value": "Erfurt" + }, + { + "@type": "xsd:string", + "@value": "Abendd\u00e4mmerung" + }, + { + "@type": "xsd:string", + "@value": "Halbtotale" + }, + { + "@type": "xsd:string", + "@value": "Gegenlicht" + }, + { + "@type": "xsd:string", + "@value": "Herbst" + }, + { + "@type": "xsd:string", + "@value": "domplatz" + }, + { + "@type": "xsd:string", + "@value": "Gruppenreisende" + }, + { + "@type": "xsd:string", + "@value": "Kennerschaft - Konservativ-Etabliertes Milieu" + } + ], + "schema:license": { + "@language": "de", + "@value": "https://creativecommons.org/licenses/by/4.0/" + }, + "schema:name": { + "@language": "de", + "@value": "Erfurt-Dom-und-Severikirche.jpg" + }, + "schema:sameAs": { + "@type": "xsd:anyURI", + "@value": "https://wbk.thuecat.org" + }, + "schema:thumbnailUrl": { + "@type": "xsd:string", + "@value": "https://cms.thuecat.org/o/adaptive-media/image/5159186/Thumbnail-300x300/image" + }, + "schema:url": { + "@type": "xsd:anyURI", + "@value": "https://cms.thuecat.org/o/adaptive-media/image/5159186/Preview-1280x0/image" + }, + "schema:width": { + "@type": "xsd:string", + "@value": "3614" + }, + "thuecat:licenseAuthor": { + "@language": "de", + "@value": "" + }, + "thuecat:licenseLocation": { + "@language": "de", + "@value": "" + }, + "thuecat:licensePeriod": { + "@language": "de", + "@value": "" + }, + "thuecat:licensePerson": { + "@language": "de", + "@value": "" + } + } + ] +} diff --git a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/dms_5159186/GET_65121b6b76684cbe0900c1c2c82f25a6.txt b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/dms_5159186/GET_65121b6b76684cbe0900c1c2c82f25a6.txt deleted file mode 100644 index 0db1d87..0000000 --- a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/dms_5159186/GET_65121b6b76684cbe0900c1c2c82f25a6.txt +++ /dev/null @@ -1,19 +0,0 @@ -HTTP/1.1 200 OK -Date: Wed, 17 Feb 2021 08:03:49 GMT -Content-Type: application/ld+json; charset=utf-8 -Content-Length: 2991 -Connection: keep-alive -Set-Cookie: ahSession=583c8431692277a32ae3b9a37db1b53955b64107;path=/;expires=Sat, 20 Mar 2021 08:03:06 GMT;httpOnly=true; -Access-Control-Allow-Methods: HEAD, GET, POST, DELETE, OPTIONS -Access-Control-Allow-Headers: Authorization, Content-Type -Strict-Transport-Security: max-age=15724800; includeSubDomains -Access-Control-Allow-Credentials: true -X-Frame-Options: deny -X-XSS-Protection: 1; mode=block -X-Content-Type-Options: nosniff -Referrer-Policy: same-origin -Feature-Policy: microphone 'none'; camera 'none'; payment 'none' -Content-Security-Policy: default-src 'self'; script-src 'self' 'sha256-xfTbtWk8kVI65iLJs8LB3lWf2g0g10DS71pDdoutFHc='; style-src 'self' 'unsafe-inline' https://stackpath.bootstrapcdn.com; img-src 'self' data: blob: * -Access-Control-Allow-Origin: https://cdb.thuecat.org - -{"@context":{"schema":"http://schema.org/","dbo":"http://dbpedia.org/ontology/","dsv":"http://ontologies.sti-innsbruck.at/dsv/","foaf":"http://xmlns.com/foaf/0.1/","owl":"http://www.w3.org/2002/07/owl#","rdf":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","rdfs":"http://www.w3.org/2000/01/rdf-schema#","sh":"http://www.w3.org/ns/shacl#","xsd":"http://www.w3.org/2001/XMLSchema#","ttgds":"https://thuecat.org/ontology/ttgds/1.0/","cdb":"https://thuecat.org/ontology/cdb/1.0/","dachkg":"https://thuecat.org/ontology/dachkg/1.0/","thuecat":"https://thuecat.org/ontology/thuecat/1.0/"},"@graph":[{"@id":"https://thuecat.org/resources/dms_5159186","@type":["schema:CreativeWork","schema:MediaObject","schema:Thing","schema:ImageObject","http://purl.org/dc/dcmitype/Image"],"schema:width":{"@type":"xsd:string","@value":"3614"},"schema:description":{"@language":"de","@value":"Sicht auf Dom St. Marien, St. Severikirche sowie die davor liegenden Klostergebäude und einem Ausschnitt des Biergartens umgeben von einem dämmerungsverfärten Himmel"},"schema:sameAs":{"@type":"xsd:anyURI","@value":"https://wbk.thuecat.org"},"schema:identifier":{"@type":"schema:PropertyValue","@value":"5159186"},"schema:keywords":[{"@type":"xsd:string","@value":"Kultur und Geschichte"},{"@type":"xsd:string","@value":"Gebäude / Architektur"},{"@type":"xsd:string","@value":"Bauwerk"},{"@type":"xsd:string","@value":"Erfurt"},{"@type":"xsd:string","@value":"Abenddämmerung"},{"@type":"xsd:string","@value":"Halbtotale"},{"@type":"xsd:string","@value":"Gegenlicht"},{"@type":"xsd:string","@value":"Herbst"},{"@type":"xsd:string","@value":"domplatz"},{"@type":"xsd:string","@value":"Gruppenreisende"},{"@type":"xsd:string","@value":"Kennerschaft - Konservativ-Etabliertes Milieu"}],"schema:name":{"@language":"de","@value":"Erfurt-Dom-und-Severikirche.jpg"},"schema:copyrightYear":{"@language":"de","@value":"2020"},"schema:height":{"@type":"xsd:string","@value":"2160"},"schema:bitrate":{"@type":"xsd:string","@value":"8"},"schema:exifData":{"@id":"genid-2baad45f571f4196811b62a1b4e4027f-b0","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"tiff:Software"},"schema:value":{"@type":"xsd:string","@value":"Google"}},"schema:thumbnailUrl":{"@type":"xsd:string","@value":"https://cms.thuecat.org/o/adaptive-media/image/5159186/Thumbnail-300x300/image"},"schema:url":{"@type":"xsd:anyURI","@value":"https://cms.thuecat.org/o/adaptive-media/image/5159186/Preview-1280x0/image"},"schema:license":{"@language":"de","@value":"https://creativecommons.org/licenses/by/4.0/"},"thuecat:licenseAuthor":{"@language":"de","@value":""},"thuecat:licenseLocation":{"@language":"de","@value":""},"thuecat:licensePeriod":{"@language":"de","@value":""},"thuecat:licensePerson":{"@language":"de","@value":""}}]} diff --git a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/dms_5159216.json b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/dms_5159216.json new file mode 100644 index 0000000..cd0e0e7 --- /dev/null +++ b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/dms_5159216.json @@ -0,0 +1,367 @@ +{ + "@context": { + "cdb": "https://thuecat.org/ontology/cdb/1.0/", + "dachkg": "https://thuecat.org/ontology/dachkg/1.0/", + "dbo": "http://dbpedia.org/ontology/", + "dsv": "http://ontologies.sti-innsbruck.at/dsv/", + "foaf": "http://xmlns.com/foaf/0.1/", + "owl": "http://www.w3.org/2002/07/owl#", + "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", + "rdfs": "http://www.w3.org/2000/01/rdf-schema#", + "schema": "http://schema.org/", + "sh": "http://www.w3.org/ns/shacl#", + "thuecat": "https://thuecat.org/ontology/thuecat/1.0/", + "ttgds": "https://thuecat.org/ontology/ttgds/1.0/", + "xsd": "http://www.w3.org/2001/XMLSchema#" + }, + "@graph": [ + { + "@id": "https://thuecat.org/resources/dms_5159216", + "@type": [ + "schema:CreativeWork", + "schema:MediaObject", + "schema:Thing", + "schema:ImageObject", + "http://purl.org/dc/dcmitype/Image" + ], + "schema:bitrate": { + "@type": "xsd:string", + "@value": "8" + }, + "schema:copyrightYear": { + "@language": "de", + "@value": "2016" + }, + "schema:exifData": [ + { + "@id": "genid-37df067e275748228ffc393973736a1b-b0", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "tiff:Model" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "ILCE-6000" + } + }, + { + "@id": "genid-37df067e275748228ffc393973736a1b-b1", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "exif:ExposureTime" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "0.00625" + } + }, + { + "@id": "genid-37df067e275748228ffc393973736a1b-b10", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "tiff:SamplesPerPixel" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "3" + } + }, + { + "@id": "genid-37df067e275748228ffc393973736a1b-b11", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "exif:IsoSpeedRatings" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "2000" + } + }, + { + "@id": "genid-37df067e275748228ffc393973736a1b-b12", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "tiff:YResolution" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "150.0" + } + }, + { + "@id": "genid-37df067e275748228ffc393973736a1b-b13", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "tiff:Make" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "SONY" + } + }, + { + "@id": "genid-37df067e275748228ffc393973736a1b-b2", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "exif:Flash" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "false" + } + }, + { + "@id": "genid-37df067e275748228ffc393973736a1b-b3", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "exif:FocalLength" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "26.0" + } + }, + { + "@id": "genid-37df067e275748228ffc393973736a1b-b4", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "exif:FNumber" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "4.5" + } + }, + { + "@id": "genid-37df067e275748228ffc393973736a1b-b5", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "exif:DateTimeOriginal" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "2015-05-19T20:10:58" + } + }, + { + "@id": "genid-37df067e275748228ffc393973736a1b-b6", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "tiff:XResolution" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "150.0" + } + }, + { + "@id": "genid-37df067e275748228ffc393973736a1b-b7", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "tiff:Software" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "Adobe Photoshop CS6 (Windows)" + } + }, + { + "@id": "genid-37df067e275748228ffc393973736a1b-b8", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "tiff:Orientation" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "1" + } + }, + { + "@id": "genid-37df067e275748228ffc393973736a1b-b9", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "tiff:ResolutionUnit" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "Inch" + } + } + ], + "schema:height": { + "@type": "xsd:string", + "@value": "4000" + }, + "schema:identifier": { + "@type": "schema:PropertyValue", + "@value": "5159216" + }, + "schema:keywords": [ + { + "@type": "xsd:string", + "@value": "Geb\u00e4ude / Architektur" + }, + { + "@type": "xsd:string", + "@value": "Sommer" + }, + { + "@type": "xsd:string", + "@value": "Bauwerk" + }, + { + "@type": "xsd:string", + "@value": "Erfurt" + }, + { + "@type": "xsd:string", + "@value": "Abendd\u00e4mmerung" + }, + { + "@type": "xsd:string", + "@value": "Gegenlicht" + }, + { + "@type": "xsd:string", + "@value": "Herbst" + }, + { + "@type": "xsd:string", + "@value": "domplatz" + }, + { + "@type": "xsd:string", + "@value": "domstufen" + }, + { + "@type": "xsd:string", + "@value": "mariendom" + } + ], + "schema:license": { + "@language": "de", + "@value": "https://creativecommons.org/licenses/by/4.0/" + }, + "schema:name": { + "@language": "de", + "@value": "Erfurt-Dom und Severikirche-beleuchtet.jpg" + }, + "schema:sameAs": { + "@type": "xsd:anyURI", + "@value": "https://wbk.thuecat.org" + }, + "schema:thumbnailUrl": { + "@type": "xsd:string", + "@value": "https://cms.thuecat.org/o/adaptive-media/image/5159216/Thumbnail-300x300/image" + }, + "schema:url": { + "@type": "xsd:anyURI", + "@value": "https://cms.thuecat.org/o/adaptive-media/image/5159216/Preview-1280x0/image" + }, + "schema:width": { + "@type": "xsd:string", + "@value": "6000" + }, + "thuecat:licenseAuthor": { + "@language": "de", + "@value": "" + }, + "thuecat:licenseLocation": { + "@language": "de", + "@value": "" + }, + "thuecat:licensePeriod": { + "@language": "de", + "@value": "" + }, + "thuecat:licensePerson": { + "@language": "de", + "@value": "" + } + } + ] +} diff --git a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/dms_5159216/GET_cba3d653d6c1d8522d62bb834e654fab.txt b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/dms_5159216/GET_cba3d653d6c1d8522d62bb834e654fab.txt deleted file mode 100644 index 3b98b9c..0000000 --- a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/dms_5159216/GET_cba3d653d6c1d8522d62bb834e654fab.txt +++ /dev/null @@ -1,19 +0,0 @@ -HTTP/1.1 200 OK -Date: Wed, 17 Feb 2021 08:04:06 GMT -Content-Type: application/ld+json; charset=utf-8 -Content-Length: 6991 -Connection: keep-alive -Set-Cookie: ahSession=40427ff59a969316c84fe78d7f913ec95d073d11;path=/;expires=Sat, 20 Mar 2021 08:04:06 GMT;httpOnly=true; -Access-Control-Allow-Methods: HEAD, GET, POST, DELETE, OPTIONS -Access-Control-Allow-Headers: Authorization, Content-Type -Strict-Transport-Security: max-age=15724800; includeSubDomains -Access-Control-Allow-Credentials: true -X-Frame-Options: deny -X-XSS-Protection: 1; mode=block -X-Content-Type-Options: nosniff -Referrer-Policy: same-origin -Feature-Policy: microphone 'none'; camera 'none'; payment 'none' -Content-Security-Policy: default-src 'self'; script-src 'self' 'sha256-xfTbtWk8kVI65iLJs8LB3lWf2g0g10DS71pDdoutFHc='; style-src 'self' 'unsafe-inline' https://stackpath.bootstrapcdn.com; img-src 'self' data: blob: * -Access-Control-Allow-Origin: https://cdb.thuecat.org - -{"@context":{"schema":"http://schema.org/","dbo":"http://dbpedia.org/ontology/","dsv":"http://ontologies.sti-innsbruck.at/dsv/","foaf":"http://xmlns.com/foaf/0.1/","owl":"http://www.w3.org/2002/07/owl#","rdf":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","rdfs":"http://www.w3.org/2000/01/rdf-schema#","sh":"http://www.w3.org/ns/shacl#","xsd":"http://www.w3.org/2001/XMLSchema#","ttgds":"https://thuecat.org/ontology/ttgds/1.0/","cdb":"https://thuecat.org/ontology/cdb/1.0/","dachkg":"https://thuecat.org/ontology/dachkg/1.0/","thuecat":"https://thuecat.org/ontology/thuecat/1.0/"},"@graph":[{"@id":"https://thuecat.org/resources/dms_5159216","@type":["schema:CreativeWork","schema:MediaObject","schema:Thing","schema:ImageObject","http://purl.org/dc/dcmitype/Image"],"schema:width":{"@type":"xsd:string","@value":"6000"},"schema:sameAs":{"@type":"xsd:anyURI","@value":"https://wbk.thuecat.org"},"schema:identifier":{"@type":"schema:PropertyValue","@value":"5159216"},"schema:keywords":[{"@type":"xsd:string","@value":"Gebäude / Architektur"},{"@type":"xsd:string","@value":"Sommer"},{"@type":"xsd:string","@value":"Bauwerk"},{"@type":"xsd:string","@value":"Erfurt"},{"@type":"xsd:string","@value":"Abenddämmerung"},{"@type":"xsd:string","@value":"Gegenlicht"},{"@type":"xsd:string","@value":"Herbst"},{"@type":"xsd:string","@value":"domplatz"},{"@type":"xsd:string","@value":"domstufen"},{"@type":"xsd:string","@value":"mariendom"}],"schema:name":{"@language":"de","@value":"Erfurt-Dom und Severikirche-beleuchtet.jpg"},"schema:copyrightYear":{"@language":"de","@value":"2016"},"schema:height":{"@type":"xsd:string","@value":"4000"},"schema:bitrate":{"@type":"xsd:string","@value":"8"},"schema:exifData":[{"@id":"genid-37df067e275748228ffc393973736a1b-b0","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"tiff:Model"},"schema:value":{"@type":"xsd:string","@value":"ILCE-6000"}},{"@id":"genid-37df067e275748228ffc393973736a1b-b1","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"exif:ExposureTime"},"schema:value":{"@type":"xsd:string","@value":"0.00625"}},{"@id":"genid-37df067e275748228ffc393973736a1b-b10","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"tiff:SamplesPerPixel"},"schema:value":{"@type":"xsd:string","@value":"3"}},{"@id":"genid-37df067e275748228ffc393973736a1b-b11","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"exif:IsoSpeedRatings"},"schema:value":{"@type":"xsd:string","@value":"2000"}},{"@id":"genid-37df067e275748228ffc393973736a1b-b12","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"tiff:YResolution"},"schema:value":{"@type":"xsd:string","@value":"150.0"}},{"@id":"genid-37df067e275748228ffc393973736a1b-b13","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"tiff:Make"},"schema:value":{"@type":"xsd:string","@value":"SONY"}},{"@id":"genid-37df067e275748228ffc393973736a1b-b2","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"exif:Flash"},"schema:value":{"@type":"xsd:string","@value":"false"}},{"@id":"genid-37df067e275748228ffc393973736a1b-b3","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"exif:FocalLength"},"schema:value":{"@type":"xsd:string","@value":"26.0"}},{"@id":"genid-37df067e275748228ffc393973736a1b-b4","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"exif:FNumber"},"schema:value":{"@type":"xsd:string","@value":"4.5"}},{"@id":"genid-37df067e275748228ffc393973736a1b-b5","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"exif:DateTimeOriginal"},"schema:value":{"@type":"xsd:string","@value":"2015-05-19T20:10:58"}},{"@id":"genid-37df067e275748228ffc393973736a1b-b6","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"tiff:XResolution"},"schema:value":{"@type":"xsd:string","@value":"150.0"}},{"@id":"genid-37df067e275748228ffc393973736a1b-b7","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"tiff:Software"},"schema:value":{"@type":"xsd:string","@value":"Adobe Photoshop CS6 (Windows)"}},{"@id":"genid-37df067e275748228ffc393973736a1b-b8","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"tiff:Orientation"},"schema:value":{"@type":"xsd:string","@value":"1"}},{"@id":"genid-37df067e275748228ffc393973736a1b-b9","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"tiff:ResolutionUnit"},"schema:value":{"@type":"xsd:string","@value":"Inch"}}],"schema:thumbnailUrl":{"@type":"xsd:string","@value":"https://cms.thuecat.org/o/adaptive-media/image/5159216/Thumbnail-300x300/image"},"schema:url":{"@type":"xsd:anyURI","@value":"https://cms.thuecat.org/o/adaptive-media/image/5159216/Preview-1280x0/image"},"schema:license":{"@language":"de","@value":"https://creativecommons.org/licenses/by/4.0/"},"thuecat:licenseAuthor":{"@language":"de","@value":""},"thuecat:licenseLocation":{"@language":"de","@value":""},"thuecat:licensePeriod":{"@language":"de","@value":""},"thuecat:licensePerson":{"@language":"de","@value":""}}]} diff --git a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/dms_5197164.json b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/dms_5197164.json new file mode 100644 index 0000000..79c345b --- /dev/null +++ b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/dms_5197164.json @@ -0,0 +1,373 @@ +{ + "@context": { + "cdb": "https://thuecat.org/ontology/cdb/1.0/", + "dachkg": "https://thuecat.org/ontology/dachkg/1.0/", + "dbo": "http://dbpedia.org/ontology/", + "dsv": "http://ontologies.sti-innsbruck.at/dsv/", + "epapp": "https://thuecat.org/ontology/epapp/1.0/", + "foaf": "http://xmlns.com/foaf/0.1/", + "owl": "http://www.w3.org/2002/07/owl#", + "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", + "rdfs": "http://www.w3.org/2000/01/rdf-schema#", + "schema": "http://schema.org/", + "sh": "http://www.w3.org/ns/shacl#", + "thuecat": "https://thuecat.org/ontology/thuecat/1.0/", + "ttgds": "https://thuecat.org/ontology/ttgds/1.0/", + "xsd": "http://www.w3.org/2001/XMLSchema#" + }, + "@graph": [ + { + "@id": "https://thuecat.org/resources/dms_5197164", + "@type": [ + "schema:CreativeWork", + "schema:MediaObject", + "schema:Thing", + "schema:ImageObject", + "http://purl.org/dc/dcmitype/Image" + ], + "schema:author": { + "@id": "https://thuecat.org/resources/018132452787-ngbe" + }, + "schema:bitrate": { + "@type": "xsd:string", + "@value": "8" + }, + "schema:contentLocation": { + "@id": "https://thuecat.org/resources/440055527204-ocar" + }, + "schema:copyrightHolder": { + "@id": "https://thuecat.org/resources/018132452787-ngbe" + }, + "schema:copyrightYear": { + "@language": "de", + "@value": "2020" + }, + "schema:description": { + "@language": "de", + "@value": "Stra\u00dfenansicht des Parkhauses Q-Park am Kaufhaus Anger 1, schr\u00e4g \u00fcber den Juri-Gagarin-Ring" + }, + "schema:exifData": [ + { + "@id": "genid-f77f9c8eeeda441687da6e30798e2a54-b0", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "tiff:Model" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "ILCE-6000" + } + }, + { + "@id": "genid-f77f9c8eeeda441687da6e30798e2a54-b1", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "exif:ExposureTime" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "0.00625" + } + }, + { + "@id": "genid-f77f9c8eeeda441687da6e30798e2a54-b10", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "tiff:SamplesPerPixel" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "3" + } + }, + { + "@id": "genid-f77f9c8eeeda441687da6e30798e2a54-b11", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "exif:IsoSpeedRatings" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "100" + } + }, + { + "@id": "genid-f77f9c8eeeda441687da6e30798e2a54-b12", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "tiff:YResolution" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "350.0" + } + }, + { + "@id": "genid-f77f9c8eeeda441687da6e30798e2a54-b13", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "tiff:Make" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "SONY" + } + }, + { + "@id": "genid-f77f9c8eeeda441687da6e30798e2a54-b2", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "exif:Flash" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "false" + } + }, + { + "@id": "genid-f77f9c8eeeda441687da6e30798e2a54-b3", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "exif:FocalLength" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "16.0" + } + }, + { + "@id": "genid-f77f9c8eeeda441687da6e30798e2a54-b4", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "exif:FNumber" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "11.0" + } + }, + { + "@id": "genid-f77f9c8eeeda441687da6e30798e2a54-b5", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "exif:DateTimeOriginal" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "2016-04-17T23:30:49" + } + }, + { + "@id": "genid-f77f9c8eeeda441687da6e30798e2a54-b6", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "tiff:XResolution" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "350.0" + } + }, + { + "@id": "genid-f77f9c8eeeda441687da6e30798e2a54-b7", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "tiff:Software" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "GIMP 2.10.22" + } + }, + { + "@id": "genid-f77f9c8eeeda441687da6e30798e2a54-b8", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "tiff:Orientation" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "1" + } + }, + { + "@id": "genid-f77f9c8eeeda441687da6e30798e2a54-b9", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "tiff:ResolutionUnit" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "Inch" + } + } + ], + "schema:height": { + "@type": "xsd:string", + "@value": "3542" + }, + "schema:identifier": { + "@type": "schema:PropertyValue", + "@value": "5197164" + }, + "schema:keywords": [ + { + "@type": "xsd:string", + "@value": "Tag" + }, + { + "@type": "xsd:string", + "@value": "Geb\u00e4ude / Architektur" + }, + { + "@type": "xsd:string", + "@value": "Vorder- / Frontallicht" + }, + { + "@type": "xsd:string", + "@value": "Seitenperspektive" + }, + { + "@type": "xsd:string", + "@value": "Erfurt" + }, + { + "@type": "xsd:string", + "@value": "Weitere Infrastruktur" + }, + { + "@type": "xsd:string", + "@value": "parken" + }, + { + "@type": "xsd:string", + "@value": "parkmoeglichkeit" + } + ], + "schema:license": { + "@language": "de", + "@value": "https://creativecommons.org/licenses/by/4.0/" + }, + "schema:name": { + "@language": "de", + "@value": "Q-Park-Parkhaus-Anger1-Juri-Gagarin-Ring.JPG" + }, + "schema:sameAs": { + "@type": "xsd:anyURI", + "@value": "https://wbk.thuecat.org" + }, + "schema:thumbnailUrl": { + "@type": "xsd:string", + "@value": "https://cms.thuecat.org/o/adaptive-media/image/5197164/Thumbnail-300x300/image" + }, + "schema:url": { + "@type": "xsd:anyURI", + "@value": "https://cms.thuecat.org/o/adaptive-media/image/5197164/Preview-1280x0/image" + }, + "schema:width": { + "@type": "xsd:string", + "@value": "5621" + }, + "thuecat:licenseAuthor": { + "@language": "de", + "@value": "" + }, + "thuecat:licenseLocation": { + "@language": "de", + "@value": "" + }, + "thuecat:licensePeriod": { + "@language": "de", + "@value": "" + }, + "thuecat:licensePerson": { + "@language": "de", + "@value": "" + } + } + ] +} diff --git a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/dms_5197164/GET_84507add0ca543b4283a096d965d6b32.txt b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/dms_5197164/GET_84507add0ca543b4283a096d965d6b32.txt deleted file mode 100644 index c643c70..0000000 --- a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/dms_5197164/GET_84507add0ca543b4283a096d965d6b32.txt +++ /dev/null @@ -1,19 +0,0 @@ -HTTP/1.1 200 OK -Date: Wed, 17 Feb 2021 08:04:06 GMT -Content-Type: application/ld+json; charset=utf-8 -Content-Length: 6991 -Connection: keep-alive -Set-Cookie: ahSession=40427ff59a969316c84fe78d7f913ec95d073d11;path=/;expires=Sat, 20 Mar 2021 08:04:06 GMT;httpOnly=true; -Access-Control-Allow-Methods: HEAD, GET, POST, DELETE, OPTIONS -Access-Control-Allow-Headers: Authorization, Content-Type -Strict-Transport-Security: max-age=15724800; includeSubDomains -Access-Control-Allow-Credentials: true -X-Frame-Options: deny -X-XSS-Protection: 1; mode=block -X-Content-Type-Options: nosniff -Referrer-Policy: same-origin -Feature-Policy: microphone 'none'; camera 'none'; payment 'none' -Content-Security-Policy: default-src 'self'; script-src 'self' 'sha256-xfTbtWk8kVI65iLJs8LB3lWf2g0g10DS71pDdoutFHc='; style-src 'self' 'unsafe-inline' https://stackpath.bootstrapcdn.com; img-src 'self' data: blob: * -Access-Control-Allow-Origin: https://cdb.thuecat.org - -{"@context":{"schema":"http://schema.org/","dbo":"http://dbpedia.org/ontology/","dsv":"http://ontologies.sti-innsbruck.at/dsv/","foaf":"http://xmlns.com/foaf/0.1/","owl":"http://www.w3.org/2002/07/owl#","rdf":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","rdfs":"http://www.w3.org/2000/01/rdf-schema#","sh":"http://www.w3.org/ns/shacl#","xsd":"http://www.w3.org/2001/XMLSchema#","ttgds":"https://thuecat.org/ontology/ttgds/1.0/","cdb":"https://thuecat.org/ontology/cdb/1.0/","dachkg":"https://thuecat.org/ontology/dachkg/1.0/","thuecat":"https://thuecat.org/ontology/thuecat/1.0/","epapp":"https://thuecat.org/ontology/epapp/1.0/"},"@graph":[{"@id":"https://thuecat.org/resources/dms_5197164","@type":["schema:CreativeWork","schema:MediaObject","schema:Thing","schema:ImageObject","http://purl.org/dc/dcmitype/Image"],"schema:width":{"@type":"xsd:string","@value":"5621"},"schema:description":{"@language":"de","@value":"Straßenansicht des Parkhauses Q-Park am Kaufhaus Anger 1, schräg über den Juri-Gagarin-Ring"},"schema:sameAs":{"@type":"xsd:anyURI","@value":"https://wbk.thuecat.org"},"schema:identifier":{"@type":"schema:PropertyValue","@value":"5197164"},"schema:keywords":[{"@type":"xsd:string","@value":"Tag"},{"@type":"xsd:string","@value":"Gebäude / Architektur"},{"@type":"xsd:string","@value":"Vorder- / Frontallicht"},{"@type":"xsd:string","@value":"Seitenperspektive"},{"@type":"xsd:string","@value":"Erfurt"},{"@type":"xsd:string","@value":"Weitere Infrastruktur"},{"@type":"xsd:string","@value":"parken"},{"@type":"xsd:string","@value":"parkmoeglichkeit"}],"schema:name":{"@language":"de","@value":"Q-Park-Parkhaus-Anger1-Juri-Gagarin-Ring.JPG"},"schema:copyrightYear":{"@language":"de","@value":"2020"},"schema:height":{"@type":"xsd:string","@value":"3542"},"schema:copyrightHolder":{"@id":"https://thuecat.org/resources/018132452787-ngbe"},"schema:bitrate":{"@type":"xsd:string","@value":"8"},"schema:contentLocation":{"@id":"https://thuecat.org/resources/440055527204-ocar"},"schema:exifData":[{"@id":"genid-f77f9c8eeeda441687da6e30798e2a54-b0","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"tiff:Model"},"schema:value":{"@type":"xsd:string","@value":"ILCE-6000"}},{"@id":"genid-f77f9c8eeeda441687da6e30798e2a54-b1","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"exif:ExposureTime"},"schema:value":{"@type":"xsd:string","@value":"0.00625"}},{"@id":"genid-f77f9c8eeeda441687da6e30798e2a54-b10","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"tiff:SamplesPerPixel"},"schema:value":{"@type":"xsd:string","@value":"3"}},{"@id":"genid-f77f9c8eeeda441687da6e30798e2a54-b11","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"exif:IsoSpeedRatings"},"schema:value":{"@type":"xsd:string","@value":"100"}},{"@id":"genid-f77f9c8eeeda441687da6e30798e2a54-b12","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"tiff:YResolution"},"schema:value":{"@type":"xsd:string","@value":"350.0"}},{"@id":"genid-f77f9c8eeeda441687da6e30798e2a54-b13","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"tiff:Make"},"schema:value":{"@type":"xsd:string","@value":"SONY"}},{"@id":"genid-f77f9c8eeeda441687da6e30798e2a54-b2","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"exif:Flash"},"schema:value":{"@type":"xsd:string","@value":"false"}},{"@id":"genid-f77f9c8eeeda441687da6e30798e2a54-b3","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"exif:FocalLength"},"schema:value":{"@type":"xsd:string","@value":"16.0"}},{"@id":"genid-f77f9c8eeeda441687da6e30798e2a54-b4","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"exif:FNumber"},"schema:value":{"@type":"xsd:string","@value":"11.0"}},{"@id":"genid-f77f9c8eeeda441687da6e30798e2a54-b5","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"exif:DateTimeOriginal"},"schema:value":{"@type":"xsd:string","@value":"2016-04-17T23:30:49"}},{"@id":"genid-f77f9c8eeeda441687da6e30798e2a54-b6","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"tiff:XResolution"},"schema:value":{"@type":"xsd:string","@value":"350.0"}},{"@id":"genid-f77f9c8eeeda441687da6e30798e2a54-b7","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"tiff:Software"},"schema:value":{"@type":"xsd:string","@value":"GIMP 2.10.22"}},{"@id":"genid-f77f9c8eeeda441687da6e30798e2a54-b8","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"tiff:Orientation"},"schema:value":{"@type":"xsd:string","@value":"1"}},{"@id":"genid-f77f9c8eeeda441687da6e30798e2a54-b9","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"tiff:ResolutionUnit"},"schema:value":{"@type":"xsd:string","@value":"Inch"}}],"schema:author":{"@id":"https://thuecat.org/resources/018132452787-ngbe"},"schema:thumbnailUrl":{"@type":"xsd:string","@value":"https://cms.thuecat.org/o/adaptive-media/image/5197164/Thumbnail-300x300/image"},"schema:url":{"@type":"xsd:anyURI","@value":"https://cms.thuecat.org/o/adaptive-media/image/5197164/Preview-1280x0/image"},"schema:license":{"@language":"de","@value":"https://creativecommons.org/licenses/by/4.0/"},"thuecat:licenseAuthor":{"@language":"de","@value":""},"thuecat:licenseLocation":{"@language":"de","@value":""},"thuecat:licensePeriod":{"@language":"de","@value":""},"thuecat:licensePerson":{"@language":"de","@value":""}}]} diff --git a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/dms_5713563/GET_17fbfe78bf90316a044f5c4a09cea752.txt b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/dms_5713563/GET_17fbfe78bf90316a044f5c4a09cea752.txt deleted file mode 100644 index 30f62a4..0000000 --- a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/dms_5713563/GET_17fbfe78bf90316a044f5c4a09cea752.txt +++ /dev/null @@ -1,19 +0,0 @@ -HTTP/1.1 404 Not Found -Date: Wed, 17 Feb 2021 08:03:50 GMT -Content-Type: application/ld+json; charset=utf-8 -Content-Length: 7366 -Connection: keep-alive -Set-Cookie: ahSession=3e3e3f03b24a3a9f7eea750ec4c9b99774e2c09e;path=/;expires=Sat, 20 Mar 2021 08:03:50 GMT;httpOnly=true; -Access-Control-Allow-Methods: HEAD, GET, POST, DELETE, OPTIONS -Access-Control-Allow-Headers: Authorization, Content-Type -Strict-Transport-Security: max-age=15724800; includeSubDomains -Access-Control-Allow-Credentials: true -X-Frame-Options: deny -X-XSS-Protection: 1; mode=block -X-Content-Type-Options: nosniff -Referrer-Policy: same-origin -Feature-Policy: microphone 'none'; camera 'none'; payment 'none' -Content-Security-Policy: default-src 'self'; script-src 'self' 'sha256-xfTbtWk8kVI65iLJs8LB3lWf2g0g10DS71pDdoutFHc='; style-src 'self' 'unsafe-inline' https://stackpath.bootstrapcdn.com; img-src 'self' data: blob: * -Access-Control-Allow-Origin: https://cdb.thuecat.org - -{"error":"404"} diff --git a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/dms_6486108.json b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/dms_6486108.json new file mode 100644 index 0000000..1242235 --- /dev/null +++ b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/dms_6486108.json @@ -0,0 +1,344 @@ +{ + "@context": { + "cdb": "https://thuecat.org/ontology/cdb/1.0/", + "dachkg": "https://thuecat.org/ontology/dachkg/1.0/", + "dbo": "http://dbpedia.org/ontology/", + "dsv": "http://ontologies.sti-innsbruck.at/dsv/", + "epapp": "https://thuecat.org/ontology/epapp/1.0/", + "foaf": "http://xmlns.com/foaf/0.1/", + "owl": "http://www.w3.org/2002/07/owl#", + "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", + "rdfs": "http://www.w3.org/2000/01/rdf-schema#", + "schema": "http://schema.org/", + "sh": "http://www.w3.org/ns/shacl#", + "thuecat": "https://thuecat.org/ontology/thuecat/1.0/", + "ttgds": "https://thuecat.org/ontology/ttgds/1.0/", + "xsd": "http://www.w3.org/2001/XMLSchema#" + }, + "@graph": [ + { + "@id": "https://thuecat.org/resources/dms_6486108", + "@type": [ + "schema:CreativeWork", + "schema:MediaObject", + "schema:Thing", + "schema:ImageObject", + "http://purl.org/dc/dcmitype/Image" + ], + "schema:author": { + "@id": "https://thuecat.org/resources/018132452787-ngbe" + }, + "schema:bitrate": { + "@type": "xsd:string", + "@value": "8" + }, + "schema:contentLocation": { + "@id": "https://thuecat.org/resources/396420044896-drzt" + }, + "schema:copyrightHolder": { + "@id": "https://thuecat.org/resources/018132452787-ngbe" + }, + "schema:copyrightYear": { + "@language": "de", + "@value": "2021" + }, + "schema:exifData": [ + { + "@id": "genid-a253d47fa93342acb1b5f8da18de63b5-b0", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "tiff:Model" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "DMC-FZ28" + } + }, + { + "@id": "genid-a253d47fa93342acb1b5f8da18de63b5-b1", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "exif:ExposureTime" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "0.002" + } + }, + { + "@id": "genid-a253d47fa93342acb1b5f8da18de63b5-b10", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "exif:IsoSpeedRatings" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "100" + } + }, + { + "@id": "genid-a253d47fa93342acb1b5f8da18de63b5-b11", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "tiff:YResolution" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "180.0" + } + }, + { + "@id": "genid-a253d47fa93342acb1b5f8da18de63b5-b12", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "tiff:Make" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "Panasonic" + } + }, + { + "@id": "genid-a253d47fa93342acb1b5f8da18de63b5-b2", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "exif:Flash" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "false" + } + }, + { + "@id": "genid-a253d47fa93342acb1b5f8da18de63b5-b3", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "exif:FocalLength" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "7.3" + } + }, + { + "@id": "genid-a253d47fa93342acb1b5f8da18de63b5-b4", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "exif:FNumber" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "5.6" + } + }, + { + "@id": "genid-a253d47fa93342acb1b5f8da18de63b5-b5", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "exif:DateTimeOriginal" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "2021-06-02T12:27:15" + } + }, + { + "@id": "genid-a253d47fa93342acb1b5f8da18de63b5-b6", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "tiff:XResolution" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "180.0" + } + }, + { + "@id": "genid-a253d47fa93342acb1b5f8da18de63b5-b7", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "tiff:Software" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "Ver.1.0 " + } + }, + { + "@id": "genid-a253d47fa93342acb1b5f8da18de63b5-b8", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "tiff:Orientation" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "1" + } + }, + { + "@id": "genid-a253d47fa93342acb1b5f8da18de63b5-b9", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "tiff:ResolutionUnit" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "Inch" + } + } + ], + "schema:height": { + "@type": "xsd:string", + "@value": "2736" + }, + "schema:identifier": { + "@type": "schema:PropertyValue", + "@value": "6486108" + }, + "schema:keywords": [ + { + "@type": "xsd:string", + "@value": "Tag" + }, + { + "@type": "xsd:string", + "@value": "Sommer" + }, + { + "@type": "xsd:string", + "@value": "Vorder- / Frontallicht" + }, + { + "@type": "xsd:string", + "@value": "Seitenperspektive" + }, + { + "@type": "xsd:string", + "@value": "Erfurt" + }, + { + "@type": "xsd:string", + "@value": "Weitere Infrastruktur" + } + ], + "schema:license": { + "@language": "de", + "@value": "https://creativecommons.org/licenses/by/4.0/" + }, + "schema:name": { + "@language": "de", + "@value": "Erfurt-Parkhaus-Domplatz.jpg" + }, + "schema:sameAs": { + "@type": "xsd:anyURI", + "@value": "https://wbk.thuecat.org" + }, + "schema:thumbnailUrl": { + "@type": "xsd:string", + "@value": "https://cms.thuecat.org/o/adaptive-media/image/6486108/Thumbnail-300x300/image" + }, + "schema:url": { + "@type": "xsd:anyURI", + "@value": "https://cms.thuecat.org/o/adaptive-media/image/6486108/Preview-1280x0/image" + }, + "schema:width": { + "@type": "xsd:string", + "@value": "3648" + }, + "thuecat:licenseAuthor": { + "@language": "de", + "@value": "" + }, + "thuecat:licenseLocation": { + "@language": "de", + "@value": "" + }, + "thuecat:licensePeriod": { + "@language": "de", + "@value": "" + }, + "thuecat:licensePerson": { + "@language": "de", + "@value": "" + } + } + ] +} diff --git a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/dms_6486108/GET_b54332e6fc5338f57621cba67faf4fd4.txt b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/dms_6486108/GET_b54332e6fc5338f57621cba67faf4fd4.txt deleted file mode 100644 index 84c4222..0000000 --- a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/dms_6486108/GET_b54332e6fc5338f57621cba67faf4fd4.txt +++ /dev/null @@ -1,19 +0,0 @@ -HTTP/1.1 200 OK -Date: Wed, 17 Feb 2021 08:04:06 GMT -Content-Type: application/ld+json; charset=utf-8 -Content-Length: 6991 -Connection: keep-alive -Set-Cookie: ahSession=40427ff59a969316c84fe78d7f913ec95d073d11;path=/;expires=Sat, 20 Mar 2021 08:04:06 GMT;httpOnly=true; -Access-Control-Allow-Methods: HEAD, GET, POST, DELETE, OPTIONS -Access-Control-Allow-Headers: Authorization, Content-Type -Strict-Transport-Security: max-age=15724800; includeSubDomains -Access-Control-Allow-Credentials: true -X-Frame-Options: deny -X-XSS-Protection: 1; mode=block -X-Content-Type-Options: nosniff -Referrer-Policy: same-origin -Feature-Policy: microphone 'none'; camera 'none'; payment 'none' -Content-Security-Policy: default-src 'self'; script-src 'self' 'sha256-xfTbtWk8kVI65iLJs8LB3lWf2g0g10DS71pDdoutFHc='; style-src 'self' 'unsafe-inline' https://stackpath.bootstrapcdn.com; img-src 'self' data: blob: * -Access-Control-Allow-Origin: https://cdb.thuecat.org - -{"@context":{"schema":"http://schema.org/","dbo":"http://dbpedia.org/ontology/","dsv":"http://ontologies.sti-innsbruck.at/dsv/","foaf":"http://xmlns.com/foaf/0.1/","owl":"http://www.w3.org/2002/07/owl#","rdf":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","rdfs":"http://www.w3.org/2000/01/rdf-schema#","sh":"http://www.w3.org/ns/shacl#","xsd":"http://www.w3.org/2001/XMLSchema#","ttgds":"https://thuecat.org/ontology/ttgds/1.0/","cdb":"https://thuecat.org/ontology/cdb/1.0/","dachkg":"https://thuecat.org/ontology/dachkg/1.0/","thuecat":"https://thuecat.org/ontology/thuecat/1.0/","epapp":"https://thuecat.org/ontology/epapp/1.0/"},"@graph":[{"@id":"https://thuecat.org/resources/dms_6486108","@type":["schema:CreativeWork","schema:MediaObject","schema:Thing","schema:ImageObject","http://purl.org/dc/dcmitype/Image"],"schema:width":{"@type":"xsd:string","@value":"3648"},"schema:sameAs":{"@type":"xsd:anyURI","@value":"https://wbk.thuecat.org"},"schema:identifier":{"@type":"schema:PropertyValue","@value":"6486108"},"schema:keywords":[{"@type":"xsd:string","@value":"Tag"},{"@type":"xsd:string","@value":"Sommer"},{"@type":"xsd:string","@value":"Vorder- / Frontallicht"},{"@type":"xsd:string","@value":"Seitenperspektive"},{"@type":"xsd:string","@value":"Erfurt"},{"@type":"xsd:string","@value":"Weitere Infrastruktur"}],"schema:name":{"@language":"de","@value":"Erfurt-Parkhaus-Domplatz.jpg"},"schema:copyrightYear":{"@language":"de","@value":"2021"},"schema:height":{"@type":"xsd:string","@value":"2736"},"schema:copyrightHolder":{"@id":"https://thuecat.org/resources/018132452787-ngbe"},"schema:bitrate":{"@type":"xsd:string","@value":"8"},"schema:contentLocation":{"@id":"https://thuecat.org/resources/396420044896-drzt"},"schema:exifData":[{"@id":"genid-a253d47fa93342acb1b5f8da18de63b5-b0","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"tiff:Model"},"schema:value":{"@type":"xsd:string","@value":"DMC-FZ28"}},{"@id":"genid-a253d47fa93342acb1b5f8da18de63b5-b1","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"exif:ExposureTime"},"schema:value":{"@type":"xsd:string","@value":"0.002"}},{"@id":"genid-a253d47fa93342acb1b5f8da18de63b5-b10","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"exif:IsoSpeedRatings"},"schema:value":{"@type":"xsd:string","@value":"100"}},{"@id":"genid-a253d47fa93342acb1b5f8da18de63b5-b11","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"tiff:YResolution"},"schema:value":{"@type":"xsd:string","@value":"180.0"}},{"@id":"genid-a253d47fa93342acb1b5f8da18de63b5-b12","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"tiff:Make"},"schema:value":{"@type":"xsd:string","@value":"Panasonic"}},{"@id":"genid-a253d47fa93342acb1b5f8da18de63b5-b2","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"exif:Flash"},"schema:value":{"@type":"xsd:string","@value":"false"}},{"@id":"genid-a253d47fa93342acb1b5f8da18de63b5-b3","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"exif:FocalLength"},"schema:value":{"@type":"xsd:string","@value":"7.3"}},{"@id":"genid-a253d47fa93342acb1b5f8da18de63b5-b4","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"exif:FNumber"},"schema:value":{"@type":"xsd:string","@value":"5.6"}},{"@id":"genid-a253d47fa93342acb1b5f8da18de63b5-b5","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"exif:DateTimeOriginal"},"schema:value":{"@type":"xsd:string","@value":"2021-06-02T12:27:15"}},{"@id":"genid-a253d47fa93342acb1b5f8da18de63b5-b6","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"tiff:XResolution"},"schema:value":{"@type":"xsd:string","@value":"180.0"}},{"@id":"genid-a253d47fa93342acb1b5f8da18de63b5-b7","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"tiff:Software"},"schema:value":{"@type":"xsd:string","@value":"Ver.1.0 "}},{"@id":"genid-a253d47fa93342acb1b5f8da18de63b5-b8","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"tiff:Orientation"},"schema:value":{"@type":"xsd:string","@value":"1"}},{"@id":"genid-a253d47fa93342acb1b5f8da18de63b5-b9","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"tiff:ResolutionUnit"},"schema:value":{"@type":"xsd:string","@value":"Inch"}}],"schema:author":{"@id":"https://thuecat.org/resources/018132452787-ngbe"},"schema:thumbnailUrl":{"@type":"xsd:string","@value":"https://cms.thuecat.org/o/adaptive-media/image/6486108/Thumbnail-300x300/image"},"schema:url":{"@type":"xsd:anyURI","@value":"https://cms.thuecat.org/o/adaptive-media/image/6486108/Preview-1280x0/image"},"schema:license":{"@language":"de","@value":"https://creativecommons.org/licenses/by/4.0/"},"thuecat:licenseAuthor":{"@language":"de","@value":""},"thuecat:licenseLocation":{"@language":"de","@value":""},"thuecat:licensePeriod":{"@language":"de","@value":""},"thuecat:licensePerson":{"@language":"de","@value":""}}]} diff --git a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/dms_652340.json b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/dms_652340.json new file mode 100644 index 0000000..9f7ca46 --- /dev/null +++ b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/dms_652340.json @@ -0,0 +1,387 @@ +{ + "@context": { + "cdb": "https://thuecat.org/ontology/cdb/1.0/", + "dachkg": "https://thuecat.org/ontology/dachkg/1.0/", + "dbo": "http://dbpedia.org/ontology/", + "dsv": "http://ontologies.sti-innsbruck.at/dsv/", + "foaf": "http://xmlns.com/foaf/0.1/", + "owl": "http://www.w3.org/2002/07/owl#", + "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", + "rdfs": "http://www.w3.org/2000/01/rdf-schema#", + "schema": "http://schema.org/", + "sh": "http://www.w3.org/ns/shacl#", + "thuecat": "https://thuecat.org/ontology/thuecat/1.0/", + "ttgds": "https://thuecat.org/ontology/ttgds/1.0/", + "xsd": "http://www.w3.org/2001/XMLSchema#" + }, + "@graph": [ + { + "@id": "https://thuecat.org/resources/dms_652340", + "@type": [ + "schema:CreativeWork", + "schema:MediaObject", + "schema:Thing", + "schema:ImageObject", + "http://purl.org/dc/dcmitype/Image" + ], + "schema:author": { + "@type": "xsd:string", + "@value": "Florian Trykowski" + }, + "schema:bitrate": { + "@type": "xsd:string", + "@value": "8" + }, + "schema:copyrightYear": { + "@language": "de", + "@value": "2019" + }, + "schema:description": { + "@language": "de", + "@value": "Ansicht der Kr\u00e4merbr\u00fccke, Erfurt" + }, + "schema:exifData": [ + { + "@id": "genid-5958021d95614a2193e3f66fdc21fad1-b87540", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "tiff:Model" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "NIKON D5" + } + }, + { + "@id": "genid-5958021d95614a2193e3f66fdc21fad1-b87541", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "exif:ExposureTime" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "0.005" + } + }, + { + "@id": "genid-5958021d95614a2193e3f66fdc21fad1-b87542", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "tiff:SamplesPerPixel" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "3" + } + }, + { + "@id": "genid-5958021d95614a2193e3f66fdc21fad1-b87543", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "exif:IsoSpeedRatings" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "900" + } + }, + { + "@id": "genid-5958021d95614a2193e3f66fdc21fad1-b87544", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "tiff:YResolution" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "300.0" + } + }, + { + "@id": "genid-5958021d95614a2193e3f66fdc21fad1-b87545", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "tiff:Make" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "NIKON CORPORATION" + } + }, + { + "@id": "genid-5958021d95614a2193e3f66fdc21fad1-b87546", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "exif:Flash" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "false" + } + }, + { + "@id": "genid-5958021d95614a2193e3f66fdc21fad1-b87547", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "exif:FocalLength" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "42.0" + } + }, + { + "@id": "genid-5958021d95614a2193e3f66fdc21fad1-b87548", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "exif:FNumber" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "10.0" + } + }, + { + "@id": "genid-5958021d95614a2193e3f66fdc21fad1-b87549", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "exif:DateTimeOriginal" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "2019-08-16T15:14:43" + } + }, + { + "@id": "genid-5958021d95614a2193e3f66fdc21fad1-b87550", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "tiff:XResolution" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "300.0" + } + }, + { + "@id": "genid-5958021d95614a2193e3f66fdc21fad1-b87551", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "tiff:Software" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "Adobe Photoshop CS6 (Macintosh)" + } + }, + { + "@id": "genid-5958021d95614a2193e3f66fdc21fad1-b87552", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "tiff:Orientation" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "1" + } + }, + { + "@id": "genid-5958021d95614a2193e3f66fdc21fad1-b87553", + "@type": [ + "schema:Intangible", + "schema:StructuredValue", + "schema:Thing", + "schema:PropertyValue" + ], + "schema:name": { + "@type": "xsd:string", + "@value": "tiff:ResolutionUnit" + }, + "schema:value": { + "@type": "xsd:string", + "@value": "Inch" + } + } + ], + "schema:height": { + "@type": "xsd:string", + "@value": "3585" + }, + "schema:identifier": { + "@type": "schema:PropertyValue", + "@value": "652340" + }, + "schema:keywords": [ + { + "@type": "xsd:string", + "@value": "Tag" + }, + { + "@type": "xsd:string", + "@value": "Geb\u00e4ude / Architektur" + }, + { + "@type": "xsd:string", + "@value": "Sommer" + }, + { + "@type": "xsd:string", + "@value": "St\u00e4dte und Architektur" + }, + { + "@type": "xsd:string", + "@value": "Erfurt" + }, + { + "@type": "xsd:string", + "@value": "Fr\u00fchling" + }, + { + "@type": "xsd:string", + "@value": "fachwerk" + }, + { + "@type": "xsd:string", + "@value": "sehensw\u00fcrdigkeit" + }, + { + "@type": "xsd:string", + "@value": "sightseeing" + }, + { + "@type": "xsd:string", + "@value": "stadtansicht" + }, + { + "@type": "xsd:string", + "@value": "haus" + }, + { + "@type": "xsd:string", + "@value": "balkon" + }, + { + "@type": "xsd:string", + "@value": "gesch\u00e4ft" + } + ], + "schema:license": { + "@language": "de", + "@value": "https://creativecommons.org/publicdomain/zero/1.0/deed.de" + }, + "schema:name": { + "@language": "de", + "@value": "Erfurt-Kraemerbruecke-13.jpg" + }, + "schema:sameAs": { + "@type": "xsd:anyURI", + "@value": "https://wbk.thuecat.org" + }, + "schema:thumbnailUrl": { + "@type": "xsd:string", + "@value": "https://cms.thuecat.org/o/adaptive-media/image/652340/Thumbnail-300x300/image" + }, + "schema:url": { + "@type": "xsd:anyURI", + "@value": "https://cms.thuecat.org/o/adaptive-media/image/652340/Preview-1280x0/image" + }, + "schema:width": { + "@type": "xsd:string", + "@value": "5378" + }, + "thuecat:licenseAuthor": { + "@language": "de", + "@value": "https://home.ttgnet.de/ttg/projekte/10006/90136/Projektdokumente/Vergabe%20Rahmenvertrag%20Fotoproduktion" + }, + "thuecat:licenseLocation": { + "@language": "de", + "@value": "https://home.ttgnet.de/ttg/projekte/10006/90136/Projektdokumente/Fotoproduktion-Trykowski/2019%2007%20Shooting%20Erfurt%20Panoramabild%20ega%20und%20Innenstadt" + }, + "thuecat:licensePeriod": { + "@language": "de", + "@value": "" + }, + "thuecat:licensePerson": { + "@language": "de", + "@value": "https://home.ttgnet.de/ttg/projekte/10006/90136/Projektdokumente/Fotoproduktion-Trykowski/2019%2007%20Shooting%20Erfurt%20Panoramabild%20ega%20und%20Innenstadt" + } + } + ] +} diff --git a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/dms_652340/GET_f02dc2b752cd9fa52a7adb749e9ccfe2.txt b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/dms_652340/GET_f02dc2b752cd9fa52a7adb749e9ccfe2.txt deleted file mode 100644 index 57594a7..0000000 --- a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/dms_652340/GET_f02dc2b752cd9fa52a7adb749e9ccfe2.txt +++ /dev/null @@ -1,19 +0,0 @@ -HTTP/1.1 200 OK -Date: Wed, 17 Feb 2021 08:03:50 GMT -Content-Type: application/ld+json; charset=utf-8 -Content-Length: 7756 -Connection: keep-alive -Set-Cookie: ahSession=3df5d27f7b64e4de290f4f81b2a6b540621a3c83;path=/;expires=Sat, 20 Mar 2021 08:03:50 GMT;httpOnly=true; -Access-Control-Allow-Methods: HEAD, GET, POST, DELETE, OPTIONS -Access-Control-Allow-Headers: Authorization, Content-Type -Strict-Transport-Security: max-age=15724800; includeSubDomains -Access-Control-Allow-Credentials: true -X-Frame-Options: deny -X-XSS-Protection: 1; mode=block -X-Content-Type-Options: nosniff -Referrer-Policy: same-origin -Feature-Policy: microphone 'none'; camera 'none'; payment 'none' -Content-Security-Policy: default-src 'self'; script-src 'self' 'sha256-xfTbtWk8kVI65iLJs8LB3lWf2g0g10DS71pDdoutFHc='; style-src 'self' 'unsafe-inline' https://stackpath.bootstrapcdn.com; img-src 'self' data: blob: * -Access-Control-Allow-Origin: https://cdb.thuecat.org - -{"@context":{"schema":"http://schema.org/","dbo":"http://dbpedia.org/ontology/","dsv":"http://ontologies.sti-innsbruck.at/dsv/","foaf":"http://xmlns.com/foaf/0.1/","owl":"http://www.w3.org/2002/07/owl#","rdf":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","rdfs":"http://www.w3.org/2000/01/rdf-schema#","sh":"http://www.w3.org/ns/shacl#","xsd":"http://www.w3.org/2001/XMLSchema#","ttgds":"https://thuecat.org/ontology/ttgds/1.0/","cdb":"https://thuecat.org/ontology/cdb/1.0/","dachkg":"https://thuecat.org/ontology/dachkg/1.0/","thuecat":"https://thuecat.org/ontology/thuecat/1.0/"},"@graph":[{"@id":"https://thuecat.org/resources/dms_652340","@type":["schema:CreativeWork","schema:MediaObject","schema:Thing","schema:ImageObject","http://purl.org/dc/dcmitype/Image"],"schema:width":{"@type":"xsd:string","@value":"5378"},"schema:description":{"@language":"de","@value":"Ansicht der Krämerbrücke, Erfurt"},"schema:sameAs":{"@type":"xsd:anyURI","@value":"https://wbk.thuecat.org"},"schema:identifier":{"@type":"schema:PropertyValue","@value":"652340"},"schema:keywords":[{"@type":"xsd:string","@value":"Tag"},{"@type":"xsd:string","@value":"Gebäude / Architektur"},{"@type":"xsd:string","@value":"Sommer"},{"@type":"xsd:string","@value":"Städte und Architektur"},{"@type":"xsd:string","@value":"Erfurt"},{"@type":"xsd:string","@value":"Frühling"},{"@type":"xsd:string","@value":"fachwerk"},{"@type":"xsd:string","@value":"sehenswürdigkeit"},{"@type":"xsd:string","@value":"sightseeing"},{"@type":"xsd:string","@value":"stadtansicht"},{"@type":"xsd:string","@value":"haus"},{"@type":"xsd:string","@value":"balkon"},{"@type":"xsd:string","@value":"geschäft"}],"schema:name":{"@language":"de","@value":"Erfurt-Kraemerbruecke-13.jpg"},"schema:copyrightYear":{"@language":"de","@value":"2019"},"schema:height":{"@type":"xsd:string","@value":"3585"},"schema:bitrate":{"@type":"xsd:string","@value":"8"},"schema:exifData":[{"@id":"genid-5958021d95614a2193e3f66fdc21fad1-b87540","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"tiff:Model"},"schema:value":{"@type":"xsd:string","@value":"NIKON D5"}},{"@id":"genid-5958021d95614a2193e3f66fdc21fad1-b87541","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"exif:ExposureTime"},"schema:value":{"@type":"xsd:string","@value":"0.005"}},{"@id":"genid-5958021d95614a2193e3f66fdc21fad1-b87542","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"tiff:SamplesPerPixel"},"schema:value":{"@type":"xsd:string","@value":"3"}},{"@id":"genid-5958021d95614a2193e3f66fdc21fad1-b87543","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"exif:IsoSpeedRatings"},"schema:value":{"@type":"xsd:string","@value":"900"}},{"@id":"genid-5958021d95614a2193e3f66fdc21fad1-b87544","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"tiff:YResolution"},"schema:value":{"@type":"xsd:string","@value":"300.0"}},{"@id":"genid-5958021d95614a2193e3f66fdc21fad1-b87545","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"tiff:Make"},"schema:value":{"@type":"xsd:string","@value":"NIKON CORPORATION"}},{"@id":"genid-5958021d95614a2193e3f66fdc21fad1-b87546","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"exif:Flash"},"schema:value":{"@type":"xsd:string","@value":"false"}},{"@id":"genid-5958021d95614a2193e3f66fdc21fad1-b87547","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"exif:FocalLength"},"schema:value":{"@type":"xsd:string","@value":"42.0"}},{"@id":"genid-5958021d95614a2193e3f66fdc21fad1-b87548","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"exif:FNumber"},"schema:value":{"@type":"xsd:string","@value":"10.0"}},{"@id":"genid-5958021d95614a2193e3f66fdc21fad1-b87549","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"exif:DateTimeOriginal"},"schema:value":{"@type":"xsd:string","@value":"2019-08-16T15:14:43"}},{"@id":"genid-5958021d95614a2193e3f66fdc21fad1-b87550","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"tiff:XResolution"},"schema:value":{"@type":"xsd:string","@value":"300.0"}},{"@id":"genid-5958021d95614a2193e3f66fdc21fad1-b87551","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"tiff:Software"},"schema:value":{"@type":"xsd:string","@value":"Adobe Photoshop CS6 (Macintosh)"}},{"@id":"genid-5958021d95614a2193e3f66fdc21fad1-b87552","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"tiff:Orientation"},"schema:value":{"@type":"xsd:string","@value":"1"}},{"@id":"genid-5958021d95614a2193e3f66fdc21fad1-b87553","@type":["schema:Intangible","schema:StructuredValue","schema:Thing","schema:PropertyValue"],"schema:name":{"@type":"xsd:string","@value":"tiff:ResolutionUnit"},"schema:value":{"@type":"xsd:string","@value":"Inch"}}],"schema:author":{"@type":"xsd:string","@value":"Florian Trykowski"},"schema:thumbnailUrl":{"@type":"xsd:string","@value":"https://cms.thuecat.org/o/adaptive-media/image/652340/Thumbnail-300x300/image"},"schema:url":{"@type":"xsd:anyURI","@value":"https://cms.thuecat.org/o/adaptive-media/image/652340/Preview-1280x0/image"},"schema:license":{"@language":"de","@value":"https://creativecommons.org/publicdomain/zero/1.0/deed.de"},"thuecat:licenseAuthor":{"@language":"de","@value":"https://home.ttgnet.de/ttg/projekte/10006/90136/Projektdokumente/Vergabe%20Rahmenvertrag%20Fotoproduktion"},"thuecat:licenseLocation":{"@language":"de","@value":"https://home.ttgnet.de/ttg/projekte/10006/90136/Projektdokumente/Fotoproduktion-Trykowski/2019%2007%20Shooting%20Erfurt%20Panoramabild%20ega%20und%20Innenstadt"},"thuecat:licensePeriod":{"@language":"de","@value":""},"thuecat:licensePerson":{"@language":"de","@value":"https://home.ttgnet.de/ttg/projekte/10006/90136/Projektdokumente/Fotoproduktion-Trykowski/2019%2007%20Shooting%20Erfurt%20Panoramabild%20ega%20und%20Innenstadt"}}]} diff --git a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/e_23bec7f80c864c358da033dd75328f27-rfa.json b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/e_23bec7f80c864c358da033dd75328f27-rfa.json new file mode 100644 index 0000000..d957326 --- /dev/null +++ b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/e_23bec7f80c864c358da033dd75328f27-rfa.json @@ -0,0 +1,197 @@ +{ + "@context": { + "cdb": "https://thuecat.org/ontology/cdb/1.0/", + "dachkg": "https://thuecat.org/ontology/dachkg/1.0/", + "dbo": "http://dbpedia.org/ontology/", + "dsv": "http://ontologies.sti-innsbruck.at/dsv/", + "epapp": "https://thuecat.org/ontology/epapp/1.0/", + "foaf": "http://xmlns.com/foaf/0.1/", + "owl": "http://www.w3.org/2002/07/owl#", + "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", + "rdfs": "http://www.w3.org/2000/01/rdf-schema#", + "schema": "http://schema.org/", + "sh": "http://www.w3.org/ns/shacl#", + "thuecat": "https://thuecat.org/ontology/thuecat/1.0/", + "ttgds": "https://thuecat.org/ontology/ttgds/1.0/", + "xsd": "http://www.w3.org/2001/XMLSchema#" + }, + "@graph": [ + { + "@id": "https://thuecat.org/resources/e_23bec7f80c864c358da033dd75328f27-rfa", + "@type": [ + "schema:Intangible", + "schema:Thing", + "thuecat:AccessibilitySpecification", + "ttgds:AccessibilitySpecification" + ], + "schema:name": [ + { + "@language": "de", + "@value": "Alte Synagoge Erfurt" + }, + { + "@language": "en", + "@value": "Old synagogue Erfurt" + } + ], + "thuecat:accessibilityCertification": { + "@id": "genid-5215e8f6feb440cda65b5b5735240c68-b0", + "@type": [ + "schema:Intangible", + "schema:Thing", + "thuecat:AccessibilityCertification" + ], + "schema:validFrom": { + "@type": "xsd:string", + "@value": "2019-04-01" + }, + "schema:validThrough": { + "@type": "xsd:string", + "@value": "2022-03-31" + }, + "thuecat:accessibilityCertificationStatus": { + "@type": "thuecat:AccessibilityCertificationStatus", + "@value": "thuecat:AccessibilityChecked" + }, + "thuecat:certificationAccessibilityDeaf": { + "@type": "thuecat:CertificationLevel", + "@value": "thuecat:None" + }, + "thuecat:certificationAccessibilityMental": { + "@type": "thuecat:CertificationLevel", + "@value": "thuecat:None" + }, + "thuecat:certificationAccessibilityPartiallyDeaf": { + "@type": "thuecat:CertificationLevel", + "@value": "thuecat:None" + }, + "thuecat:certificationAccessibilityPartiallyVisual": { + "@type": "thuecat:CertificationLevel", + "@value": "thuecat:Info" + }, + "thuecat:certificationAccessibilityVisual": { + "@type": "thuecat:CertificationLevel", + "@value": "thuecat:None" + }, + "thuecat:certificationAccessibilityWalking": { + "@type": "thuecat:CertificationLevel", + "@value": "thuecat:Info" + }, + "thuecat:certificationAccessibilityWheelchair": { + "@type": "thuecat:CertificationLevel", + "@value": "thuecat:Info" + } + }, + "thuecat:accessibilitySearchCriteria": [ + { + "@type": "thuecat:facilityAccessibilityWalking", + "@value": "thuecat:AllRoomsStepFreeAccess" + }, + { + "@type": "thuecat:facilityAccessibilityVisual", + "@value": "thuecat:AssistanceDogsWelcome" + }, + { + "@type": "thuecat:facilityAccessibilityWalking", + "@value": "thuecat:HingedGrabRailToilet" + }, + { + "@type": "thuecat:facilityAccessibilityWalking", + "@value": "thuecat:LateralAccessibleToilet" + }, + { + "@type": "thuecat:facilityAccessibilityWalking", + "@value": "thuecat:StepFreeAccess" + }, + { + "@type": "thuecat:facilityAccessibilityWalking", + "@value": "thuecat:ToiletsPeopleWithDisabilities" + }, + { + "@type": "thuecat:facilityAccessibilityVisual", + "@value": "thuecat:VisuallyContrastingStepEdges" + }, + { + "@type": "thuecat:facilityAccessibilityDeaf", + "@value": "thuecat:AudioInductionLoop" + }, + { + "@type": "thuecat:facilityAccessibilityMental", + "@value": "thuecat:InformationWithPictogramsOrPictures" + }, + { + "@type": "thuecat:facilityAccessibilityWalking", + "@value": "thuecat:NinetyCMWidthPassageWays" + }, + { + "@type": "thuecat:facilityAccessibilityVisual", + "@value": "thuecat:OffersInPictoralLanguage" + }, + { + "@type": "thuecat:facilityAccessibilityVisual", + "@value": "thuecat:SpecialOffersBlindPeople" + }, + { + "@type": "thuecat:facilityAccessibilityDeaf", + "@value": "thuecat:SpecialOffersHearingImpairment" + }, + { + "@type": "thuecat:facilityAccessibilityVisual", + "@value": "thuecat:SpecialOffersVisualImpairment" + }, + { + "@type": "thuecat:facilityAccessibilityWalking", + "@value": "thuecat:SpecialOffersWalkingImpairment" + }, + { + "@type": "thuecat:facilityAccessibilityWalking", + "@value": "thuecat:SpecialOffersWheelchairUsers" + }, + { + "@type": "thuecat:facilityAccessibilityVisual", + "@value": "thuecat:TactileOffers" + } + ], + "thuecat:shortDescriptionAccessibilityDeaf": [ + { + "@language": "de", + "@value": "Deutsche Beschreibung von shortDescriptionAccessibilityDeaf" + }, + { + "@language": "en", + "@value": "English description of shortDescriptionAccessibilityDeaf" + } + ], + "thuecat:shortDescriptionAccessibilityMental": [ + { + "@language": "de", + "@value": "Deutsche Beschreibung von shortDescriptionAccessibilityMental" + }, + { + "@language": "en", + "@value": "English description of shortDescriptionAccessibilityMental" + } + ], + "thuecat:shortDescriptionAccessibilityVisual": [ + { + "@language": "en", + "@value": "English description of shortDescriptionAccessibilityVisual" + }, + { + "@language": "de", + "@value": "Deutsche Beschreibung von shortDescriptionAccessibilityVisual" + } + ], + "thuecat:shortDescriptionAccessibilityWalking": [ + { + "@language": "en", + "@value": "English description of shortDescriptionAccessibilityWalking" + }, + { + "@language": "de", + "@value": "Deutsche Beschreibung von shortDescriptionAccessibilityWalking" + } + ] + } + ] +} diff --git a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/e_23bec7f80c864c358da033dd75328f27-rfa/GET_8cb40e4a18d302fc110a010a7d90e133.txt b/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/e_23bec7f80c864c358da033dd75328f27-rfa/GET_8cb40e4a18d302fc110a010a7d90e133.txt deleted file mode 100644 index d9c3d31..0000000 --- a/Tests/Functional/Fixtures/Import/Guzzle/thuecat.org/resources/e_23bec7f80c864c358da033dd75328f27-rfa/GET_8cb40e4a18d302fc110a010a7d90e133.txt +++ /dev/null @@ -1,19 +0,0 @@ -HTTP/1.1 200 OK -Date: Wed, 17 Feb 2021 08:03:50 GMT -Content-Type: application/ld+json; charset=utf-8 -Content-Length: 7756 -Connection: keep-alive -Set-Cookie: ahSession=3df5d27f7b64e4de290f4f81b2a6b540621a3c83;path=/;expires=Sat, 20 Mar 2021 08:03:50 GMT;httpOnly=true; -Access-Control-Allow-Methods: HEAD, GET, POST, DELETE, OPTIONS -Access-Control-Allow-Headers: Authorization, Content-Type -Strict-Transport-Security: max-age=15724800; includeSubDomains -Access-Control-Allow-Credentials: true -X-Frame-Options: deny -X-XSS-Protection: 1; mode=block -X-Content-Type-Options: nosniff -Referrer-Policy: same-origin -Feature-Policy: microphone 'none'; camera 'none'; payment 'none' -Content-Security-Policy: default-src 'self'; script-src 'self' 'sha256-xfTbtWk8kVI65iLJs8LB3lWf2g0g10DS71pDdoutFHc='; style-src 'self' 'unsafe-inline' https://stackpath.bootstrapcdn.com; img-src 'self' data: blob: * -Access-Control-Allow-Origin: https://cdb.thuecat.org - -{"@context":{"schema":"http://schema.org/","dbo":"http://dbpedia.org/ontology/","dsv":"http://ontologies.sti-innsbruck.at/dsv/","foaf":"http://xmlns.com/foaf/0.1/","owl":"http://www.w3.org/2002/07/owl#","rdf":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","rdfs":"http://www.w3.org/2000/01/rdf-schema#","sh":"http://www.w3.org/ns/shacl#","xsd":"http://www.w3.org/2001/XMLSchema#","ttgds":"https://thuecat.org/ontology/ttgds/1.0/","cdb":"https://thuecat.org/ontology/cdb/1.0/","dachkg":"https://thuecat.org/ontology/dachkg/1.0/","thuecat":"https://thuecat.org/ontology/thuecat/1.0/","epapp":"https://thuecat.org/ontology/epapp/1.0/"},"@graph":[{"@id":"https://thuecat.org/resources/e_23bec7f80c864c358da033dd75328f27-rfa","@type":["schema:Intangible","schema:Thing","thuecat:AccessibilitySpecification","ttgds:AccessibilitySpecification"],"schema:name":[{"@language":"de","@value":"Alte Synagoge Erfurt"},{"@language":"en","@value":"Old synagogue Erfurt"}],"thuecat:accessibilityCertification":{"@id":"genid-5215e8f6feb440cda65b5b5735240c68-b0","@type":["schema:Intangible","schema:Thing","thuecat:AccessibilityCertification"],"schema:validFrom":{"@type":"xsd:string","@value":"2019-04-01"},"schema:validThrough":{"@type":"xsd:string","@value":"2022-03-31"},"thuecat:accessibilityCertificationStatus":{"@type":"thuecat:AccessibilityCertificationStatus","@value":"thuecat:AccessibilityChecked"},"thuecat:certificationAccessibilityDeaf":{"@type":"thuecat:CertificationLevel","@value":"thuecat:None"},"thuecat:certificationAccessibilityMental":{"@type":"thuecat:CertificationLevel","@value":"thuecat:None"},"thuecat:certificationAccessibilityPartiallyDeaf":{"@type":"thuecat:CertificationLevel","@value":"thuecat:None"},"thuecat:certificationAccessibilityPartiallyVisual":{"@type":"thuecat:CertificationLevel","@value":"thuecat:Info"},"thuecat:certificationAccessibilityVisual":{"@type":"thuecat:CertificationLevel","@value":"thuecat:None"},"thuecat:certificationAccessibilityWalking":{"@type":"thuecat:CertificationLevel","@value":"thuecat:Info"},"thuecat:certificationAccessibilityWheelchair":{"@type":"thuecat:CertificationLevel","@value":"thuecat:Info"}},"thuecat:accessibilitySearchCriteria":[{"@type":"thuecat:facilityAccessibilityWalking","@value":"thuecat:AllRoomsStepFreeAccess"},{"@type":"thuecat:facilityAccessibilityVisual","@value":"thuecat:AssistanceDogsWelcome"},{"@type":"thuecat:facilityAccessibilityWalking","@value":"thuecat:HingedGrabRailToilet"},{"@type":"thuecat:facilityAccessibilityWalking","@value":"thuecat:LateralAccessibleToilet"},{"@type":"thuecat:facilityAccessibilityWalking","@value":"thuecat:StepFreeAccess"},{"@type":"thuecat:facilityAccessibilityWalking","@value":"thuecat:ToiletsPeopleWithDisabilities"},{"@type":"thuecat:facilityAccessibilityVisual","@value":"thuecat:VisuallyContrastingStepEdges"},{"@type":"thuecat:facilityAccessibilityDeaf","@value":"thuecat:AudioInductionLoop"},{"@type":"thuecat:facilityAccessibilityMental","@value":"thuecat:InformationWithPictogramsOrPictures"},{"@type":"thuecat:facilityAccessibilityWalking","@value":"thuecat:NinetyCMWidthPassageWays"},{"@type":"thuecat:facilityAccessibilityVisual","@value":"thuecat:OffersInPictoralLanguage"},{"@type":"thuecat:facilityAccessibilityVisual","@value":"thuecat:SpecialOffersBlindPeople"},{"@type":"thuecat:facilityAccessibilityDeaf","@value":"thuecat:SpecialOffersHearingImpairment"},{"@type":"thuecat:facilityAccessibilityVisual","@value":"thuecat:SpecialOffersVisualImpairment"},{"@type":"thuecat:facilityAccessibilityWalking","@value":"thuecat:SpecialOffersWalkingImpairment"},{"@type":"thuecat:facilityAccessibilityWalking","@value":"thuecat:SpecialOffersWheelchairUsers"},{"@type":"thuecat:facilityAccessibilityVisual","@value":"thuecat:TactileOffers"}],"thuecat:shortDescriptionAccessibilityDeaf":[{"@language":"de","@value":"Deutsche Beschreibung von shortDescriptionAccessibilityDeaf"},{"@language":"en","@value":"English description of shortDescriptionAccessibilityDeaf"}],"thuecat:shortDescriptionAccessibilityMental":[{"@language":"de","@value":"Deutsche Beschreibung von shortDescriptionAccessibilityMental"},{"@language":"en","@value":"English description of shortDescriptionAccessibilityMental"}],"thuecat:shortDescriptionAccessibilityVisual":[{"@language":"en","@value":"English description of shortDescriptionAccessibilityVisual"},{"@language":"de","@value":"Deutsche Beschreibung von shortDescriptionAccessibilityVisual"}],"thuecat:shortDescriptionAccessibilityWalking":[{"@language":"en","@value":"English description of shortDescriptionAccessibilityWalking"},{"@language":"de","@value":"Deutsche Beschreibung von shortDescriptionAccessibilityWalking"}]}]} diff --git a/Tests/Functional/GuzzleClientFaker.php b/Tests/Functional/GuzzleClientFaker.php new file mode 100644 index 0000000..27295b6 --- /dev/null +++ b/Tests/Functional/GuzzleClientFaker.php @@ -0,0 +1,76 @@ +reset(); + $GLOBALS['TYPO3_CONF_VARS']['HTTP']['handler']['faker'] = function (callable $handler) { + return self::getMockHandler(); + }; + + } + + /** + * Cleans things up, call it in tests tearDown() method. + */ + public static function tearDown(): void + { + self::getMockHandler()->reset(); + unset($GLOBALS['TYPO3_CONF_VARS']['HTTP']['handler']['faker']); + } + + /** + * Adds a new response to the stack with defaults, returning the file contents of given file. + */ + public static function appendResponseFromFile(string $fileName): void + { + $fileContent = file_get_contents($fileName); + if ($fileContent === false) { + throw new \Exception('Could not load file: ' . $fileName, 1656485162); + } + + self::appendResponseFromContent($fileContent); + } + + public static function appendNotFoundResponse(): void + { + self::appendResponse(new Response(SymfonyResponse::HTTP_NOT_FOUND)); + } + + private static function appendResponseFromContent(string $content): void + { + self::appendResponse(new Response( + SymfonyResponse::HTTP_OK, + [], + $content + )); + } + + private static function getMockHandler(): MockHandler + { + if (!self::$mockHandler instanceof MockHandler) { + self::$mockHandler = new MockHandler(); + } + + return self::$mockHandler; + } + + private static function appendResponse(Response $response): void + { + self::getMockHandler()->append($response); + } +} diff --git a/Tests/Functional/ImportTest.php b/Tests/Functional/ImportTest.php index 8842aec..ad8aa5a 100644 --- a/Tests/Functional/ImportTest.php +++ b/Tests/Functional/ImportTest.php @@ -23,19 +23,12 @@ namespace WerkraumMedia\ThueCat\Tests\Functional; * 02110-1301, USA. */ -use Csa\GuzzleHttp\Middleware\Cache\Adapter\MockStorageAdapter; -use Csa\GuzzleHttp\Middleware\Cache\MockMiddleware; -use Prophecy\Prophecy\ObjectProphecy; -use Psr\Http\Message\ServerRequestInterface; -use TYPO3\CMS\Backend\Routing\Route; -use TYPO3\CMS\Core\Core\Environment; use TYPO3\CMS\Core\Localization\LanguageService; -use TYPO3\CMS\Extbase\Core\Bootstrap; use TYPO3\TestingFramework\Core\Functional\FunctionalTestCase as TestCase; +use WerkraumMedia\ThueCat\Domain\Import\Importer; +use WerkraumMedia\ThueCat\Domain\Repository\Backend\ImportConfigurationRepository; /** - * @covers \WerkraumMedia\ThueCat\Controller\Backend\AbstractController - * @covers \WerkraumMedia\ThueCat\Controller\Backend\ImportController * @covers \WerkraumMedia\ThueCat\DependencyInjection\ConverterPass * @covers \WerkraumMedia\ThueCat\DependencyInjection\UrlProvidersPass * @covers \WerkraumMedia\ThueCat\Domain\Import\Importer\SaveData @@ -44,7 +37,6 @@ use TYPO3\TestingFramework\Core\Functional\FunctionalTestCase as TestCase; * @covers \WerkraumMedia\ThueCat\Domain\Repository\Backend\TownRepository * @covers \WerkraumMedia\ThueCat\Extension * @covers \WerkraumMedia\ThueCat\Typo3Wrapper\TranslationService - * @covers \WerkraumMedia\ThueCat\View\Backend\Menu * * @uses \WerkraumMedia\ThueCat\Domain\Import\Converter\Organisation * @uses \WerkraumMedia\ThueCat\Domain\Import\Converter\Registry @@ -95,40 +87,17 @@ class ImportTest extends TestCase protected function setUp(): void { parent::setUp(); - - $GLOBALS['TYPO3_CONF_VARS']['HTTP']['handler']['recorder'] = new MockMiddleware( - new MockStorageAdapter( - __DIR__ . '/Fixtures/Import/Guzzle/' - ), - // Set to 'record' to record requests and create fixtures. - '', - true - ); + GuzzleClientFaker::registerClient(); $this->setUpBackendUserFromFixture(1); $GLOBALS['LANG'] = $this->getContainer()->get(LanguageService::class); - - // We are NOT in cli (simulate backend request environment) - Environment::initialize( - Environment::getContext(), - false, - Environment::isComposerMode(), - Environment::getProjectPath(), - Environment::getPublicPath(), - Environment::getVarPath(), - Environment::getConfigPath(), - Environment::getCurrentScript(), - 'UNIX' - ); } protected function tearDown(): void { unset($GLOBALS['LANG']); - unset($GLOBALS['TYPO3_CONF_VARS']['HTTP']['handler']['recorder']); - unset($GLOBALS['TYPO3_REQUEST']); - $_GET = []; + GuzzleClientFaker::tearDown(); parent::tearDown(); } @@ -139,11 +108,10 @@ class ImportTest extends TestCase public function importsFreshOrganization(): void { $this->importDataSet(__DIR__ . '/Fixtures/Import/ImportsFreshOrganization.xml'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/018132452787-ngbe.json'); - $serverRequest = $this->getServerRequest(); - - $extbaseBootstrap = $this->getContainer()->get(Bootstrap::class); - $extbaseBootstrap->handleBackendRequest($serverRequest->reveal()); + $configuration = $this->get(ImportConfigurationRepository::class)->findByUid(1); + $this->get(Importer::class)->importConfiguration($configuration); $this->assertCSVDataSet('EXT:thuecat/Tests/Functional/Fixtures/Import/ImportsFreshOrganization.csv'); } @@ -154,11 +122,10 @@ class ImportTest extends TestCase public function updatesExistingOrganization(): void { $this->importDataSet(__DIR__ . '/Fixtures/Import/UpdatesExistingOrganization.xml'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/018132452787-ngbe.json'); - $serverRequest = $this->getServerRequest(); - - $extbaseBootstrap = $this->getContainer()->get(Bootstrap::class); - $extbaseBootstrap->handleBackendRequest($serverRequest->reveal()); + $configuration = $this->get(ImportConfigurationRepository::class)->findByUid(1); + $this->get(Importer::class)->importConfiguration($configuration); $organisations = $this->getAllRecords('tx_thuecat_organisation'); self::assertCount(1, $organisations); @@ -186,11 +153,14 @@ class ImportTest extends TestCase public function importsTown(): void { $this->importDataSet(__DIR__ . '/Fixtures/Import/ImportsTown.xml'); + // TODO: Check why we request both twice. + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/043064193523-jcyt.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/018132452787-ngbe.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/043064193523-jcyt.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/018132452787-ngbe.json'); - $serverRequest = $this->getServerRequest(); - - $extbaseBootstrap = $this->getContainer()->get(Bootstrap::class); - $extbaseBootstrap->handleBackendRequest($serverRequest->reveal()); + $configuration = $this->get(ImportConfigurationRepository::class)->findByUid(1); + $this->get(Importer::class)->importConfiguration($configuration); $this->assertCSVDataSet('EXT:thuecat/Tests/Functional/Fixtures/Import/ImportsTown.csv'); } @@ -201,11 +171,11 @@ class ImportTest extends TestCase public function importsTownWithRelation(): void { $this->importDataSet(__DIR__ . '/Fixtures/Import/ImportsTownWithRelation.xml'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/043064193523-jcyt.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/018132452787-ngbe.json'); - $serverRequest = $this->getServerRequest(); - - $extbaseBootstrap = $this->getContainer()->get(Bootstrap::class); - $extbaseBootstrap->handleBackendRequest($serverRequest->reveal()); + $configuration = $this->get(ImportConfigurationRepository::class)->findByUid(1); + $this->get(Importer::class)->importConfiguration($configuration); $this->assertCSVDataSet('EXT:thuecat/Tests/Functional/Fixtures/Import/ImportsTownWithRelation.csv'); } @@ -216,11 +186,31 @@ class ImportTest extends TestCase public function importsTouristAttractionsWithRelations(): void { $this->importDataSet(__DIR__ . '/Fixtures/Import/ImportsTouristAttractionsWithRelations.xml'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/835224016581-dara.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/018132452787-ngbe.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/043064193523-jcyt.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/573211638937-gmqb.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/508431710173-wwne.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/dms_5159216.json'); + GuzzleClientFaker::appendNotFoundResponse(); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/dms_5159186.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/396420044896-drzt.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/dms_6486108.json'); + GuzzleClientFaker::appendNotFoundResponse(); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/165868194223-zmqf.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/497839263245-edbm.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/dms_5099196.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/e_23bec7f80c864c358da033dd75328f27-rfa.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/215230952334-yyno.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/052821473718-oxfq.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/dms_134362.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/dms_134288.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/dms_652340.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/440055527204-ocar.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/dms_5197164.json'); - $serverRequest = $this->getServerRequest(); - - $extbaseBootstrap = $this->getContainer()->get(Bootstrap::class); - $extbaseBootstrap->handleBackendRequest($serverRequest->reveal()); + $configuration = $this->get(ImportConfigurationRepository::class)->findByUid(1); + $this->get(Importer::class)->importConfiguration($configuration); $this->assertCSVDataSet('EXT:thuecat/Tests/Functional/Fixtures/Import/ImportsTouristAttractionsWithRelations.csv'); } @@ -231,11 +221,14 @@ class ImportTest extends TestCase public function importsTouristInformationWithRelation(): void { $this->importDataSet(__DIR__ . '/Fixtures/Import/ImportsTouristInformationWithRelation.xml'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/333039283321-xxwg.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/018132452787-ngbe.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/043064193523-jcyt.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/573211638937-gmqb.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/356133173991-cryw.json'); - $serverRequest = $this->getServerRequest(); - - $extbaseBootstrap = $this->getContainer()->get(Bootstrap::class); - $extbaseBootstrap->handleBackendRequest($serverRequest->reveal()); + $configuration = $this->get(ImportConfigurationRepository::class)->findByUid(1); + $this->get(Importer::class)->importConfiguration($configuration); $this->assertCSVDataSet('EXT:thuecat/Tests/Functional/Fixtures/Import/ImportsTouristInformationWithRelation.csv'); } @@ -246,11 +239,32 @@ class ImportTest extends TestCase public function importsBasedOnSyncScope(): void { $this->importDataSet(__DIR__ . '/Fixtures/Import/ImportsSyncScope.xml'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/cdb.thuecat.org/api/ext-sync/get-updated-nodes/dd4615dc-58a6-4648-a7ce-4950293a06db.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/835224016581-dara.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/018132452787-ngbe.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/043064193523-jcyt.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/573211638937-gmqb.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/508431710173-wwne.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/dms_5159216.json'); + GuzzleClientFaker::appendNotFoundResponse(); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/dms_5159186.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/396420044896-drzt.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/dms_6486108.json'); + GuzzleClientFaker::appendNotFoundResponse(); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/165868194223-zmqf.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/497839263245-edbm.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/dms_5099196.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/e_23bec7f80c864c358da033dd75328f27-rfa.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/215230952334-yyno.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/052821473718-oxfq.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/dms_134362.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/dms_134288.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/dms_652340.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/440055527204-ocar.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/dms_5197164.json'); - $serverRequest = $this->getServerRequest(); - - $extbaseBootstrap = $this->getContainer()->get(Bootstrap::class); - $extbaseBootstrap->handleBackendRequest($serverRequest->reveal()); + $configuration = $this->get(ImportConfigurationRepository::class)->findByUid(1); + $this->get(Importer::class)->importConfiguration($configuration); $this->assertCSVDataSet('EXT:thuecat/Tests/Functional/Fixtures/Import/ImportsSyncScope.csv'); } @@ -263,52 +277,32 @@ class ImportTest extends TestCase { $this->importDataSet(__DIR__ . '/Fixtures/Import/ImportWithMultipleReferencesToSameObject.xml'); - $serverRequest = $this->getServerRequest(); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/835224016581-dara.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/018132452787-ngbe.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/043064193523-jcyt.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/573211638937-gmqb.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/508431710173-wwne.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/dms_5159216.json'); + GuzzleClientFaker::appendNotFoundResponse(); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/dms_5159186.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/396420044896-drzt.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/dms_6486108.json'); + GuzzleClientFaker::appendNotFoundResponse(); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/165868194223-zmqf.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/497839263245-edbm.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/dms_5099196.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/e_23bec7f80c864c358da033dd75328f27-rfa.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/215230952334-yyno.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/052821473718-oxfq.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/dms_134362.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/dms_134288.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/dms_652340.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/440055527204-ocar.json'); + GuzzleClientFaker::appendResponseFromFile(__DIR__ . '/Fixtures/Import/Guzzle/thuecat.org/resources/dms_5197164.json'); - $extbaseBootstrap = $this->getContainer()->get(Bootstrap::class); - $extbaseBootstrap->handleBackendRequest($serverRequest->reveal()); + $configuration = $this->get(ImportConfigurationRepository::class)->findByUid(1); + $this->get(Importer::class)->importConfiguration($configuration); $this->assertCSVDataSet('EXT:thuecat/Tests/Functional/Fixtures/Import/ImportWithMultipleReferencesToSameObject.csv'); } - - /** - * @return ObjectProphecy - */ - private function getServerRequest(): ObjectProphecy - { - $route = $this->prophesize(Route::class); - $route->getOption('moduleConfiguration')->willReturn([ - 'access' => 'user,group', - 'labels' => 'LLL:EXT:thuecat/Resources/Private/Language/locallang_mod.xlf', - 'name' => 'site_ThuecatThuecat', - 'extensionName' => 'Thuecat', - 'routeTarget' => 'TYPO3\CMS\Extbase\Core\Bootstrap::handleBackendRequest', - 'iconIdentifier' => 'module-site_ThuecatThuecat', - ]); - $route->getOption('module')->willReturn(true); - $route->getOption('moduleName')->willReturn('site_ThuecatThuecat'); - $route->getOption('access')->willReturn('user,group'); - $route->getOption('target')->willReturn('TYPO3\CMS\Extbase\Core\Bootstrap::handleBackendRequest'); - $route->getOption('_identifier')->willReturn('site_ThuecatThuecat'); - - $serverRequest = $this->prophesize(ServerRequestInterface::class); - $serverRequest->getAttribute('route')->willReturn($route->reveal()); - $serverRequest->getAttribute('routing')->willReturn(null); - $serverRequest->getAttribute('normalizedParams')->willReturn(null); - $serverRequest->getMethod()->willReturn('GET'); - $serverRequest->getParsedBody()->willReturn([]); - $serverRequest->getQueryParams()->willReturn([ - 'tx_thuecat_site_thuecatthuecat' => [ - 'controller' => 'Backend\Import', - 'action' => 'import', - 'importConfiguration' => '1', - ], - ]); - $GLOBALS['TYPO3_REQUEST'] = $serverRequest->reveal(); - - // As long as extbase uri builder uses GeneralUtility::_GP - $_GET['route'] = '/module/site/ThuecatThuecat'; - - return $serverRequest; - } } diff --git a/Tests/Unit/Domain/Import/ImportTest.php b/Tests/Unit/Domain/Import/ImportTest.php index ae8c9a8..403e40c 100644 --- a/Tests/Unit/Domain/Import/ImportTest.php +++ b/Tests/Unit/Domain/Import/ImportTest.php @@ -52,12 +52,12 @@ class ImportTest extends TestCase */ public function canStart(): void { - $configuration = $this->prophesize(ImportConfiguration::class); + $configuration = new ImportConfiguration(); $subject = new Import(); - $subject->start($configuration->reveal()); + $subject->start($configuration); self::assertSame( - $configuration->reveal(), + $configuration, $subject->getConfiguration() ); self::assertInstanceOf( @@ -71,13 +71,13 @@ class ImportTest extends TestCase */ public function canEndAfterStart(): void { - $configuration = $this->prophesize(ImportConfiguration::class); + $configuration = new ImportConfiguration(); $subject = new Import(); - $subject->start($configuration->reveal()); + $subject->start($configuration); $subject->end(); self::assertSame( - $configuration->reveal(), + $configuration, $subject->getConfiguration() ); self::assertInstanceOf( @@ -91,9 +91,9 @@ class ImportTest extends TestCase */ public function isDoneAfterStartAndEnd(): void { - $configuration = $this->prophesize(ImportConfiguration::class); + $configuration = new ImportConfiguration(); $subject = new Import(); - $subject->start($configuration->reveal()); + $subject->start($configuration); $subject->end(); self::assertTrue($subject->done()); @@ -104,9 +104,9 @@ class ImportTest extends TestCase */ public function isNotDoneAfterJustStartWithoutEnd(): void { - $configuration = $this->prophesize(ImportConfiguration::class); + $configuration = new ImportConfiguration(); $subject = new Import(); - $subject->start($configuration->reveal()); + $subject->start($configuration); self::assertFalse($subject->done()); } @@ -116,15 +116,15 @@ class ImportTest extends TestCase */ public function nestedStartReturnsExpectedConfiguration(): void { - $configuration1 = $this->prophesize(ImportConfiguration::class); + $configuration1 = new ImportConfiguration(); $subject = new Import(); - $subject->start($configuration1->reveal()); + $subject->start($configuration1); - $configuration2 = $this->prophesize(ImportConfiguration::class); - $subject->start($configuration2->reveal()); + $configuration2 = new ImportConfiguration(); + $subject->start($configuration2); self::assertSame( - $configuration2->reveal(), + $configuration2, $subject->getConfiguration() ); } @@ -134,9 +134,9 @@ class ImportTest extends TestCase */ public function nestedStartReturnsExpectedLog(): void { - $configuration1 = $this->prophesize(ImportConfiguration::class); + $configuration1 = new ImportConfiguration(); $subject = new Import(); - $subject->start($configuration1->reveal()); + $subject->start($configuration1); $log1 = $subject->getLog(); self::assertInstanceOf( @@ -144,8 +144,8 @@ class ImportTest extends TestCase $log1 ); - $configuration2 = $this->prophesize(ImportConfiguration::class); - $subject->start($configuration2->reveal()); + $configuration2 = new ImportConfiguration(); + $subject->start($configuration2); $log2 = $subject->getLog(); self::assertInstanceOf( @@ -164,16 +164,16 @@ class ImportTest extends TestCase */ public function nestedImportMergesLog(): void { - $configuration1 = $this->prophesize(ImportConfiguration::class); + $configuration1 = new ImportConfiguration(); $subject = new Import(); - $subject->start($configuration1->reveal()); + $subject->start($configuration1); $log1 = $subject->getLog(); - $configuration2 = $this->prophesize(ImportConfiguration::class); - $subject->start($configuration2->reveal()); - $importLogEntry = $this->prophesize(ImportLogEntry::class); - $subject->getLog()->addEntry($importLogEntry->reveal()); + $configuration2 = new ImportConfiguration(); + $subject->start($configuration2); + $importLogEntry = $this->createStub(ImportLogEntry::class); + $subject->getLog()->addEntry($importLogEntry); $subject->end(); self::assertSame( @@ -183,7 +183,7 @@ class ImportTest extends TestCase self::assertSame( [ - $importLogEntry->reveal() + $importLogEntry ], $log1->getEntries()->toArray() ); @@ -194,19 +194,19 @@ class ImportTest extends TestCase */ public function nestedImportReturnsHandledForRemoteId(): void { - $configuration1 = $this->prophesize(ImportConfiguration::class); + $configuration1 = new ImportConfiguration(); $subject = new Import(); - $subject->start($configuration1->reveal()); + $subject->start($configuration1); - $configuration2 = $this->prophesize(ImportConfiguration::class); - $subject->start($configuration2->reveal()); - $importLogEntry = $this->prophesize(ImportLogEntry::class); - $importLogEntry->getRemoteId()->willReturn('https://example.com/remote-id'); - $subject->getLog()->addEntry($importLogEntry->reveal()); + $configuration2 = new ImportConfiguration(); + $subject->start($configuration2); + $importLogEntry = $this->createStub(ImportLogEntry::class); + $importLogEntry->method('getRemoteId')->willReturn('https://example.com/remote-id'); + $subject->getLog()->addEntry($importLogEntry); $subject->end(); - $configuration3 = $this->prophesize(ImportConfiguration::class); - $subject->start($configuration3->reveal()); + $configuration3 = new ImportConfiguration(); + $subject->start($configuration3); self::assertTrue( $subject->handledRemoteId('https://example.com/remote-id') ); diff --git a/Tests/Unit/Domain/Import/Importer/FetchDataTest.php b/Tests/Unit/Domain/Import/Importer/FetchDataTest.php index 2a967e4..107c695 100644 --- a/Tests/Unit/Domain/Import/Importer/FetchDataTest.php +++ b/Tests/Unit/Domain/Import/Importer/FetchDataTest.php @@ -42,14 +42,14 @@ class FetchDataTest extends TestCase */ public function canBeCreated(): void { - $requestFactory = $this->prophesize(RequestFactoryInterface::class); - $httpClient = $this->prophesize(ClientInterface::class); - $cache = $this->prophesize(FrontendInterface::class); + $requestFactory = $this->createStub(RequestFactoryInterface::class); + $httpClient = $this->createStub(ClientInterface::class); + $cache = $this->createStub(FrontendInterface::class); $subject = new FetchData( - $requestFactory->reveal(), - $httpClient->reveal(), - $cache->reveal() + $requestFactory, + $httpClient, + $cache ); self::assertInstanceOf(FetchData::class, $subject); @@ -60,26 +60,23 @@ class FetchDataTest extends TestCase */ public function returnsParsedJsonLdBasedOnUrl(): void { - $requestFactory = $this->prophesize(RequestFactoryInterface::class); - $httpClient = $this->prophesize(ClientInterface::class); - $cache = $this->prophesize(FrontendInterface::class); + $requestFactory = $this->createStub(RequestFactoryInterface::class); + $httpClient = $this->createStub(ClientInterface::class); + $cache = $this->createStub(FrontendInterface::class); - $request = $this->prophesize(RequestInterface::class); - $response = $this->prophesize(ResponseInterface::class); + $request = $this->createStub(RequestInterface::class); + $response = $this->createStub(ResponseInterface::class); - $requestFactory->createRequest('GET', 'https://example.com/resources/018132452787-ngbe') - ->willReturn($request->reveal()); + $requestFactory->method('createRequest')->willReturn($request); + $httpClient->method('sendRequest')->willReturn($response); - $httpClient->sendRequest($request->reveal()) - ->willReturn($response->reveal()); - - $response->getStatusCode()->willReturn(200); - $response->getBody()->willReturn('{"@graph":[{"@id":"https://example.com/resources/018132452787-ngbe"}]}'); + $response->method('getStatusCode')->willReturn(200); + $response->method('getBody')->willReturn('{"@graph":[{"@id":"https://example.com/resources/018132452787-ngbe"}]}'); $subject = new FetchData( - $requestFactory->reveal(), - $httpClient->reveal(), - $cache->reveal() + $requestFactory, + $httpClient, + $cache ); $result = $subject->jsonLDFromUrl('https://example.com/resources/018132452787-ngbe'); @@ -97,26 +94,24 @@ class FetchDataTest extends TestCase */ public function returnsEmptyArrayInCaseOfError(): void { - $requestFactory = $this->prophesize(RequestFactoryInterface::class); - $httpClient = $this->prophesize(ClientInterface::class); - $cache = $this->prophesize(FrontendInterface::class); + $requestFactory = $this->createStub(RequestFactoryInterface::class); + $httpClient = $this->createStub(ClientInterface::class); + $cache = $this->createStub(FrontendInterface::class); - $request = $this->prophesize(RequestInterface::class); - $response = $this->prophesize(ResponseInterface::class); + $request = $this->createStub(RequestInterface::class); + $response = $this->createStub(ResponseInterface::class); - $requestFactory->createRequest('GET', 'https://example.com/resources/018132452787-ngbe') - ->willReturn($request->reveal()); + $requestFactory->method('createRequest')->willReturn($request); - $httpClient->sendRequest($request->reveal()) - ->willReturn($response->reveal()); + $httpClient->method('sendRequest')->willReturn($response); - $response->getStatusCode()->willReturn(200); - $response->getBody()->willReturn(''); + $response->method('getStatusCode')->willReturn(200); + $response->method('getBody')->willReturn(''); $subject = new FetchData( - $requestFactory->reveal(), - $httpClient->reveal(), - $cache->reveal() + $requestFactory, + $httpClient, + $cache ); $result = $subject->jsonLDFromUrl('https://example.com/resources/018132452787-ngbe'); @@ -128,11 +123,11 @@ class FetchDataTest extends TestCase */ public function returnsResultFromCacheIfAvailable(): void { - $requestFactory = $this->prophesize(RequestFactoryInterface::class); - $httpClient = $this->prophesize(ClientInterface::class); - $cache = $this->prophesize(FrontendInterface::class); + $requestFactory = $this->createStub(RequestFactoryInterface::class); + $httpClient = $this->createStub(ClientInterface::class); + $cache = $this->createStub(FrontendInterface::class); - $cache->get('03c8a7eb2a06e47c28883d95f7e834089baf9c3e')->willReturn([ + $cache->method('get')->willReturn([ '@graph' => [ [ '@id' => 'https://example.com/resources/018132452787-ngbe', @@ -141,9 +136,9 @@ class FetchDataTest extends TestCase ]); $subject = new FetchData( - $requestFactory->reveal(), - $httpClient->reveal(), - $cache->reveal() + $requestFactory, + $httpClient, + $cache ); $result = $subject->jsonLDFromUrl('https://example.com/resources/018132452787-ngbe'); @@ -161,29 +156,26 @@ class FetchDataTest extends TestCase */ public function throwsExceptionOn404(): void { - $requestFactory = $this->prophesize(RequestFactoryInterface::class); - $httpClient = $this->prophesize(ClientInterface::class); - $cache = $this->prophesize(FrontendInterface::class); + $requestFactory = $this->createStub(RequestFactoryInterface::class); + $httpClient = $this->createStub(ClientInterface::class); + $cache = $this->createStub(FrontendInterface::class); - $request = $this->prophesize(RequestInterface::class); - $response = $this->prophesize(ResponseInterface::class); + $request = $this->createStub(RequestInterface::class); + $response = $this->createStub(ResponseInterface::class); - $request->getUri()->willReturn('https://example.com/resources/018132452787-ngbe'); + $request->method('getUri')->willReturn('https://example.com/resources/018132452787-ngbe'); - $requestFactory->createRequest('GET', 'https://example.com/resources/018132452787-ngbe') - ->willReturn($request->reveal()); + $requestFactory->method('createRequest')->willReturn($request); - $httpClient->sendRequest($request->reveal()) - ->willReturn($response->reveal()); + $httpClient->method('sendRequest')->willReturn($response); - - $response->getStatusCode()->willReturn(404); - $response->getBody()->willReturn('{"error":"404"}'); + $response->method('getStatusCode')->willReturn(404); + $response->method('getBody')->willReturn('{"error":"404"}'); $subject = new FetchData( - $requestFactory->reveal(), - $httpClient->reveal(), - $cache->reveal() + $requestFactory, + $httpClient, + $cache ); $this->expectException(InvalidResponseException::class); @@ -198,25 +190,23 @@ class FetchDataTest extends TestCase */ public function throwsExceptionOn401(): void { - $requestFactory = $this->prophesize(RequestFactoryInterface::class); - $httpClient = $this->prophesize(ClientInterface::class); - $cache = $this->prophesize(FrontendInterface::class); + $requestFactory = $this->createStub(RequestFactoryInterface::class); + $httpClient = $this->createStub(ClientInterface::class); + $cache = $this->createStub(FrontendInterface::class); - $request = $this->prophesize(RequestInterface::class); - $response = $this->prophesize(ResponseInterface::class); + $request = $this->createStub(RequestInterface::class); + $response = $this->createStub(ResponseInterface::class); - $requestFactory->createRequest('GET', 'https://example.com/resources/018132452787-ngbe') - ->willReturn($request->reveal()); + $requestFactory->method('createRequest')->willReturn($request); - $httpClient->sendRequest($request->reveal()) - ->willReturn($response->reveal()); + $httpClient->method('sendRequest')->willReturn($response); - $response->getStatusCode()->willReturn(401); + $response->method('getStatusCode')->willReturn(401); $subject = new FetchData( - $requestFactory->reveal(), - $httpClient->reveal(), - $cache->reveal() + $requestFactory, + $httpClient, + $cache ); $this->expectException(InvalidResponseException::class); diff --git a/Tests/Unit/Domain/Import/Model/EntityCollectionTest.php b/Tests/Unit/Domain/Import/Model/EntityCollectionTest.php index cba214b..1864a99 100644 --- a/Tests/Unit/Domain/Import/Model/EntityCollectionTest.php +++ b/Tests/Unit/Domain/Import/Model/EntityCollectionTest.php @@ -57,18 +57,18 @@ class EntityCollectionTest extends TestCase */ public function returnsFirstEntityForDefaultLanguage(): void { - $entityWithTranslation = $this->prophesize(Entity::class); - $entityWithTranslation->isForDefaultLanguage()->willReturn(false); + $entityWithTranslation = $this->createStub(Entity::class); + $entityWithTranslation->method('isForDefaultLanguage')->willReturn(false); - $entityWithDefaultLanguage = $this->prophesize(Entity::class); - $entityWithDefaultLanguage->isForDefaultLanguage()->willReturn(true); + $entityWithDefaultLanguage = $this->createStub(Entity::class); + $entityWithDefaultLanguage->method('isForDefaultLanguage')->willReturn(true); $subject = new EntityCollection(); - $subject->add($entityWithTranslation->reveal()); - $subject->add($entityWithDefaultLanguage->reveal()); + $subject->add($entityWithTranslation); + $subject->add($entityWithDefaultLanguage); self::assertSame( - $entityWithDefaultLanguage->reveal(), + $entityWithDefaultLanguage, $subject->getDefaultLanguageEntity() ); } @@ -78,11 +78,11 @@ class EntityCollectionTest extends TestCase */ public function returnsNullIfNoEntityForDefaultLanguageExists(): void { - $entityWithTranslation = $this->prophesize(Entity::class); - $entityWithTranslation->isForDefaultLanguage()->willReturn(false); + $entityWithTranslation = $this->createStub(Entity::class); + $entityWithTranslation->method('isForDefaultLanguage')->willReturn(false); $subject = new EntityCollection(); - $subject->add($entityWithTranslation->reveal()); + $subject->add($entityWithTranslation); self::assertNull( $subject->getDefaultLanguageEntity() @@ -94,16 +94,16 @@ class EntityCollectionTest extends TestCase */ public function returnsEntitiesToTranslate(): void { - $entityWithTranslation = $this->prophesize(Entity::class); - $entityWithTranslation->isTranslation()->willReturn(true); - $entityWithTranslation->exists()->willReturn(false); + $entityWithTranslation = $this->createStub(Entity::class); + $entityWithTranslation->method('isTranslation')->willReturn(true); + $entityWithTranslation->method('exists')->willReturn(false); $subject = new EntityCollection(); - $subject->add($entityWithTranslation->reveal()); + $subject->add($entityWithTranslation); self::assertSame( [ - $entityWithTranslation->reveal(), + $entityWithTranslation, ], $subject->getEntitiesToTranslate() ); @@ -114,15 +114,15 @@ class EntityCollectionTest extends TestCase */ public function returnsExistingEntities(): void { - $entityWithTranslation = $this->prophesize(Entity::class); - $entityWithTranslation->exists()->willReturn(true); + $entityWithTranslation = $this->createStub(Entity::class); + $entityWithTranslation->method('exists')->willReturn(true); $subject = new EntityCollection(); - $subject->add($entityWithTranslation->reveal()); + $subject->add($entityWithTranslation); self::assertSame( [ - $entityWithTranslation->reveal(), + $entityWithTranslation, ], $subject->getExistingEntities() ); diff --git a/Tests/Unit/Domain/Import/RequestFactoryTest.php b/Tests/Unit/Domain/Import/RequestFactoryTest.php index b67599b..47140b1 100644 --- a/Tests/Unit/Domain/Import/RequestFactoryTest.php +++ b/Tests/Unit/Domain/Import/RequestFactoryTest.php @@ -38,10 +38,10 @@ class RequestFactoryTest extends TestCase */ public function canBeCreated(): void { - $extensionConfiguration = $this->prophesize(ExtensionConfiguration::class); + $extensionConfiguration = $this->createStub(ExtensionConfiguration::class); $subject = new RequestFactory( - $extensionConfiguration->reveal() + $extensionConfiguration ); self::assertInstanceOf(RequestFactory::class, $subject); @@ -52,10 +52,10 @@ class RequestFactoryTest extends TestCase */ public function returnsRequestWithJsonIdFormat(): void { - $extensionConfiguration = $this->prophesize(ExtensionConfiguration::class); + $extensionConfiguration = $this->createStub(ExtensionConfiguration::class); $subject = new RequestFactory( - $extensionConfiguration->reveal() + $extensionConfiguration ); $request = $subject->createRequest('GET', 'https://example.com/api/ext-sync/get-updated-nodes?syncScopeId=dd3738dc-58a6-4748-a6ce-4950293a06db'); @@ -68,11 +68,11 @@ class RequestFactoryTest extends TestCase */ public function returnsRequestWithApiKeyWhenConfigured(): void { - $extensionConfiguration = $this->prophesize(ExtensionConfiguration::class); - $extensionConfiguration->get('thuecat', 'apiKey')->willReturn('some-api-key'); + $extensionConfiguration = $this->createStub(ExtensionConfiguration::class); + $extensionConfiguration->method('get')->willReturn('some-api-key'); $subject = new RequestFactory( - $extensionConfiguration->reveal() + $extensionConfiguration ); $request = $subject->createRequest('GET', 'https://example.com/api/ext-sync/get-updated-nodes?syncScopeId=dd3738dc-58a6-4748-a6ce-4950293a06db'); @@ -85,11 +85,11 @@ class RequestFactoryTest extends TestCase */ public function returnsRequestWithoutApiKeyWhenUnkown(): void { - $extensionConfiguration = $this->prophesize(ExtensionConfiguration::class); - $extensionConfiguration->get('thuecat', 'apiKey')->willThrow(new ExtensionConfigurationExtensionNotConfiguredException()); + $extensionConfiguration = $this->createStub(ExtensionConfiguration::class); + $extensionConfiguration->method('get')->willThrowException(new ExtensionConfigurationExtensionNotConfiguredException()); $subject = new RequestFactory( - $extensionConfiguration->reveal() + $extensionConfiguration ); $request = $subject->createRequest('GET', 'https://example.com/api/ext-sync/get-updated-nodes?syncScopeId=dd3738dc-58a6-4748-a6ce-4950293a06db'); diff --git a/Tests/Unit/Domain/Import/Typo3Converter/GeneralConverterTest.php b/Tests/Unit/Domain/Import/Typo3Converter/GeneralConverterTest.php index f64b07b..a904c6d 100644 --- a/Tests/Unit/Domain/Import/Typo3Converter/GeneralConverterTest.php +++ b/Tests/Unit/Domain/Import/Typo3Converter/GeneralConverterTest.php @@ -23,7 +23,6 @@ declare(strict_types=1); namespace WerkraumMedia\ThueCat\Tests\Unit\Domain\Import\Typo3Converter; -use Prophecy\Argument; use Psr\Log\LoggerInterface; use WerkraumMedia\ThueCat\Domain\Import\Entity\Properties\ForeignReference; use WerkraumMedia\ThueCat\Domain\Import\Entity\Town; @@ -48,20 +47,20 @@ class GeneralConverterTest extends TestCase */ public function canBeCreated(): void { - $resolveForeignReference = $this->prophesize(ResolveForeignReference::class); - $importer = $this->prophesize(Importer::class); - $languageHandling = $this->prophesize(LanguageHandling::class); - $organisationRepository = $this->prophesize(OrganisationRepository::class); - $townRepository = $this->prophesize(TownRepository::class); - $parkingFacilityRepository = $this->prophesize(ParkingFacilityRepository::class); + $resolveForeignReference = $this->createStub(ResolveForeignReference::class); + $importer = $this->createStub(Importer::class); + $languageHandling = $this->createStub(LanguageHandling::class); + $organisationRepository = $this->createStub(OrganisationRepository::class); + $townRepository = $this->createStub(TownRepository::class); + $parkingFacilityRepository = $this->createStub(ParkingFacilityRepository::class); $subject = new GeneralConverter( - $resolveForeignReference->reveal(), - $importer->reveal(), - $languageHandling->reveal(), - $organisationRepository->reveal(), - $townRepository->reveal(), - $parkingFacilityRepository->reveal() + $resolveForeignReference, + $importer, + $languageHandling, + $organisationRepository, + $townRepository, + $parkingFacilityRepository ); self::assertInstanceOf( @@ -75,25 +74,25 @@ class GeneralConverterTest extends TestCase */ public function skipsWithoutManager(): void { - $resolveForeignReference = $this->prophesize(ResolveForeignReference::class); - $importer = $this->prophesize(Importer::class); - $importer->importConfiguration(Argument::any())->willReturn(new ImportLog()); - $languageHandling = $this->prophesize(LanguageHandling::class); - $languageHandling->getLanguageUidForString(10, 'de')->willReturn(0); - $organisationRepository = $this->prophesize(OrganisationRepository::class); - $townRepository = $this->prophesize(TownRepository::class); - $parkingFacilityRepository = $this->prophesize(ParkingFacilityRepository::class); - $logger = $this->prophesize(LoggerInterface::class); + $resolveForeignReference = $this->createStub(ResolveForeignReference::class); + $importer = $this->createStub(Importer::class); + $importer->method('importConfiguration')->willReturn(new ImportLog()); + $languageHandling = $this->createStub(LanguageHandling::class); + $languageHandling->method('getLanguageUidForString')->willReturn(0); + $organisationRepository = $this->createStub(OrganisationRepository::class); + $townRepository = $this->createStub(TownRepository::class); + $parkingFacilityRepository = $this->createStub(ParkingFacilityRepository::class); + $logger = $this->createStub(LoggerInterface::class); $subject = new GeneralConverter( - $resolveForeignReference->reveal(), - $importer->reveal(), - $languageHandling->reveal(), - $organisationRepository->reveal(), - $townRepository->reveal(), - $parkingFacilityRepository->reveal() + $resolveForeignReference, + $importer, + $languageHandling, + $organisationRepository, + $townRepository, + $parkingFacilityRepository ); - $subject->setLogger($logger->reveal()); + $subject->setLogger($logger); $contentResponsible = new ForeignReference(); $contentResponsible->setId('https://example.com/content-responsible'); @@ -101,11 +100,11 @@ class GeneralConverterTest extends TestCase $entity->setName('Test Name'); $entity->setContentResponsible($contentResponsible); - $configuration = $this->prophesize(ImportConfiguration::class); - $configuration->getStoragePid()->willReturn(10); + $configuration = new ImportConfiguration(); + $configuration->_setProperty('storagePid', 10); self::assertNull( - $subject->convert($entity, $configuration->reveal(), 'de') + $subject->convert($entity, $configuration, 'de') ); } } diff --git a/Tests/Unit/Domain/Import/UrlProvider/RegistryTest.php b/Tests/Unit/Domain/Import/UrlProvider/RegistryTest.php index a174f81..af77d8b 100644 --- a/Tests/Unit/Domain/Import/UrlProvider/RegistryTest.php +++ b/Tests/Unit/Domain/Import/UrlProvider/RegistryTest.php @@ -25,7 +25,7 @@ namespace WerkraumMedia\ThueCat\Tests\Unit\Domain\Import\UrlProvider; use PHPUnit\Framework\TestCase; use WerkraumMedia\ThueCat\Domain\Import\UrlProvider\Registry; -use WerkraumMedia\ThueCat\Domain\Import\UrlProvider\UrlProvider; +use WerkraumMedia\ThueCat\Domain\Import\UrlProvider\StaticUrlProvider; use WerkraumMedia\ThueCat\Domain\Model\Backend\ImportConfiguration; /** @@ -49,9 +49,9 @@ class RegistryTest extends TestCase public function allowsRegistrationOfUrlProvider(): void { $subject = new Registry(); - $provider = $this->prophesize(UrlProvider::class); + $provider = new StaticUrlProvider(); - $subject->registerProvider($provider->reveal()); + $subject->registerProvider($provider); self::assertTrue(true); } @@ -60,11 +60,11 @@ class RegistryTest extends TestCase */ public function returnsNullIfNoProviderExistsForConfiguration(): void { - $configuration = $this->prophesize(ImportConfiguration::class); + $configuration = new ImportConfiguration(); $subject = new Registry(); - $result = $subject->getProviderForConfiguration($configuration->reveal()); + $result = $subject->getProviderForConfiguration($configuration); self::assertNull($result); } @@ -73,17 +73,17 @@ class RegistryTest extends TestCase */ public function returnsProviderForConfiguration(): void { - $configuration = $this->prophesize(ImportConfiguration::class); + $configuration = new ImportConfiguration(); + $configuration->_setProperty('type', 'static'); + $configuration->_setProperty('urls', ['https://example.com/path/example.json']); $subject = new Registry(); - $provider = $this->prophesize(UrlProvider::class); - $concreteProvider = $this->prophesize(UrlProvider::class); - $provider->canProvideForConfiguration($configuration->reveal())->willReturn(true); - $provider->createWithConfiguration($configuration->reveal())->willReturn($concreteProvider->reveal()); - $subject->registerProvider($provider->reveal()); + $provider = new StaticUrlProvider(); + $subject->registerProvider($provider); - $result = $subject->getProviderForConfiguration($configuration->reveal()); - self::assertSame($concreteProvider->reveal(), $result); + $result = $subject->getProviderForConfiguration($configuration); + self::assertInstanceOf(StaticUrlProvider::class, $result); + self::assertSame(['https://example.com/path/example.json'], $result->getUrls()); } } diff --git a/Tests/Unit/Domain/Import/UrlProvider/StaticUrlProviderTest.php b/Tests/Unit/Domain/Import/UrlProvider/StaticUrlProviderTest.php index 573a311..58e1122 100644 --- a/Tests/Unit/Domain/Import/UrlProvider/StaticUrlProviderTest.php +++ b/Tests/Unit/Domain/Import/UrlProvider/StaticUrlProviderTest.php @@ -46,12 +46,12 @@ class StaticUrlProviderTest extends TestCase */ public function canProvideForStaticConfiguration(): void { - $configuration = $this->prophesize(ImportConfiguration::class); - $configuration->getType()->willReturn('static'); + $configuration = new ImportConfiguration(); + $configuration->_setProperty('type', 'static'); $subject = new StaticUrlProvider(); - $result = $subject->canProvideForConfiguration($configuration->reveal()); + $result = $subject->canProvideForConfiguration($configuration); self::assertTrue($result); } @@ -60,12 +60,12 @@ class StaticUrlProviderTest extends TestCase */ public function returnsConcreteProviderForConfiguration(): void { - $configuration = $this->prophesize(ImportConfiguration::class); - $configuration->getUrls()->willReturn(['https://example.com']); + $configuration = new ImportConfiguration(); + $configuration->_setProperty('urls', ['https://example.com']); $subject = new StaticUrlProvider(); - $result = $subject->createWithConfiguration($configuration->reveal()); + $result = $subject->createWithConfiguration($configuration); self::assertInstanceOf(StaticUrlProvider::class, $result); } @@ -74,12 +74,12 @@ class StaticUrlProviderTest extends TestCase */ public function concreteProviderReturnsUrls(): void { - $configuration = $this->prophesize(ImportConfiguration::class); - $configuration->getUrls()->willReturn(['https://example.com']); + $configuration = new ImportConfiguration(); + $configuration->_setProperty('urls', ['https://example.com']); $subject = new StaticUrlProvider(); - $concreteProvider = $subject->createWithConfiguration($configuration->reveal()); + $concreteProvider = $subject->createWithConfiguration($configuration); $result = $concreteProvider->getUrls(); self::assertSame([ 'https://example.com', diff --git a/Tests/Unit/Domain/Import/UrlProvider/SyncScopeUrlProviderTest.php b/Tests/Unit/Domain/Import/UrlProvider/SyncScopeUrlProviderTest.php index ce8d85d..df7a280 100644 --- a/Tests/Unit/Domain/Import/UrlProvider/SyncScopeUrlProviderTest.php +++ b/Tests/Unit/Domain/Import/UrlProvider/SyncScopeUrlProviderTest.php @@ -38,10 +38,10 @@ class SyncScopeUrlProviderTest extends TestCase */ public function canBeCreated(): void { - $fetchData = $this->prophesize(FetchData::class); + $fetchData = $this->createStub(FetchData::class); $subject = new SyncScopeUrlProvider( - $fetchData->reveal() + $fetchData ); self::assertInstanceOf(SyncScopeUrlProvider::class, $subject); @@ -52,16 +52,16 @@ class SyncScopeUrlProviderTest extends TestCase */ public function canProvideForSyncScope(): void { - $configuration = $this->prophesize(ImportConfiguration::class); - $configuration->getType()->willReturn('syncScope'); + $configuration = new ImportConfiguration(); + $configuration->_setProperty('type', 'syncScope'); - $fetchData = $this->prophesize(FetchData::class); + $fetchData = $this->createStub(FetchData::class); $subject = new SyncScopeUrlProvider( - $fetchData->reveal() + $fetchData ); - $result = $subject->canProvideForConfiguration($configuration->reveal()); + $result = $subject->canProvideForConfiguration($configuration); self::assertTrue($result); } @@ -70,11 +70,11 @@ class SyncScopeUrlProviderTest extends TestCase */ public function returnsConcreteProviderForConfiguration(): void { - $configuration = $this->prophesize(ImportConfiguration::class); - $configuration->getSyncScopeId()->willReturn(10); + $configuration = new ImportConfiguration(); + $configuration->_setProperty('syncScopeId', 10); - $fetchData = $this->prophesize(FetchData::class); - $fetchData->updatedNodes(10)->willReturn([ + $fetchData = $this->createStub(FetchData::class); + $fetchData->method('updatedNodes')->willReturn([ 'data' => [ 'canBeCreated' => [ '835224016581-dara', @@ -84,10 +84,10 @@ class SyncScopeUrlProviderTest extends TestCase ]); $subject = new SyncScopeUrlProvider( - $fetchData->reveal() + $fetchData ); - $result = $subject->createWithConfiguration($configuration->reveal()); + $result = $subject->createWithConfiguration($configuration); self::assertInstanceOf(SyncScopeUrlProvider::class, $result); } @@ -97,12 +97,12 @@ class SyncScopeUrlProviderTest extends TestCase */ public function concreteProviderReturnsUrls(): void { - $configuration = $this->prophesize(ImportConfiguration::class); - $configuration->getSyncScopeId()->willReturn(10); + $configuration = new ImportConfiguration(); + $configuration->_setProperty('syncScopeId', 10); - $fetchData = $this->prophesize(FetchData::class); - $fetchData->getResourceEndpoint()->willReturn('https://example.com/api/'); - $fetchData->updatedNodes(10)->willReturn([ + $fetchData = $this->createStub(FetchData::class); + $fetchData->method('getResourceEndpoint')->willReturn('https://example.com/api/'); + $fetchData->method('updatedNodes')->willReturn([ 'data' => [ 'createdOrUpdated' => [ '835224016581-dara', @@ -112,10 +112,10 @@ class SyncScopeUrlProviderTest extends TestCase ]); $subject = new SyncScopeUrlProvider( - $fetchData->reveal() + $fetchData ); - $concreteProvider = $subject->createWithConfiguration($configuration->reveal()); + $concreteProvider = $subject->createWithConfiguration($configuration); $result = $concreteProvider->getUrls(); self::assertSame([ diff --git a/Tests/Unit/Domain/Model/Backend/ImportLogTest.php b/Tests/Unit/Domain/Model/Backend/ImportLogTest.php index b55af40..2d19474 100644 --- a/Tests/Unit/Domain/Model/Backend/ImportLogTest.php +++ b/Tests/Unit/Domain/Model/Backend/ImportLogTest.php @@ -47,10 +47,10 @@ class ImportLogTest extends TestCase */ public function returnsConfigurationIfSet(): void { - $configuration = $this->prophesize(ImportConfiguration::class); - $subject = new ImportLog($configuration->reveal()); + $configuration = new ImportConfiguration(); + $subject = new ImportLog($configuration); - self::assertSame($configuration->reveal(), $subject->getConfiguration()); + self::assertSame($configuration, $subject->getConfiguration()); } /** @@ -68,9 +68,9 @@ class ImportLogTest extends TestCase */ public function returnsConfigurationUidIfSet(): void { - $configuration = $this->prophesize(ImportConfiguration::class); - $configuration->getUid()->willReturn(10); - $subject = new ImportLog($configuration->reveal()); + $configuration = new ImportConfiguration(); + $configuration->_setProperty('uid', 10); + $subject = new ImportLog($configuration); self::assertSame(10, $subject->getConfigurationUid()); } diff --git a/composer.json b/composer.json index 9c8f3bc..8bd766c 100644 --- a/composer.json +++ b/composer.json @@ -35,7 +35,7 @@ } }, "require": { - "php": "~7.2.0 || ~7.3.0 || ~7.4.0", + "php": "~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0", "ext-json": "*", "ext-mbstring": "*", "psr/http-client": "^1.0", @@ -47,22 +47,20 @@ "symfony/property-access": "^5.3", "symfony/property-info": "^5.3", "symfony/serializer": "^5.3", - "typo3/cms-backend": "^10.4", - "typo3/cms-core": "^10.4", - "typo3/cms-extbase": "^10.4", - "typo3/cms-frontend": "^10.4" + "typo3/cms-backend": "^10.4 || ^11.5", + "typo3/cms-core": "^10.4 || ^11.5", + "typo3/cms-extbase": "^10.4 || ^11.5", + "typo3/cms-frontend": "^10.4 || ^11.5" }, "require-dev": { - "csa/guzzle-cache-middleware": "^1.0", - "friendsoftypo3/phpstan-typo3": "^0.6.0", - "jangregor/phpstan-prophecy": "^0.8.1", - "maglnet/composer-require-checker": "^2.1", + "jangregor/phpstan-prophecy": "^1.0", "phpstan/extension-installer": "^1.1", - "phpstan/phpstan": "^0.12.71", - "phpstan/phpstan-phpunit": "^0.12.21", + "phpstan/phpstan": "1.1.0", + "phpstan/phpstan-phpunit": "^1.0", "phpunit/phpunit": "^8.5", + "saschaegerer/phpstan-typo3": "^1.1", "symplify/easy-coding-standard": "^9.0", - "typo3/cms-fluid-styled-content": "^10.4", + "typo3/cms-fluid-styled-content": "^10.4 || ^11.5", "typo3/testing-framework": "^6.6" }, "scripts": { diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index e911984..0ac867c 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -1,19 +1,38 @@ parameters: ignoreErrors: - - message: "#^Parameter \\#1 \\$function of function call_user_func expects callable\\(\\)\\: mixed, array\\(string, 'getPriority'\\) given\\.$#" + message: "#^Parameter \\#1 \\$function of function call_user_func expects callable\\(\\)\\: mixed, array\\{string, 'getPriority'\\} given\\.$#" + count: 1 + path: Classes/DependencyInjection/EntityPass.php + - + message: "#^Parameter \\#1 \\$callback of function call_user_func expects callable\\(\\)\\: mixed, array\\{string, 'getPriority'\\} given\\.$#" count: 1 path: Classes/DependencyInjection/EntityPass.php - - message: "#^Parameter \\#1 \\$function of function call_user_func expects callable\\(\\)\\: mixed, array\\(string, 'getSupportedTypes'\\) given\\.$#" + message: "#^Parameter \\#1 \\$function of function call_user_func expects callable\\(\\)\\: mixed, array\\{string, 'getSupportedTypes'\\} given\\.$#" count: 1 path: Classes/DependencyInjection/EntityPass.php - - message: "#^Cannot call method fetchColumn\\(\\) on Doctrine\\\\DBAL\\\\Driver\\\\ResultStatement\\|int\\.$#" - count: 2 - path: Classes/Domain/Import/Importer/SaveData.php + message: "#^Parameter \\#1 \\$callback of function call_user_func expects callable\\(\\)\\: mixed, array\\{string, 'getSupportedTypes'\\} given\\.$#" + count: 1 + path: Classes/DependencyInjection/EntityPass.php + + - + message: "#^Method WerkraumMedia\\\\ThueCat\\\\Domain\\\\Import\\\\EntityMapper\\:\\:mapDataToEntity\\(\\) should return object but returns mixed\\.$#" + count: 1 + path: Classes/Domain/Import/EntityMapper.php + + - + message: "#^Class WerkraumMedia\\\\ThueCat\\\\Domain\\\\Import\\\\EntityMapper\\\\ArrayDenormalizer extends @final class Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\ArrayDenormalizer\\.$#" + count: 1 + path: Classes/Domain/Import/EntityMapper/ArrayDenormalizer.php + + - + message: "#^Parameter \\#1 \\$data of method WerkraumMedia\\\\ThueCat\\\\Domain\\\\Import\\\\EntityMapper\\\\ArrayDenormalizer\\:\\:transformSingleEntryToMultiEntry\\(\\) expects array, mixed given\\.$#" + count: 1 + path: Classes/Domain/Import/EntityMapper/ArrayDenormalizer.php - message: "#^Call to an undefined method WerkraumMedia\\\\ThueCat\\\\Domain\\\\Import\\\\Entity\\\\MapsToType\\:\\:getId\\(\\)\\.$#" @@ -31,32 +50,322 @@ parameters: path: Classes/Domain/Import/Typo3Converter/GeneralConverter.php - - message: "#^Property WerkraumMedia\\\\ThueCat\\\\Domain\\\\Model\\\\Backend\\\\ImportLog\\:\\:\\$logEntries \\(iterable\\&TYPO3\\\\CMS\\\\Extbase\\\\Persistence\\\\ObjectStorage\\) does not accept TYPO3\\\\CMS\\\\Extbase\\\\Persistence\\\\ObjectStorage\\.$#" + message: "#^Method WerkraumMedia\\\\ThueCat\\\\Domain\\\\Model\\\\Backend\\\\ImportConfiguration\\:\\:getConfigurationAsArray\\(\\) should return array but returns mixed\\.$#" count: 1 - path: Classes/Domain/Model/Backend/ImportLog.php + path: Classes/Domain/Model/Backend/ImportConfiguration.php - - message: "#^Property WerkraumMedia\\\\ThueCat\\\\Domain\\\\Model\\\\Frontend\\\\Place\\:\\:\\$parkingFacilityNearBy \\(iterable\\&TYPO3\\\\CMS\\\\Extbase\\\\Persistence\\\\ObjectStorage\\) does not accept TYPO3\\\\CMS\\\\Extbase\\\\Persistence\\\\ObjectStorage\\.$#" + message: "#^Method WerkraumMedia\\\\ThueCat\\\\Domain\\\\Model\\\\Backend\\\\ImportConfiguration\\:\\:getEntries\\(\\) should return array but returns mixed\\.$#" count: 1 - path: Classes/Domain/Model/Frontend/Place.php + path: Classes/Domain/Model/Backend/ImportConfiguration.php - - message: "#^Method WerkraumMedia\\\\ThueCat\\\\Domain\\\\Repository\\\\Backend\\\\TownRepository\\:\\:findOneByEntity\\(\\) should return WerkraumMedia\\\\ThueCat\\\\Domain\\\\Model\\\\Backend\\\\Town\\|null but returns object\\|null\\.$#" + message: "#^Method WerkraumMedia\\\\ThueCat\\\\Domain\\\\Model\\\\Backend\\\\ImportConfiguration\\:\\:getSyncScopeId\\(\\) should return string but returns mixed\\.$#" count: 1 - path: Classes/Domain/Repository/Backend/TownRepository.php + path: Classes/Domain/Model/Backend/ImportConfiguration.php + + - + message: "#^Method WerkraumMedia\\\\ThueCat\\\\Domain\\\\Model\\\\Backend\\\\ImportConfiguration\\:\\:getUrls\\(\\) should return array\\ but returns array\\\\.$#" + count: 1 + path: Classes/Domain/Model/Backend/ImportConfiguration.php + + - + message: "#^Parameter \\#1 \\$array of static method TYPO3\\\\CMS\\\\Core\\\\Utility\\\\ArrayUtility\\:\\:getValueByPath\\(\\) expects array, mixed given\\.$#" + count: 1 + path: Classes/Domain/Model/Backend/ImportConfiguration.php + + - + message: "#^Parameter \\#1 \\$array of function array_unique expects array, mixed given\\.$#" + count: 1 + path: Classes/Domain/Model/Backend/ImportLogEntry.php + + - + message: "#^Property WerkraumMedia\\\\ThueCat\\\\Domain\\\\Model\\\\Backend\\\\ImportLogEntry\\:\\:\\$errorsAsArray \\(array\\\\) does not accept array\\.$#" + count: 1 + path: Classes/Domain/Model/Backend/ImportLogEntry.php + + - + message: "#^Property WerkraumMedia\\\\ThueCat\\\\Domain\\\\Model\\\\Backend\\\\ImportLogEntry\\:\\:\\$errorsAsArray \\(array\\\\) does not accept mixed\\.$#" + count: 1 + path: Classes/Domain/Model/Backend/ImportLogEntry.php + + - + message: "#^Method WerkraumMedia\\\\ThueCat\\\\Domain\\\\Model\\\\Frontend\\\\AccessiblitySpecification\\:\\:getCertificationDeaf\\(\\) should return string but returns mixed\\.$#" + count: 1 + path: Classes/Domain/Model/Frontend/AccessiblitySpecification.php + + - + message: "#^Method WerkraumMedia\\\\ThueCat\\\\Domain\\\\Model\\\\Frontend\\\\AccessiblitySpecification\\:\\:getCertificationMental\\(\\) should return string but returns mixed\\.$#" + count: 1 + path: Classes/Domain/Model/Frontend/AccessiblitySpecification.php + + - + message: "#^Method WerkraumMedia\\\\ThueCat\\\\Domain\\\\Model\\\\Frontend\\\\AccessiblitySpecification\\:\\:getCertificationPartiallyDeaf\\(\\) should return string but returns mixed\\.$#" + count: 1 + path: Classes/Domain/Model/Frontend/AccessiblitySpecification.php + + - + message: "#^Method WerkraumMedia\\\\ThueCat\\\\Domain\\\\Model\\\\Frontend\\\\AccessiblitySpecification\\:\\:getCertificationPartiallyVisual\\(\\) should return string but returns mixed\\.$#" + count: 1 + path: Classes/Domain/Model/Frontend/AccessiblitySpecification.php + + - + message: "#^Method WerkraumMedia\\\\ThueCat\\\\Domain\\\\Model\\\\Frontend\\\\AccessiblitySpecification\\:\\:getCertificationStatus\\(\\) should return string but returns mixed\\.$#" + count: 1 + path: Classes/Domain/Model/Frontend/AccessiblitySpecification.php + + - + message: "#^Method WerkraumMedia\\\\ThueCat\\\\Domain\\\\Model\\\\Frontend\\\\AccessiblitySpecification\\:\\:getCertificationVisual\\(\\) should return string but returns mixed\\.$#" + count: 1 + path: Classes/Domain/Model/Frontend/AccessiblitySpecification.php + + - + message: "#^Method WerkraumMedia\\\\ThueCat\\\\Domain\\\\Model\\\\Frontend\\\\AccessiblitySpecification\\:\\:getCertificationWalking\\(\\) should return string but returns mixed\\.$#" + count: 1 + path: Classes/Domain/Model/Frontend/AccessiblitySpecification.php + + - + message: "#^Method WerkraumMedia\\\\ThueCat\\\\Domain\\\\Model\\\\Frontend\\\\AccessiblitySpecification\\:\\:getCertificationWheelchair\\(\\) should return string but returns mixed\\.$#" + count: 1 + path: Classes/Domain/Model/Frontend/AccessiblitySpecification.php + + - + message: "#^Method WerkraumMedia\\\\ThueCat\\\\Domain\\\\Model\\\\Frontend\\\\AccessiblitySpecification\\:\\:getSearchCriteria\\(\\) should return array but returns mixed\\.$#" + count: 1 + path: Classes/Domain/Model/Frontend/AccessiblitySpecification.php + + - + message: "#^Method WerkraumMedia\\\\ThueCat\\\\Domain\\\\Model\\\\Frontend\\\\AccessiblitySpecification\\:\\:getShortDescriptionAllGenerations\\(\\) should return string but returns mixed\\.$#" + count: 1 + path: Classes/Domain/Model/Frontend/AccessiblitySpecification.php + + - + message: "#^Method WerkraumMedia\\\\ThueCat\\\\Domain\\\\Model\\\\Frontend\\\\AccessiblitySpecification\\:\\:getShortDescriptionAllergic\\(\\) should return string but returns mixed\\.$#" + count: 1 + path: Classes/Domain/Model/Frontend/AccessiblitySpecification.php + + - + message: "#^Method WerkraumMedia\\\\ThueCat\\\\Domain\\\\Model\\\\Frontend\\\\AccessiblitySpecification\\:\\:getShortDescriptionDeaf\\(\\) should return string but returns mixed\\.$#" + count: 1 + path: Classes/Domain/Model/Frontend/AccessiblitySpecification.php + + - + message: "#^Method WerkraumMedia\\\\ThueCat\\\\Domain\\\\Model\\\\Frontend\\\\AccessiblitySpecification\\:\\:getShortDescriptionMental\\(\\) should return string but returns mixed\\.$#" + count: 1 + path: Classes/Domain/Model/Frontend/AccessiblitySpecification.php + + - + message: "#^Method WerkraumMedia\\\\ThueCat\\\\Domain\\\\Model\\\\Frontend\\\\AccessiblitySpecification\\:\\:getShortDescriptionVisual\\(\\) should return string but returns mixed\\.$#" + count: 1 + path: Classes/Domain/Model/Frontend/AccessiblitySpecification.php + + - + message: "#^Method WerkraumMedia\\\\ThueCat\\\\Domain\\\\Model\\\\Frontend\\\\AccessiblitySpecification\\:\\:getShortDescriptionWalking\\(\\) should return string but returns mixed\\.$#" + count: 1 + path: Classes/Domain/Model/Frontend/AccessiblitySpecification.php + + - + message: "#^Property WerkraumMedia\\\\ThueCat\\\\Domain\\\\Model\\\\Frontend\\\\AccessiblitySpecification\\:\\:\\$data \\(array\\) does not accept mixed\\.$#" + count: 1 + path: Classes/Domain/Model/Frontend/AccessiblitySpecification.php + + - + message: "#^Cannot access offset 'latitude' on mixed\\.$#" + count: 1 + path: Classes/Domain/Model/Frontend/Address.php + + - + message: "#^Cannot access offset 'longitude' on mixed\\.$#" + count: 1 + path: Classes/Domain/Model/Frontend/Address.php + + - + message: "#^Method WerkraumMedia\\\\ThueCat\\\\Domain\\\\Model\\\\Frontend\\\\Address\\:\\:getCity\\(\\) should return string but returns mixed\\.$#" + count: 1 + path: Classes/Domain/Model/Frontend/Address.php + + - + message: "#^Method WerkraumMedia\\\\ThueCat\\\\Domain\\\\Model\\\\Frontend\\\\Address\\:\\:getEmail\\(\\) should return string but returns mixed\\.$#" + count: 1 + path: Classes/Domain/Model/Frontend/Address.php + + - + message: "#^Method WerkraumMedia\\\\ThueCat\\\\Domain\\\\Model\\\\Frontend\\\\Address\\:\\:getFax\\(\\) should return string but returns mixed\\.$#" + count: 1 + path: Classes/Domain/Model/Frontend/Address.php + + - + message: "#^Method WerkraumMedia\\\\ThueCat\\\\Domain\\\\Model\\\\Frontend\\\\Address\\:\\:getLatitute\\(\\) should return float but returns mixed\\.$#" + count: 1 + path: Classes/Domain/Model/Frontend/Address.php + + - + message: "#^Method WerkraumMedia\\\\ThueCat\\\\Domain\\\\Model\\\\Frontend\\\\Address\\:\\:getLongitude\\(\\) should return float but returns mixed\\.$#" + count: 1 + path: Classes/Domain/Model/Frontend/Address.php + + - + message: "#^Method WerkraumMedia\\\\ThueCat\\\\Domain\\\\Model\\\\Frontend\\\\Address\\:\\:getPhone\\(\\) should return string but returns mixed\\.$#" + count: 1 + path: Classes/Domain/Model/Frontend/Address.php + + - + message: "#^Method WerkraumMedia\\\\ThueCat\\\\Domain\\\\Model\\\\Frontend\\\\Address\\:\\:getStreet\\(\\) should return string but returns mixed\\.$#" + count: 1 + path: Classes/Domain/Model/Frontend/Address.php + + - + message: "#^Method WerkraumMedia\\\\ThueCat\\\\Domain\\\\Model\\\\Frontend\\\\Address\\:\\:getZip\\(\\) should return string but returns mixed\\.$#" + count: 1 + path: Classes/Domain/Model/Frontend/Address.php + + - + message: "#^Property WerkraumMedia\\\\ThueCat\\\\Domain\\\\Model\\\\Frontend\\\\Address\\:\\:\\$data \\(array\\) does not accept mixed\\.$#" + count: 1 + path: Classes/Domain/Model/Frontend/Address.php + + - + message: "#^Cannot access offset 'mainImage' on mixed\\.$#" + count: 1 + path: Classes/Domain/Model/Frontend/Media.php + + - + message: "#^Cannot access offset 'type' on mixed\\.$#" + count: 1 + path: Classes/Domain/Model/Frontend/Media.php + + - + message: "#^Method WerkraumMedia\\\\ThueCat\\\\Domain\\\\Model\\\\Frontend\\\\Media\\:\\:getMainImage\\(\\) should return array but returns mixed\\.$#" + count: 1 + path: Classes/Domain/Model/Frontend/Media.php + + - + message: "#^Parameter \\#2 \\$callback of function array_filter expects callable\\(mixed\\)\\: mixed, Closure\\(array\\)\\: bool given\\.$#" + count: 1 + path: Classes/Domain/Model/Frontend/Media.php + + - + message: "#^Property WerkraumMedia\\\\ThueCat\\\\Domain\\\\Model\\\\Frontend\\\\Media\\:\\:\\$data \\(array\\) does not accept mixed\\.$#" + count: 1 + path: Classes/Domain/Model/Frontend/Media.php + + - + message: "#^Method WerkraumMedia\\\\ThueCat\\\\Domain\\\\Model\\\\Frontend\\\\Offers\\:\\:current\\(\\) should return WerkraumMedia\\\\ThueCat\\\\Domain\\\\Model\\\\Frontend\\\\Offer but returns mixed\\.$#" + count: 1 + path: Classes/Domain/Model/Frontend/Offers.php + + - + message: "#^Method WerkraumMedia\\\\ThueCat\\\\Domain\\\\Model\\\\Frontend\\\\OpeningHours\\:\\:current\\(\\) should return WerkraumMedia\\\\ThueCat\\\\Domain\\\\Model\\\\Frontend\\\\OpeningHour but returns mixed\\.$#" + count: 1 + path: Classes/Domain/Model/Frontend/OpeningHours.php + + - + message: "#^Parameter \\#1 \\$callback of function array_map expects \\(callable\\(mixed\\)\\: mixed\\)\\|null, array\\{'WerkraumMedia\\\\\\\\ThueCat\\\\\\\\Domain\\\\\\\\Model\\\\\\\\Frontend\\\\\\\\OpeningHour', 'createFromArray'\\} given\\.$#" + count: 1 + path: Classes/Domain/Model/Frontend/OpeningHours.php + + - + message: "#^Parameter \\#2 \\$array of function array_map expects array, mixed given\\.$#" + count: 1 + path: Classes/Domain/Model/Frontend/OpeningHours.php - message: "#^Argument of an invalid type Doctrine\\\\DBAL\\\\Driver\\\\ResultStatement\\|int supplied for foreach, only iterables are supported\\.$#" count: 1 path: Classes/Frontend/DataProcessing/ResolveEntities.php + - + message: "#^Argument of an invalid type Doctrine\\\\DBAL\\\\Result\\|int supplied for foreach, only iterables are supported\\.$#" + count: 1 + path: Classes/Frontend/DataProcessing/ResolveEntities.php + - message: "#^Cannot call method getLanguageOverlay\\(\\) on string\\|TYPO3\\\\CMS\\\\Core\\\\Domain\\\\Repository\\\\PageRepository\\.$#" count: 1 path: Classes/Frontend/DataProcessing/ResolveEntities.php + - + message: "#^Right side of \\|\\| is always false\\.$#" + count: 1 + path: Configuration/SiteConfiguration/Overrides/sites.php + + - + message: "#^Right side of \\|\\| is always false\\.$#" + count: 1 + path: Configuration/TCA/Overrides/pages.php + + - + message: "#^Right side of \\|\\| is always false\\.$#" + count: 1 + path: Configuration/TCA/Overrides/pages_tourist_attraction.php + + - + message: "#^Right side of \\|\\| is always false\\.$#" + count: 1 + path: Configuration/TCA/Overrides/sys_template.php + + - + message: "#^Right side of \\|\\| is always false\\.$#" + count: 1 + path: Configuration/TCA/Overrides/tt_content.php + + - + message: "#^Right side of \\|\\| is always false\\.$#" + count: 1 + path: Configuration/TCA/Overrides/tt_content_tourist_attraction.php + + - + message: "#^Right side of \\|\\| is always false\\.$#" + count: 1 + path: Configuration/TCA/tx_thuecat_import_configuration.php + + - + message: "#^Right side of \\|\\| is always false\\.$#" + count: 1 + path: Configuration/TCA/tx_thuecat_import_log.php + + - + message: "#^Right side of \\|\\| is always false\\.$#" + count: 1 + path: Configuration/TCA/tx_thuecat_import_log_entry.php + + - + message: "#^Right side of \\|\\| is always false\\.$#" + count: 1 + path: Configuration/TCA/tx_thuecat_organisation.php + + - + message: "#^Right side of \\|\\| is always false\\.$#" + count: 1 + path: Configuration/TCA/tx_thuecat_parking_facility.php + + - + message: "#^Right side of \\|\\| is always false\\.$#" + count: 1 + path: Configuration/TCA/tx_thuecat_tourist_attraction.php + + - + message: "#^Right side of \\|\\| is always false\\.$#" + count: 1 + path: Configuration/TCA/tx_thuecat_tourist_information.php + + - + message: "#^Right side of \\|\\| is always false\\.$#" + count: 1 + path: Configuration/TCA/tx_thuecat_town.php + - message: "#^Cannot call method format\\(\\) on DateTimeImmutable\\|null\\.$#" count: 4 path: Tests/Functional/Import/EntityMapping/PlaceInfosTest.php + - + message: "#^Cannot call method findByUid\\(\\) on mixed\\.$#" + count: 8 + path: Tests/Functional/ImportTest.php + + - + message: "#^Cannot call method importConfiguration\\(\\) on mixed\\.$#" + count: 8 + path: Tests/Functional/ImportTest.php + diff --git a/phpstan.neon b/phpstan.neon index d83da30..f4496a5 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -1,5 +1,4 @@ includes: - - vendor/friendsoftypo3/phpstan-typo3/extension.neon - phpstan-baseline.neon parameters: level: max @@ -8,5 +7,9 @@ parameters: - Configuration - Tests checkMissingIterableValueType: false - reportUnmatchedIgnoredErrors: true + reportUnmatchedIgnoredErrors: false checkGenericClassInNonGenericObjectType: false + ignoreErrors: + # Depending on TYPO3 version + - "#^Cannot call method fetchColumn\\(\\) on Doctrine\\\\DBAL\\\\Result\\|int\\.$#" + - "#^Cannot call method fetchColumn\\(\\) on Doctrine\\\\DBAL\\\\Driver\\\\ResultStatement\\|int\\.$#" diff --git a/phpunit.xml.dist b/phpunit.xml.dist index fd7829f..4d4f27c 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -4,12 +4,12 @@ xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/8.5/phpunit.xsd" backupGlobals="false" backupStaticAttributes="false" - beStrictAboutCoversAnnotation="true" + beStrictAboutCoversAnnotation="false" bootstrap="vendor/typo3/testing-framework/Resources/Core/Build/FunctionalTestsBootstrap.php" colors="true" convertErrorsToExceptions="true" convertWarningsToExceptions="true" - forceCoversAnnotation="true" + forceCoversAnnotation="false" processIsolation="false" stopOnError="false" stopOnFailure="false" @@ -27,6 +27,12 @@ + + + Classes + + +