Skip to content

Commit 3677642

Browse files
committed
4021: Added test
1 parent 2e41de5 commit 3677642

File tree

2 files changed

+20
-9
lines changed

2 files changed

+20
-9
lines changed

src/Feed/CalendarApiFeedType.php

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,6 @@ public function __construct(
6363
public function getData(Feed $feed): array
6464
{
6565
try {
66-
$results = [];
67-
6866
$configuration = $feed->getConfiguration();
6967

7068
$enabledModifiers = $configuration['enabledModifiers'] ?? [];
@@ -76,25 +74,28 @@ public function getData(Feed $feed): array
7674
}
7775

7876
$resources = $configuration['resources'];
79-
foreach ($resources as $resource) {
80-
$events = $this->getResourceEvents($resource);
8177

82-
$results += static::applyModifiersToEvents($events, $this->eventModifiers, $enabledModifiers);
78+
$events = [];
79+
80+
foreach ($resources as $resource) {
81+
$events += $this->getResourceEvents($resource);
8382
}
8483

85-
$results = array_map(fn (CalendarEvent $event) => [
84+
$modifiedResults = static::applyModifiersToEvents($events, $this->eventModifiers, $enabledModifiers);
85+
86+
$resultsAsArray = array_map(fn (CalendarEvent $event) => [
8687
'id' => Ulid::generate(),
8788
'title' => $event->title,
8889
'startTime' => $event->startTimeTimestamp,
8990
'endTime' => $event->endTimeTimestamp,
9091
'resourceTitle' => $event->resourceDisplayName,
9192
'resourceId' => $event->resourceId,
92-
], $results);
93+
], $modifiedResults);
9394

9495
// Sort bookings by start time.
95-
usort($results, fn (array $a, array $b) => $a['startTime'] > $b['startTime'] ? 1 : -1);
96+
usort($resultsAsArray, fn (array $a, array $b) => $a['startTime'] > $b['startTime'] ? 1 : -1);
9697

97-
return $results;
98+
return $resultsAsArray;
9899
} catch (\Throwable $throwable) {
99100
$this->logger->error('{code}: {message}', [
100101
'code' => $throwable->getCode(),

tests/Feed/CalendarApiFeedTypeTest.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,22 @@ public function testApplyModifiersToEvents(): void
1919
$this->assertEquals('title3', $result[0]->title);
2020
$this->assertEquals('Optaget', $result[1]->title);
2121

22+
$data = new CalendarApiFeedTypeData();
23+
2224
$result = CalendarApiFeedType::applyModifiersToEvents($data->events, $data->modifiers, ['onlyShowAsOptaget']);
2325

2426
$this->assertEquals(4, count($result));
2527
$this->assertEquals('Optaget', $result[0]->title);
2628
$this->assertEquals('Optaget', $result[1]->title);
2729
$this->assertEquals('Optaget', $result[2]->title);
2830
$this->assertEquals('Optaget', $result[3]->title);
31+
32+
$data = new CalendarApiFeedTypeData();
33+
34+
$result = CalendarApiFeedType::applyModifiersToEvents($data->events, $data->modifiers, ['excludeIfNotContainsListe', 'onlyShowAsOptaget']);
35+
36+
$this->assertEquals(2, count($result));
37+
$this->assertEquals('Optaget', $result[0]->title);
38+
$this->assertEquals('Optaget', $result[1]->title);
2939
}
3040
}

0 commit comments

Comments
 (0)