aboutsummaryrefslogtreecommitdiff
path: root/tests/Formats/BaseFormatTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'tests/Formats/BaseFormatTest.php')
-rw-r--r--tests/Formats/BaseFormatTest.php116
1 files changed, 61 insertions, 55 deletions
diff --git a/tests/Formats/BaseFormatTest.php b/tests/Formats/BaseFormatTest.php
index 94da7b04..ace4d3ea 100644
--- a/tests/Formats/BaseFormatTest.php
+++ b/tests/Formats/BaseFormatTest.php
@@ -5,59 +5,65 @@ namespace RssBridge\Tests\Formats;
use PHPUnit\Framework\TestCase;
use FormatFactory;
-abstract class BaseFormatTest extends TestCase {
- protected const PATH_SAMPLES = __DIR__ . '/samples/';
-
- /**
- * @return array<string, array{string, string}>
- */
- public function sampleProvider() {
- $samples = [];
- foreach (glob(self::PATH_SAMPLES . '*.json') as $path) {
- $name = basename($path, '.json');
- $samples[$name] = [
- $name,
- $path,
- ];
- }
- return $samples;
- }
-
- /**
- * Cannot be part of the sample returned by sampleProvider since this modifies $_SERVER
- * and thus needs to be run in a separate process to avoid side effects.
- */
- protected function loadSample(string $path): \stdClass {
- $data = json_decode(file_get_contents($path), true);
- if (isset($data['meta']) && isset($data['items'])) {
- if (!empty($data['server']))
- $this->setServerVars($data['server']);
-
- $items = array();
- foreach($data['items'] as $item) {
- $items[] = new \FeedItem($item);
- }
-
- return (object)array(
- 'meta' => $data['meta'],
- 'items' => $items,
- );
- } else {
- $this->fail('invalid test sample: ' . basename($path, '.json'));
- }
- }
-
- private function setServerVars(array $list): void {
- $_SERVER = array_merge($_SERVER, $list);
- }
-
- protected function formatData(string $formatName, \stdClass $sample): string {
- $formatFac = new FormatFactory();
- $format = $formatFac->create($formatName);
- $format->setItems($sample->items);
- $format->setExtraInfos($sample->meta);
- $format->setLastModified(strtotime('2000-01-01 12:00:00 UTC'));
-
- return $format->stringify();
- }
+abstract class BaseFormatTest extends TestCase
+{
+ protected const PATH_SAMPLES = __DIR__ . '/samples/';
+
+ /**
+ * @return array<string, array{string, string}>
+ */
+ public function sampleProvider()
+ {
+ $samples = [];
+ foreach (glob(self::PATH_SAMPLES . '*.json') as $path) {
+ $name = basename($path, '.json');
+ $samples[$name] = [
+ $name,
+ $path,
+ ];
+ }
+ return $samples;
+ }
+
+ /**
+ * Cannot be part of the sample returned by sampleProvider since this modifies $_SERVER
+ * and thus needs to be run in a separate process to avoid side effects.
+ */
+ protected function loadSample(string $path): \stdClass
+ {
+ $data = json_decode(file_get_contents($path), true);
+ if (isset($data['meta']) && isset($data['items'])) {
+ if (!empty($data['server'])) {
+ $this->setServerVars($data['server']);
+ }
+
+ $items = [];
+ foreach ($data['items'] as $item) {
+ $items[] = new \FeedItem($item);
+ }
+
+ return (object)[
+ 'meta' => $data['meta'],
+ 'items' => $items,
+ ];
+ } else {
+ $this->fail('invalid test sample: ' . basename($path, '.json'));
+ }
+ }
+
+ private function setServerVars(array $list): void
+ {
+ $_SERVER = array_merge($_SERVER, $list);
+ }
+
+ protected function formatData(string $formatName, \stdClass $sample): string
+ {
+ $formatFac = new FormatFactory();
+ $format = $formatFac->create($formatName);
+ $format->setItems($sample->items);
+ $format->setExtraInfos($sample->meta);
+ $format->setLastModified(strtotime('2000-01-01 12:00:00 UTC'));
+
+ return $format->stringify();
+ }
}