mirror of
https://github.com/werkraum-media/events.git
synced 2024-11-22 21:56:11 +01:00
Daniel Siepmann
00946af6ad
They sometimes use a different separator. The code is adjusted to always use same separator and precision. That will prevent the same location from showing up multiple times due to different latitude and longitude values.
76 lines
2.4 KiB
PHP
76 lines
2.4 KiB
PHP
<?php
|
|
|
|
namespace Wrm\Events\Tests\Functional\Import\DestinationDataTest;
|
|
|
|
use GuzzleHttp\Psr7\Response;
|
|
|
|
/**
|
|
* @testdox DestinationData import
|
|
*/
|
|
final class ImportsWithLocationsTest extends AbstractTest
|
|
{
|
|
protected function setUp(): void
|
|
{
|
|
parent::setUp();
|
|
|
|
$this->importPHPDataSet(__DIR__ . '/Fixtures/Database/DefaultImportConfiguration.php');
|
|
$this->setUpConfiguration([
|
|
'restUrl = https://example.com/some-path/',
|
|
'license = example-license',
|
|
'restType = Event',
|
|
'restLimit = 3',
|
|
'restMode = next_months,12',
|
|
'restTemplate = ET2014A.json',
|
|
]);
|
|
}
|
|
|
|
/**
|
|
* @test
|
|
*/
|
|
public function importsWithLocations(): void
|
|
{
|
|
$this->setUpResponses([
|
|
new Response(200, [], file_get_contents(__DIR__ . '/Fixtures/ResponseWithLocations.json') ?: ''),
|
|
]);
|
|
$tester = $this->executeCommand();
|
|
|
|
self::assertSame(0, $tester->getStatusCode());
|
|
$this->assertPHPDataSet(__DIR__ . '/Assertions/ImportsWithLocations.php');
|
|
$this->assertEmptyLog();
|
|
}
|
|
|
|
/**
|
|
* A single location might be available with different ways to write latitude an longitude ("," and ".").
|
|
* This test ensures this situation is properly handled by streamlining the values.
|
|
*
|
|
* @test
|
|
*/
|
|
public function importsWithSingleLocationOnDuplicates(): void
|
|
{
|
|
$this->setUpResponses([
|
|
new Response(200, [], file_get_contents(__DIR__ . '/Fixtures/ResponseWithLocationUsingDifferentLatitudeAndLongitude.json') ?: ''),
|
|
]);
|
|
$tester = $this->executeCommand();
|
|
|
|
self::assertSame(0, $tester->getStatusCode());
|
|
$this->assertPHPDataSet(__DIR__ . '/Assertions/ImportsWithSingleLocationOnDuplicates.php');
|
|
$this->assertEmptyLog();
|
|
}
|
|
|
|
/**
|
|
* @test
|
|
*/
|
|
public function updatesExistingLocation(): void
|
|
{
|
|
$this->importPHPDataSet(__DIR__ . '/Fixtures/Database/ExistingLocation.php');
|
|
|
|
$this->setUpResponses([
|
|
new Response(200, [], file_get_contents(__DIR__ . '/Fixtures/ResponseWithLocationWithDifferentValues.json') ?: ''),
|
|
]);
|
|
$tester = $this->executeCommand();
|
|
|
|
self::assertSame(0, $tester->getStatusCode());
|
|
$this->assertPHPDataSet(__DIR__ . '/Assertions/UpdatesExistingLocation.php');
|
|
$this->assertEmptyLog();
|
|
}
|
|
}
|