From 76197f02cc362bfe194acac8da3f00f28ae35cef Mon Sep 17 00:00:00 2001 From: Oliver Davies Date: Mon, 14 Jul 2025 19:36:14 +0100 Subject: [PATCH] Add PodcastNodeRepositoryTest --- .../PodcastTokenTest.php | 0 .../src/Kernel/PodcastNodeRepositoryTest.php | 69 +++++++++++++++++++ 2 files changed, 69 insertions(+) rename modules/opd_podcast/tests/src/{Kernel => Functional}/PodcastTokenTest.php (100%) create mode 100644 modules/opd_podcast/tests/src/Kernel/PodcastNodeRepositoryTest.php diff --git a/modules/opd_podcast/tests/src/Kernel/PodcastTokenTest.php b/modules/opd_podcast/tests/src/Functional/PodcastTokenTest.php similarity index 100% rename from modules/opd_podcast/tests/src/Kernel/PodcastTokenTest.php rename to modules/opd_podcast/tests/src/Functional/PodcastTokenTest.php diff --git a/modules/opd_podcast/tests/src/Kernel/PodcastNodeRepositoryTest.php b/modules/opd_podcast/tests/src/Kernel/PodcastNodeRepositoryTest.php new file mode 100644 index 000000000..fa2b567f9 --- /dev/null +++ b/modules/opd_podcast/tests/src/Kernel/PodcastNodeRepositoryTest.php @@ -0,0 +1,69 @@ +createEpisode([ + 'title' => 'Episode A', + 'status' => NodeInterface::PUBLISHED, + ]); + + $this->createEpisode([ + 'title' => 'Episode B', + 'status' => NodeInterface::NOT_PUBLISHED, + ]); + + $this->createEpisode([ + 'title' => 'Episode C', + 'status' => NodeInterface::PUBLISHED, + ]); + + $this->createEpisode([ + 'title' => 'Episode D', + 'status' => NodeInterface::PUBLISHED, + ]); + + $repository = $this->container->get(PodcastNodeRepository::class); + + $episodes = $repository->getPublished(); + + $this->assertCount(expectedCount: 3, haystack: $episodes); + + $titles = array_map( + array: $episodes, + callback: fn (NodeInterface $episode): string => (string) $episode->getTitle(), + ); + + $this->assertSame( + actual: array_values($titles), + expected: ['Episode A', 'Episode C', 'Episode D'], + ); + } + + /** + * @param array $values + */ + private function createEpisode(array $values): NodeInterface { + return $this->createNode([ + 'type' => Episode::NODE_TYPE, + ...$values, + ]); + } + +}