wishthis/vendor/ml/json-ld/Test/JsonLDApiTest.php
2022-01-21 09:23:52 +01:00

132 lines
4.6 KiB
PHP

<?php
/*
* (c) Markus Lanthaler <mail@markus-lanthaler.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace ML\JsonLD\Test;
use ML\JsonLD\JsonLD;
/**
* Tests JsonLD's API
*
* @author Markus Lanthaler <mail@markus-lanthaler.com>
*/
class JsonLDApiTest extends JsonTestCase
{
/**
* Tests the expansion API
*
* @group expansion
*/
public function testExpansion()
{
$path = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'Fixtures' . DIRECTORY_SEPARATOR;
$expected = json_decode(file_get_contents($path . 'sample-expanded.jsonld'));
$input = $path . 'sample-in.jsonld';
$this->assertJsonEquals($expected, JsonLD::expand($input), 'Passing the file path');
$input = file_get_contents($input);
$this->assertJsonEquals($expected, JsonLD::expand($input), 'Passing the raw input (string)');
$input = json_decode($input);
$this->assertJsonEquals($expected, JsonLD::expand($input), 'Passing the parsed object');
}
/**
* Tests the compaction API
*
* @group compaction
*/
public function testCompaction()
{
$path = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'Fixtures' . DIRECTORY_SEPARATOR;
$expected = json_decode(file_get_contents($path . 'sample-compacted.jsonld'));
$input = $path . 'sample-in.jsonld';
$context = $path . 'sample-context.jsonld';
$this->assertJsonEquals($expected, JsonLD::compact($input, $context), 'Passing the file path');
$input = file_get_contents($input);
$context = file_get_contents($context);
$this->assertJsonEquals($expected, JsonLD::compact($input, $context), 'Passing the raw input (string)');
$input = json_decode($input);
$context = json_decode($context);
$this->assertJsonEquals($expected, JsonLD::compact($input, $context), 'Passing the parsed object');
}
/**
* Tests the flattening API
*
* @group flattening
*/
public function testFlatten()
{
$path = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'Fixtures' . DIRECTORY_SEPARATOR;
$expected = json_decode(file_get_contents($path . 'sample-flattened.jsonld'));
$input = $path . 'sample-in.jsonld';
$context = $path . 'sample-context.jsonld';
$this->assertJsonEquals($expected, JsonLD::flatten($input, $context), 'Passing the file path');
$input = file_get_contents($input);
$context = file_get_contents($context);
$this->assertJsonEquals($expected, JsonLD::flatten($input, $context), 'Passing the raw input (string)');
$input = json_decode($input);
$context = json_decode($context);
$this->assertJsonEquals($expected, JsonLD::flatten($input, $context), 'Passing the parsed object');
}
/**
* Tests the framing API
*
* This test intentionally uses the same fixtures as the flattening tests.
*
* @group framing
*/
public function testFrame()
{
$path = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'Fixtures' . DIRECTORY_SEPARATOR;
$expected = json_decode(file_get_contents($path . 'sample-flattened.jsonld'));
$input = $path . 'sample-in.jsonld';
$context = $path . 'sample-context.jsonld';
$this->assertJsonEquals($expected, JsonLD::frame($input, $context), 'Passing the file path');
$input = file_get_contents($input);
$context = file_get_contents($context);
$this->assertJsonEquals($expected, JsonLD::frame($input, $context), 'Passing the raw input (string)');
$input = json_decode($input);
$context = json_decode($context);
$this->assertJsonEquals($expected, JsonLD::frame($input, $context), 'Passing the parsed object');
}
/**
* Tests the document API
*
* This test intentionally uses the same fixtures as the flattening tests.
*/
public function testGetDocument()
{
$path = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'Fixtures' . DIRECTORY_SEPARATOR;
$expected = json_decode(file_get_contents($path . 'sample-serialized-document.jsonld'));
$input = $path . 'sample-in.jsonld';
$this->assertJsonEquals($expected, JsonLD::getDocument($input)->toJsonLd(), 'Passing the file path');
$input = file_get_contents($input);
$this->assertJsonEquals($expected, JsonLD::getDocument($input)->toJsonLd(), 'Passing the raw input (string)');
$input = json_decode($input);
$this->assertJsonEquals($expected, JsonLD::getDocument($input)->toJsonLd(), 'Passing the parsed object');
}
}