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, + ]); + } + +}