From 0c294e31a0f1215ee47ad132010695ab392d44a4 Mon Sep 17 00:00:00 2001 From: Aditya Parikh Date: Sun, 13 Sep 2026 16:23:23 -0400 Subject: [PATCH 1/5] test(data): ship the shows sample dataset as CSV, XML and Markdown too shows.json is the dataset the tutorial and the hackathon card index. The same 61 shows now exist as shows.csv, shows.xml and one Markdown file per show under shows-markdown/, so the indexing walkthrough can be followed in whichever format a reader has. CSV carries multi-valued fields as repeated column headers, which the CSV creator turns into one value per non-empty cell under the same field name. Markdown puts every field in YAML front matter and the description in the body. XML uses one element per record with repeated children for lists; the XML creator prefixes those fields with the record name (show_title) and carries no plain id, which ShowsSampleDataTest pins along with the field-for-field equality of the other three formats. Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_01CiUHyyXLTo9ATdgg8eRFZJ Signed-off-by: Aditya Parikh --- .../server/indexing/ShowsSampleDataTest.java | 147 ++ .../resources/shows-markdown/appletv-001.md | 35 + .../resources/shows-markdown/appletv-002.md | 33 + .../resources/shows-markdown/appletv-003.md | 33 + .../resources/shows-markdown/appletv-004.md | 32 + .../resources/shows-markdown/disney-001.md | 32 + .../resources/shows-markdown/disney-002.md | 33 + .../resources/shows-markdown/disney-003.md | 33 + .../resources/shows-markdown/disney-004.md | 33 + src/test/resources/shows-markdown/hbo-001.md | 35 + src/test/resources/shows-markdown/hbo-002.md | 33 + src/test/resources/shows-markdown/hbo-003.md | 33 + src/test/resources/shows-markdown/hbo-004.md | 34 + src/test/resources/shows-markdown/hbo-005.md | 33 + src/test/resources/shows-markdown/hbo-006.md | 35 + src/test/resources/shows-markdown/hbo-007.md | 33 + src/test/resources/shows-markdown/hulu-001.md | 34 + src/test/resources/shows-markdown/hulu-002.md | 31 + src/test/resources/shows-markdown/hulu-003.md | 33 + .../resources/shows-markdown/netflix-001.md | 35 + .../resources/shows-markdown/netflix-002.md | 34 + .../resources/shows-markdown/netflix-003.md | 34 + .../resources/shows-markdown/netflix-004.md | 34 + .../resources/shows-markdown/netflix-005.md | 34 + .../resources/shows-markdown/netflix-006.md | 35 + .../resources/shows-markdown/netflix-007.md | 35 + .../resources/shows-markdown/netflix-008.md | 30 + .../resources/shows-markdown/netflix-009.md | 33 + .../resources/shows-markdown/netflix-010.md | 33 + .../resources/shows-markdown/netflix-011.md | 35 + .../resources/shows-markdown/netflix-012.md | 33 + .../resources/shows-markdown/netflix-013.md | 33 + .../resources/shows-markdown/netflix-014.md | 34 + .../resources/shows-markdown/netflix-015.md | 34 + .../resources/shows-markdown/netflix-016.md | 33 + .../resources/shows-markdown/netflix-017.md | 34 + .../resources/shows-markdown/netflix-018.md | 34 + .../resources/shows-markdown/netflix-019.md | 33 + .../resources/shows-markdown/netflix-020.md | 34 + .../resources/shows-markdown/paramount-001.md | 34 + .../resources/shows-markdown/paramount-002.md | 34 + .../resources/shows-markdown/peacock-001.md | 30 + .../resources/shows-markdown/prime-001.md | 33 + .../resources/shows-markdown/prime-002.md | 34 + .../resources/shows-markdown/prime-003.md | 33 + .../resources/shows-markdown/prime-004.md | 35 + .../resources/shows-markdown/prime-005.md | 34 + .../resources/shows-markdown/prime-006.md | 32 + .../resources/shows-markdown/prime-007.md | 34 + .../resources/shows-markdown/prime-008.md | 34 + .../resources/shows-markdown/prime-009.md | 32 + .../resources/shows-markdown/prime-010.md | 33 + .../resources/shows-markdown/prime-011.md | 33 + .../resources/shows-markdown/prime-012.md | 32 + .../resources/shows-markdown/prime-013.md | 32 + .../resources/shows-markdown/prime-014.md | 33 + .../resources/shows-markdown/prime-015.md | 33 + .../resources/shows-markdown/prime-016.md | 34 + .../resources/shows-markdown/prime-017.md | 32 + .../resources/shows-markdown/prime-018.md | 34 + .../resources/shows-markdown/prime-019.md | 34 + .../resources/shows-markdown/prime-020.md | 34 + src/test/resources/shows.csv | 62 + src/test/resources/shows.xml | 1611 +++++++++++++++++ 64 files changed, 3855 insertions(+) create mode 100644 src/test/java/org/apache/solr/mcp/server/indexing/ShowsSampleDataTest.java create mode 100644 src/test/resources/shows-markdown/appletv-001.md create mode 100644 src/test/resources/shows-markdown/appletv-002.md create mode 100644 src/test/resources/shows-markdown/appletv-003.md create mode 100644 src/test/resources/shows-markdown/appletv-004.md create mode 100644 src/test/resources/shows-markdown/disney-001.md create mode 100644 src/test/resources/shows-markdown/disney-002.md create mode 100644 src/test/resources/shows-markdown/disney-003.md create mode 100644 src/test/resources/shows-markdown/disney-004.md create mode 100644 src/test/resources/shows-markdown/hbo-001.md create mode 100644 src/test/resources/shows-markdown/hbo-002.md create mode 100644 src/test/resources/shows-markdown/hbo-003.md create mode 100644 src/test/resources/shows-markdown/hbo-004.md create mode 100644 src/test/resources/shows-markdown/hbo-005.md create mode 100644 src/test/resources/shows-markdown/hbo-006.md create mode 100644 src/test/resources/shows-markdown/hbo-007.md create mode 100644 src/test/resources/shows-markdown/hulu-001.md create mode 100644 src/test/resources/shows-markdown/hulu-002.md create mode 100644 src/test/resources/shows-markdown/hulu-003.md create mode 100644 src/test/resources/shows-markdown/netflix-001.md create mode 100644 src/test/resources/shows-markdown/netflix-002.md create mode 100644 src/test/resources/shows-markdown/netflix-003.md create mode 100644 src/test/resources/shows-markdown/netflix-004.md create mode 100644 src/test/resources/shows-markdown/netflix-005.md create mode 100644 src/test/resources/shows-markdown/netflix-006.md create mode 100644 src/test/resources/shows-markdown/netflix-007.md create mode 100644 src/test/resources/shows-markdown/netflix-008.md create mode 100644 src/test/resources/shows-markdown/netflix-009.md create mode 100644 src/test/resources/shows-markdown/netflix-010.md create mode 100644 src/test/resources/shows-markdown/netflix-011.md create mode 100644 src/test/resources/shows-markdown/netflix-012.md create mode 100644 src/test/resources/shows-markdown/netflix-013.md create mode 100644 src/test/resources/shows-markdown/netflix-014.md create mode 100644 src/test/resources/shows-markdown/netflix-015.md create mode 100644 src/test/resources/shows-markdown/netflix-016.md create mode 100644 src/test/resources/shows-markdown/netflix-017.md create mode 100644 src/test/resources/shows-markdown/netflix-018.md create mode 100644 src/test/resources/shows-markdown/netflix-019.md create mode 100644 src/test/resources/shows-markdown/netflix-020.md create mode 100644 src/test/resources/shows-markdown/paramount-001.md create mode 100644 src/test/resources/shows-markdown/paramount-002.md create mode 100644 src/test/resources/shows-markdown/peacock-001.md create mode 100644 src/test/resources/shows-markdown/prime-001.md create mode 100644 src/test/resources/shows-markdown/prime-002.md create mode 100644 src/test/resources/shows-markdown/prime-003.md create mode 100644 src/test/resources/shows-markdown/prime-004.md create mode 100644 src/test/resources/shows-markdown/prime-005.md create mode 100644 src/test/resources/shows-markdown/prime-006.md create mode 100644 src/test/resources/shows-markdown/prime-007.md create mode 100644 src/test/resources/shows-markdown/prime-008.md create mode 100644 src/test/resources/shows-markdown/prime-009.md create mode 100644 src/test/resources/shows-markdown/prime-010.md create mode 100644 src/test/resources/shows-markdown/prime-011.md create mode 100644 src/test/resources/shows-markdown/prime-012.md create mode 100644 src/test/resources/shows-markdown/prime-013.md create mode 100644 src/test/resources/shows-markdown/prime-014.md create mode 100644 src/test/resources/shows-markdown/prime-015.md create mode 100644 src/test/resources/shows-markdown/prime-016.md create mode 100644 src/test/resources/shows-markdown/prime-017.md create mode 100644 src/test/resources/shows-markdown/prime-018.md create mode 100644 src/test/resources/shows-markdown/prime-019.md create mode 100644 src/test/resources/shows-markdown/prime-020.md create mode 100644 src/test/resources/shows.csv create mode 100644 src/test/resources/shows.xml diff --git a/src/test/java/org/apache/solr/mcp/server/indexing/ShowsSampleDataTest.java b/src/test/java/org/apache/solr/mcp/server/indexing/ShowsSampleDataTest.java new file mode 100644 index 00000000..7bc05f65 --- /dev/null +++ b/src/test/java/org/apache/solr/mcp/server/indexing/ShowsSampleDataTest.java @@ -0,0 +1,147 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.solr.mcp.server.indexing; + +import static org.assertj.core.api.Assertions.assertThat; + +import com.fasterxml.jackson.databind.ObjectMapper; +import java.io.IOException; +import java.io.InputStream; +import java.nio.charset.StandardCharsets; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.TreeMap; +import org.apache.solr.common.SolrInputDocument; +import org.apache.solr.mcp.server.indexing.documentcreator.CsvDocumentCreator; +import org.apache.solr.mcp.server.indexing.documentcreator.JsonDocumentCreator; +import org.apache.solr.mcp.server.indexing.documentcreator.MarkdownDocumentCreator; +import org.apache.solr.mcp.server.indexing.documentcreator.XmlDocumentCreator; +import org.junit.jupiter.api.Test; + +/** + * The {@code shows} sample dataset ships in every format the indexing tools + * accept: {@code shows.json}, {@code shows.csv}, {@code shows.xml} and one + * Markdown file per show under {@code shows-markdown/}. These tests pin that + * the four representations parse to the same 61 documents, so a tutorial step + * written against one format holds for the others. + * + *

+ * Two representation choices are worth knowing: + *

    + *
  • CSV carries multi-valued fields as repeated column headers + * ({@code genres,genres,genres}); the parser adds one value per non-empty cell + * under the same field name.
  • + *
  • XML fields arrive prefixed with the record element name + * ({@code show_title}), because the XML creator flattens nested elements by + * path, and there is no plain {@code id} field; Solr assigns one. The test + * documents that mapping rather than hiding it.
  • + *
+ */ +class ShowsSampleDataTest { + + private static final int SHOWS = 61; + + private final JsonDocumentCreator json = new JsonDocumentCreator(new ObjectMapper()); + + @Test + void jsonHas61ShowsWithUniqueIds() throws Exception { + Map>> shows = byId(json.create(resource("/shows.json")), "id"); + + assertThat(shows).hasSize(SHOWS); + assertThat(shows.get("netflix-001")).containsEntry("title", List.of("Stranger Things")).containsEntry("genres", + List.of("Sci-Fi", "Horror", "Drama")); + } + + @Test + void csvParsesToTheSameDocumentsAsJson() throws Exception { + Map>> expected = byId(json.create(resource("/shows.json")), "id"); + Map>> actual = byId(new CsvDocumentCreator().create(resource("/shows.csv")), + "id"); + + assertThat(actual).containsExactlyEntriesOf(expected); + } + + @Test + void markdownFilesParseToTheSameDocumentsAsJson() throws Exception { + Map>> expected = byId(json.create(resource("/shows.json")), "id"); + MarkdownDocumentCreator markdown = new MarkdownDocumentCreator(); + + for (Map.Entry>> show : expected.entrySet()) { + List docs = markdown.create(resource("/shows-markdown/" + show.getKey() + ".md")); + assertThat(docs).as(show.getKey()).hasSize(1); + Map> fields = fields(docs.getFirst(), ""); + + // The description is the document body, so it comes back as content + // (with the title heading) rather than as a front matter field. + Map> frontMatter = new TreeMap<>(show.getValue()); + List description = frontMatter.remove("description"); + assertThat(fields.remove("content")).as("%s content", show.getKey()).hasSize(1).first().asString() + .contains(description.getFirst()); + assertThat(fields.remove("headings")).as("%s headings", show.getKey()) + .isEqualTo(show.getValue().get("title")); + assertThat(fields).as(show.getKey()).containsExactlyEntriesOf(frontMatter); + } + } + + @Test + void xmlParsesToTheSameDocumentsUnderTheRecordPrefix() throws Exception { + Map>> expected = byId(json.create(resource("/shows.json")), "id"); + List docs = new XmlDocumentCreator().create(resource("/shows.xml")); + + assertThat(docs).hasSize(SHOWS); + assertThat(docs).allSatisfy( + doc -> assertThat(doc.getFieldNames()).allMatch(name -> name.startsWith("show_")).doesNotContain("id")); + assertThat(byId(docs, "show_id")).extractingByKey("netflix-001").isNotNull(); + Map>> actual = new TreeMap<>(); + for (SolrInputDocument doc : docs) { + Map> fields = fields(doc, "show_"); + actual.put(fields.get("id").getFirst(), fields); + } + assertThat(actual).containsExactlyEntriesOf(expected); + } + + private static Map>> byId(List docs, String idField) { + Map>> byId = new TreeMap<>(); + for (SolrInputDocument doc : docs) { + Map> fields = fields(doc, ""); + String id = Objects.requireNonNull(fields.get(idField), "missing " + idField).getFirst(); + assertThat(byId.put(id, fields)).as("duplicate id %s", id).isNull(); + } + return byId; + } + + /** + * Field name to string values, with {@code prefix} stripped from every name. + */ + private static Map> fields(SolrInputDocument doc, String prefix) { + Map> fields = new TreeMap<>(); + for (String name : doc.getFieldNames()) { + String key = name.startsWith(prefix) ? name.substring(prefix.length()) : name; + fields.put(key, doc.getFieldValues(name).stream().map(String::valueOf).toList()); + } + return new LinkedHashMap<>(fields); + } + + private static String resource(String path) throws IOException { + try (InputStream in = Objects.requireNonNull(ShowsSampleDataTest.class.getResourceAsStream(path), + "missing test resource " + path)) { + return new String(in.readAllBytes(), StandardCharsets.UTF_8); + } + } +} diff --git a/src/test/resources/shows-markdown/appletv-001.md b/src/test/resources/shows-markdown/appletv-001.md new file mode 100644 index 00000000..9053b3d4 --- /dev/null +++ b/src/test/resources/shows-markdown/appletv-001.md @@ -0,0 +1,35 @@ +--- +id: appletv-001 +title: Ted Lasso +platform: Apple TV+ +genres: + - Comedy + - Drama + - Sport +release_year: 2020 +end_year: 2023 +status: Ended +seasons: 3 +episodes: 34 +creators: + - Bill Lawrence + - Jason Sudeikis +cast: + - Jason Sudeikis + - Hannah Waddingham + - Brett Goldstein + - Juno Temple +country: USA +language: English +rating: TV-MA +imdb_rating: 8.8 +tags: + - soccer + - football + - feel-good + - british +--- + +# Ted Lasso + +American college football coach Ted Lasso heads to London to manage AFC Richmond, a struggling English Premier League soccer team. diff --git a/src/test/resources/shows-markdown/appletv-002.md b/src/test/resources/shows-markdown/appletv-002.md new file mode 100644 index 00000000..e185480d --- /dev/null +++ b/src/test/resources/shows-markdown/appletv-002.md @@ -0,0 +1,33 @@ +--- +id: appletv-002 +title: Severance +platform: Apple TV+ +genres: + - Sci-Fi + - Thriller + - Drama +release_year: 2022 +status: Ongoing +seasons: 2 +episodes: 19 +creators: + - Dan Erickson +cast: + - Adam Scott + - Britt Lower + - Zach Cherry + - John Turturro +country: USA +language: English +rating: TV-MA +imdb_rating: 8.7 +tags: + - workplace + - dystopian + - mystery + - ben-stiller +--- + +# Severance + +Employees at Lumon Industries undergo a procedure that surgically divides their memories between their work and personal lives. diff --git a/src/test/resources/shows-markdown/appletv-003.md b/src/test/resources/shows-markdown/appletv-003.md new file mode 100644 index 00000000..b4c5c0de --- /dev/null +++ b/src/test/resources/shows-markdown/appletv-003.md @@ -0,0 +1,33 @@ +--- +id: appletv-003 +title: Foundation +platform: Apple TV+ +genres: + - Sci-Fi + - Drama + - Adventure +release_year: 2021 +status: Ongoing +seasons: 3 +episodes: 28 +creators: + - David S. Goyer + - Josh Friedman +cast: + - Jared Harris + - Lee Pace + - Lou Llobell +country: USA +language: English +rating: TV-14 +imdb_rating: 7.5 +tags: + - space-opera + - asimov + - epic + - empire +--- + +# Foundation + +A complex saga of humans scattered on planets throughout the galaxy living under the rule of the Galactic Empire. diff --git a/src/test/resources/shows-markdown/appletv-004.md b/src/test/resources/shows-markdown/appletv-004.md new file mode 100644 index 00000000..1c64e583 --- /dev/null +++ b/src/test/resources/shows-markdown/appletv-004.md @@ -0,0 +1,32 @@ +--- +id: appletv-004 +title: Slow Horses +platform: Apple TV+ +genres: + - Crime + - Drama + - Thriller +release_year: 2022 +status: Ongoing +seasons: 4 +episodes: 24 +creators: + - Will Smith +cast: + - Gary Oldman + - Jack Lowden + - Kristin Scott Thomas +country: UK +language: English +rating: TV-MA +imdb_rating: 8.3 +tags: + - spy + - british + - mi5 + - mick-herron +--- + +# Slow Horses + +Follows a team of British intelligence agents who serve in a dumping ground department of MI5. diff --git a/src/test/resources/shows-markdown/disney-001.md b/src/test/resources/shows-markdown/disney-001.md new file mode 100644 index 00000000..e5996b97 --- /dev/null +++ b/src/test/resources/shows-markdown/disney-001.md @@ -0,0 +1,32 @@ +--- +id: disney-001 +title: The Mandalorian +platform: Disney+ +genres: + - Sci-Fi + - Action + - Adventure +release_year: 2019 +status: Ongoing +seasons: 3 +episodes: 24 +creators: + - Jon Favreau +cast: + - Pedro Pascal + - Carl Weathers + - Giancarlo Esposito +country: USA +language: English +rating: TV-14 +imdb_rating: 8.6 +tags: + - star-wars + - space-western + - grogu + - baby-yoda +--- + +# The Mandalorian + +The travels of a lone bounty hunter in the outer reaches of the galaxy, far from the authority of the New Republic. diff --git a/src/test/resources/shows-markdown/disney-002.md b/src/test/resources/shows-markdown/disney-002.md new file mode 100644 index 00000000..3b5e42cd --- /dev/null +++ b/src/test/resources/shows-markdown/disney-002.md @@ -0,0 +1,33 @@ +--- +id: disney-002 +title: WandaVision +platform: Disney+ +genres: + - Sci-Fi + - Drama + - Mystery +release_year: 2021 +end_year: 2021 +status: Ended +seasons: 1 +episodes: 9 +creators: + - Jac Schaeffer +cast: + - Elizabeth Olsen + - Paul Bettany + - Kathryn Hahn +country: USA +language: English +rating: TV-14 +imdb_rating: 7.9 +tags: + - marvel + - mcu + - sitcom + - superhero +--- + +# WandaVision + +Wanda Maximoff and Vision live idealized suburban lives, but begin to suspect that everything is not as it seems. diff --git a/src/test/resources/shows-markdown/disney-003.md b/src/test/resources/shows-markdown/disney-003.md new file mode 100644 index 00000000..ce04be6a --- /dev/null +++ b/src/test/resources/shows-markdown/disney-003.md @@ -0,0 +1,33 @@ +--- +id: disney-003 +title: Andor +platform: Disney+ +genres: + - Sci-Fi + - Drama + - Action +release_year: 2022 +end_year: 2025 +status: Ended +seasons: 2 +episodes: 24 +creators: + - Tony Gilroy +cast: + - Diego Luna + - Genevieve O'Reilly + - Stellan Skarsgård +country: USA +language: English +rating: TV-14 +imdb_rating: 8.4 +tags: + - star-wars + - rebellion + - political + - prequel +--- + +# Andor + +Prequel to Rogue One, exploring a new perspective from the Star Wars galaxy and Cassian Andor's journey to becoming a rebel hero. diff --git a/src/test/resources/shows-markdown/disney-004.md b/src/test/resources/shows-markdown/disney-004.md new file mode 100644 index 00000000..e2244f55 --- /dev/null +++ b/src/test/resources/shows-markdown/disney-004.md @@ -0,0 +1,33 @@ +--- +id: disney-004 +title: Loki +platform: Disney+ +genres: + - Sci-Fi + - Action + - Adventure +release_year: 2021 +end_year: 2023 +status: Ended +seasons: 2 +episodes: 12 +creators: + - Michael Waldron +cast: + - Tom Hiddleston + - Owen Wilson + - Sophia Di Martino +country: USA +language: English +rating: TV-14 +imdb_rating: 8.2 +tags: + - marvel + - mcu + - multiverse + - time-travel +--- + +# Loki + +The mercurial villain Loki resumes his role as the God of Mischief in a new series that takes place after the events of Avengers: Endgame. diff --git a/src/test/resources/shows-markdown/hbo-001.md b/src/test/resources/shows-markdown/hbo-001.md new file mode 100644 index 00000000..a45ed5b7 --- /dev/null +++ b/src/test/resources/shows-markdown/hbo-001.md @@ -0,0 +1,35 @@ +--- +id: hbo-001 +title: Game of Thrones +platform: HBO Max +genres: + - Fantasy + - Drama + - Adventure +release_year: 2011 +end_year: 2019 +status: Ended +seasons: 8 +episodes: 73 +creators: + - David Benioff + - D.B. Weiss +cast: + - Emilia Clarke + - Peter Dinklage + - Kit Harington + - Lena Headey +country: USA +language: English +rating: TV-MA +imdb_rating: 9.2 +tags: + - fantasy + - dragons + - epic + - george-rr-martin +--- + +# Game of Thrones + +Nine noble families fight for control over the lands of Westeros, while an ancient enemy returns after being dormant for millennia. diff --git a/src/test/resources/shows-markdown/hbo-002.md b/src/test/resources/shows-markdown/hbo-002.md new file mode 100644 index 00000000..c5e64af5 --- /dev/null +++ b/src/test/resources/shows-markdown/hbo-002.md @@ -0,0 +1,33 @@ +--- +id: hbo-002 +title: Succession +platform: HBO Max +genres: + - Drama + - Comedy +release_year: 2018 +end_year: 2023 +status: Ended +seasons: 4 +episodes: 39 +creators: + - Jesse Armstrong +cast: + - Brian Cox + - Jeremy Strong + - Kieran Culkin + - Sarah Snook +country: USA +language: English +rating: TV-MA +imdb_rating: 8.9 +tags: + - media + - family-drama + - satire + - wealth +--- + +# Succession + +The Roy family controls the biggest media and entertainment company in the world, but their patriarch's health is failing. diff --git a/src/test/resources/shows-markdown/hbo-003.md b/src/test/resources/shows-markdown/hbo-003.md new file mode 100644 index 00000000..73ec3ff0 --- /dev/null +++ b/src/test/resources/shows-markdown/hbo-003.md @@ -0,0 +1,33 @@ +--- +id: hbo-003 +title: The Last of Us +platform: HBO Max +genres: + - Drama + - Horror + - Sci-Fi +release_year: 2023 +status: Ongoing +seasons: 2 +episodes: 16 +creators: + - Craig Mazin + - Neil Druckmann +cast: + - Pedro Pascal + - Bella Ramsey + - Anna Torv +country: USA +language: English +rating: TV-MA +imdb_rating: 8.7 +tags: + - post-apocalyptic + - zombies + - video-game-adaptation + - fungal +--- + +# The Last of Us + +After a global pandemic destroys civilization, a hardened survivor takes charge of a 14-year-old girl who may be humanity's last hope. diff --git a/src/test/resources/shows-markdown/hbo-004.md b/src/test/resources/shows-markdown/hbo-004.md new file mode 100644 index 00000000..40bc03f4 --- /dev/null +++ b/src/test/resources/shows-markdown/hbo-004.md @@ -0,0 +1,34 @@ +--- +id: hbo-004 +title: House of the Dragon +platform: HBO Max +genres: + - Fantasy + - Drama + - Action +release_year: 2022 +status: Ongoing +seasons: 2 +episodes: 18 +creators: + - Ryan Condal + - George R.R. Martin +cast: + - Paddy Considine + - Matt Smith + - Emma D'Arcy + - Olivia Cooke +country: USA +language: English +rating: TV-MA +imdb_rating: 8.4 +tags: + - targaryen + - dragons + - got-prequel + - civil-war +--- + +# House of the Dragon + +An internal succession war within House Targaryen at the height of its power, 172 years before the birth of Daenerys Targaryen. diff --git a/src/test/resources/shows-markdown/hbo-005.md b/src/test/resources/shows-markdown/hbo-005.md new file mode 100644 index 00000000..8f365480 --- /dev/null +++ b/src/test/resources/shows-markdown/hbo-005.md @@ -0,0 +1,33 @@ +--- +id: hbo-005 +title: True Detective +platform: HBO Max +genres: + - Crime + - Drama + - Mystery +release_year: 2014 +status: Ongoing +seasons: 4 +episodes: 32 +creators: + - Nic Pizzolatto +cast: + - Matthew McConaughey + - Woody Harrelson + - Mahershala Ali + - Jodie Foster +country: USA +language: English +rating: TV-MA +imdb_rating: 8.9 +tags: + - anthology + - noir + - detective + - atmospheric +--- + +# True Detective + +An anthology series of police investigations, with each season featuring a new cast and setting. diff --git a/src/test/resources/shows-markdown/hbo-006.md b/src/test/resources/shows-markdown/hbo-006.md new file mode 100644 index 00000000..311b183c --- /dev/null +++ b/src/test/resources/shows-markdown/hbo-006.md @@ -0,0 +1,35 @@ +--- +id: hbo-006 +title: Westworld +platform: HBO Max +genres: + - Sci-Fi + - Drama + - Mystery +release_year: 2016 +end_year: 2022 +status: Ended +seasons: 4 +episodes: 36 +creators: + - Jonathan Nolan + - Lisa Joy +cast: + - Evan Rachel Wood + - Thandiwe Newton + - Jeffrey Wright + - Ed Harris +country: USA +language: English +rating: TV-MA +imdb_rating: 8.5 +tags: + - ai + - consciousness + - theme-park + - androids +--- + +# Westworld + +Set in a Western-themed park where guests live out their fantasies through robotic hosts that develop consciousness. diff --git a/src/test/resources/shows-markdown/hbo-007.md b/src/test/resources/shows-markdown/hbo-007.md new file mode 100644 index 00000000..93c08a9d --- /dev/null +++ b/src/test/resources/shows-markdown/hbo-007.md @@ -0,0 +1,33 @@ +--- +id: hbo-007 +title: The White Lotus +platform: HBO Max +genres: + - Comedy + - Drama + - Mystery +release_year: 2021 +status: Ongoing +seasons: 3 +episodes: 18 +creators: + - Mike White +cast: + - Murray Bartlett + - Jennifer Coolidge + - Aubrey Plaza + - Theo James +country: USA +language: English +rating: TV-MA +imdb_rating: 7.9 +tags: + - anthology + - satire + - wealth + - vacation +--- + +# The White Lotus + +The exploits of various employees and guests at an exclusive tropical resort. diff --git a/src/test/resources/shows-markdown/hulu-001.md b/src/test/resources/shows-markdown/hulu-001.md new file mode 100644 index 00000000..4be4c4d6 --- /dev/null +++ b/src/test/resources/shows-markdown/hulu-001.md @@ -0,0 +1,34 @@ +--- +id: hulu-001 +title: The Handmaid's Tale +platform: Hulu +genres: + - Drama + - Sci-Fi + - Dystopian +release_year: 2017 +end_year: 2025 +status: Ended +seasons: 6 +episodes: 66 +creators: + - Bruce Miller +cast: + - Elisabeth Moss + - Joseph Fiennes + - Yvonne Strahovski + - Samira Wiley +country: USA +language: English +rating: TV-MA +imdb_rating: 8.4 +tags: + - dystopian + - feminist + - atwood + - theocracy +--- + +# The Handmaid's Tale + +Set in a dystopian future, a woman is forced to live as a concubine under a fundamentalist theocratic dictatorship. diff --git a/src/test/resources/shows-markdown/hulu-002.md b/src/test/resources/shows-markdown/hulu-002.md new file mode 100644 index 00000000..afa2e38a --- /dev/null +++ b/src/test/resources/shows-markdown/hulu-002.md @@ -0,0 +1,31 @@ +--- +id: hulu-002 +title: The Bear +platform: Hulu +genres: + - Comedy + - Drama +release_year: 2022 +status: Ongoing +seasons: 3 +episodes: 28 +creators: + - Christopher Storer +cast: + - Jeremy Allen White + - Ebon Moss-Bachrach + - Ayo Edebiri +country: USA +language: English +rating: TV-MA +imdb_rating: 8.6 +tags: + - cooking + - chicago + - family + - anxiety +--- + +# The Bear + +A young chef from the fine dining world returns to Chicago to run his family's sandwich shop after a heartbreaking death. diff --git a/src/test/resources/shows-markdown/hulu-003.md b/src/test/resources/shows-markdown/hulu-003.md new file mode 100644 index 00000000..83a7a9b5 --- /dev/null +++ b/src/test/resources/shows-markdown/hulu-003.md @@ -0,0 +1,33 @@ +--- +id: hulu-003 +title: Only Murders in the Building +platform: Hulu +genres: + - Comedy + - Crime + - Mystery +release_year: 2021 +status: Ongoing +seasons: 4 +episodes: 40 +creators: + - Steve Martin + - John Hoffman +cast: + - Steve Martin + - Martin Short + - Selena Gomez +country: USA +language: English +rating: TV-MA +imdb_rating: 8.1 +tags: + - whodunit + - podcast + - new-york + - comedy-mystery +--- + +# Only Murders in the Building + +Three strangers who share an obsession with true crime suddenly find themselves wrapped up in one. diff --git a/src/test/resources/shows-markdown/netflix-001.md b/src/test/resources/shows-markdown/netflix-001.md new file mode 100644 index 00000000..79152321 --- /dev/null +++ b/src/test/resources/shows-markdown/netflix-001.md @@ -0,0 +1,35 @@ +--- +id: netflix-001 +title: Stranger Things +platform: Netflix +genres: + - Sci-Fi + - Horror + - Drama +release_year: 2016 +end_year: 2025 +status: Ended +seasons: 5 +episodes: 42 +creators: + - Matt Duffer + - Ross Duffer +cast: + - Millie Bobby Brown + - Finn Wolfhard + - Winona Ryder + - David Harbour +country: USA +language: English +rating: TV-14 +imdb_rating: 8.7 +tags: + - 80s + - supernatural + - coming-of-age + - monsters +--- + +# Stranger Things + +A group of kids in 1980s Indiana uncover supernatural mysteries and government conspiracies tied to a parallel dimension. diff --git a/src/test/resources/shows-markdown/netflix-002.md b/src/test/resources/shows-markdown/netflix-002.md new file mode 100644 index 00000000..340ab2f8 --- /dev/null +++ b/src/test/resources/shows-markdown/netflix-002.md @@ -0,0 +1,34 @@ +--- +id: netflix-002 +title: The Crown +platform: Netflix +genres: + - Drama + - Historical + - Biography +release_year: 2016 +end_year: 2023 +status: Ended +seasons: 6 +episodes: 60 +creators: + - Peter Morgan +cast: + - Claire Foy + - Olivia Colman + - Imelda Staunton + - Matt Smith +country: UK +language: English +rating: TV-MA +imdb_rating: 8.6 +tags: + - royalty + - british + - period-drama + - politics +--- + +# The Crown + +The reign of Queen Elizabeth II from her wedding in 1947 through the early 21st century. diff --git a/src/test/resources/shows-markdown/netflix-003.md b/src/test/resources/shows-markdown/netflix-003.md new file mode 100644 index 00000000..6a233116 --- /dev/null +++ b/src/test/resources/shows-markdown/netflix-003.md @@ -0,0 +1,34 @@ +--- +id: netflix-003 +title: Squid Game +platform: Netflix +genres: + - Thriller + - Drama + - Survival +release_year: 2021 +end_year: 2025 +status: Ended +seasons: 3 +episodes: 22 +creators: + - Hwang Dong-hyuk +cast: + - Lee Jung-jae + - Park Hae-soo + - Wi Ha-joon + - HoYeon Jung +country: South Korea +language: Korean +rating: TV-MA +imdb_rating: 8.0 +tags: + - korean + - survival + - dystopian + - social-commentary +--- + +# Squid Game + +Hundreds of cash-strapped contestants accept an invitation to compete in deadly children's games for a tempting prize. diff --git a/src/test/resources/shows-markdown/netflix-004.md b/src/test/resources/shows-markdown/netflix-004.md new file mode 100644 index 00000000..365a0b1a --- /dev/null +++ b/src/test/resources/shows-markdown/netflix-004.md @@ -0,0 +1,34 @@ +--- +id: netflix-004 +title: Wednesday +platform: Netflix +genres: + - Comedy + - Horror + - Mystery +release_year: 2022 +status: Ongoing +seasons: 2 +episodes: 16 +creators: + - Alfred Gough + - Miles Millar +cast: + - Jenna Ortega + - Catherine Zeta-Jones + - Luis Guzmán + - Gwendoline Christie +country: USA +language: English +rating: TV-14 +imdb_rating: 8.1 +tags: + - gothic + - teen + - supernatural + - addams-family +--- + +# Wednesday + +Wednesday Addams navigates a supernatural boarding school while solving a murder mystery. diff --git a/src/test/resources/shows-markdown/netflix-005.md b/src/test/resources/shows-markdown/netflix-005.md new file mode 100644 index 00000000..1b1a4c8b --- /dev/null +++ b/src/test/resources/shows-markdown/netflix-005.md @@ -0,0 +1,34 @@ +--- +id: netflix-005 +title: Money Heist +platform: Netflix +genres: + - Crime + - Thriller + - Drama +release_year: 2017 +end_year: 2021 +status: Ended +seasons: 5 +episodes: 41 +creators: + - Álex Pina +cast: + - Úrsula Corberó + - Álvaro Morte + - Pedro Alonso + - Itziar Ituño +country: Spain +language: Spanish +rating: TV-MA +imdb_rating: 8.2 +tags: + - spanish + - heist + - crime + - ensemble +--- + +# Money Heist + +An unusual group of robbers attempt to carry out the most perfect robbery in Spanish history. diff --git a/src/test/resources/shows-markdown/netflix-006.md b/src/test/resources/shows-markdown/netflix-006.md new file mode 100644 index 00000000..7612b242 --- /dev/null +++ b/src/test/resources/shows-markdown/netflix-006.md @@ -0,0 +1,35 @@ +--- +id: netflix-006 +title: Dark +platform: Netflix +genres: + - Sci-Fi + - Mystery + - Thriller +release_year: 2017 +end_year: 2020 +status: Ended +seasons: 3 +episodes: 26 +creators: + - Baran bo Odar + - Jantje Friese +cast: + - Louis Hofmann + - Karoline Eichhorn + - Lisa Vicari + - Maja Schöne +country: Germany +language: German +rating: TV-MA +imdb_rating: 8.7 +tags: + - time-travel + - german + - complex-plot + - mystery +--- + +# Dark + +A family saga with a supernatural twist set in a German town where the disappearance of children exposes the relationships among four families. diff --git a/src/test/resources/shows-markdown/netflix-007.md b/src/test/resources/shows-markdown/netflix-007.md new file mode 100644 index 00000000..60eb04b6 --- /dev/null +++ b/src/test/resources/shows-markdown/netflix-007.md @@ -0,0 +1,35 @@ +--- +id: netflix-007 +title: Ozark +platform: Netflix +genres: + - Crime + - Drama + - Thriller +release_year: 2017 +end_year: 2022 +status: Ended +seasons: 4 +episodes: 44 +creators: + - Bill Dubuque + - Mark Williams +cast: + - Jason Bateman + - Laura Linney + - Julia Garner + - Sofia Hublitz +country: USA +language: English +rating: TV-MA +imdb_rating: 8.5 +tags: + - money-laundering + - cartel + - family-drama + - crime +--- + +# Ozark + +A financial advisor drags his family from Chicago to the Missouri Ozarks, where he must launder money to appease a drug boss. diff --git a/src/test/resources/shows-markdown/netflix-008.md b/src/test/resources/shows-markdown/netflix-008.md new file mode 100644 index 00000000..65b4c6db --- /dev/null +++ b/src/test/resources/shows-markdown/netflix-008.md @@ -0,0 +1,30 @@ +--- +id: netflix-008 +title: Black Mirror +platform: Netflix +genres: + - Sci-Fi + - Drama + - Anthology +release_year: 2011 +status: Ongoing +seasons: 7 +episodes: 33 +creators: + - Charlie Brooker +cast: + - Various +country: UK +language: English +rating: TV-MA +imdb_rating: 8.7 +tags: + - anthology + - technology + - dystopian + - british +--- + +# Black Mirror + +An anthology series exploring a twisted, high-tech multiverse where humanity's greatest innovations collide with its darkest instincts. diff --git a/src/test/resources/shows-markdown/netflix-009.md b/src/test/resources/shows-markdown/netflix-009.md new file mode 100644 index 00000000..2e5ee79c --- /dev/null +++ b/src/test/resources/shows-markdown/netflix-009.md @@ -0,0 +1,33 @@ +--- +id: netflix-009 +title: The Witcher +platform: Netflix +genres: + - Fantasy + - Action + - Adventure +release_year: 2019 +status: Ongoing +seasons: 4 +episodes: 32 +creators: + - Lauren Schmidt Hissrich +cast: + - Henry Cavill + - Liam Hemsworth + - Anya Chalotra + - Freya Allan +country: USA +language: English +rating: TV-MA +imdb_rating: 8.0 +tags: + - fantasy + - monsters + - magic + - adaptation +--- + +# The Witcher + +Geralt of Rivia, a solitary monster hunter, struggles to find his place in a world where people often prove more wicked than beasts. diff --git a/src/test/resources/shows-markdown/netflix-010.md b/src/test/resources/shows-markdown/netflix-010.md new file mode 100644 index 00000000..b0639d2c --- /dev/null +++ b/src/test/resources/shows-markdown/netflix-010.md @@ -0,0 +1,33 @@ +--- +id: netflix-010 +title: Bridgerton +platform: Netflix +genres: + - Romance + - Drama + - Historical +release_year: 2020 +status: Ongoing +seasons: 3 +episodes: 24 +creators: + - Chris Van Dusen +cast: + - Phoebe Dynevor + - Regé-Jean Page + - Jonathan Bailey + - Nicola Coughlan +country: USA +language: English +rating: TV-MA +imdb_rating: 7.3 +tags: + - regency + - romance + - period-drama + - shondaland +--- + +# Bridgerton + +Wealth, lust, and betrayal set against the backdrop of Regency-era England, seen through the eyes of the powerful Bridgerton family. diff --git a/src/test/resources/shows-markdown/netflix-011.md b/src/test/resources/shows-markdown/netflix-011.md new file mode 100644 index 00000000..51c86653 --- /dev/null +++ b/src/test/resources/shows-markdown/netflix-011.md @@ -0,0 +1,35 @@ +--- +id: netflix-011 +title: Narcos +platform: Netflix +genres: + - Crime + - Biography + - Drama +release_year: 2015 +end_year: 2017 +status: Ended +seasons: 3 +episodes: 30 +creators: + - Chris Brancato + - Carlo Bernard + - Doug Miro +cast: + - Wagner Moura + - Pedro Pascal + - Boyd Holbrook +country: USA +language: English +rating: TV-MA +imdb_rating: 8.8 +tags: + - cartel + - colombia + - true-crime + - pablo-escobar +--- + +# Narcos + +The true story of Colombia's infamously violent and powerful drug cartels. diff --git a/src/test/resources/shows-markdown/netflix-012.md b/src/test/resources/shows-markdown/netflix-012.md new file mode 100644 index 00000000..7c3b8b11 --- /dev/null +++ b/src/test/resources/shows-markdown/netflix-012.md @@ -0,0 +1,33 @@ +--- +id: netflix-012 +title: Mindhunter +platform: Netflix +genres: + - Crime + - Drama + - Thriller +release_year: 2017 +end_year: 2019 +status: Ended +seasons: 2 +episodes: 19 +creators: + - Joe Penhall +cast: + - Jonathan Groff + - Holt McCallany + - Anna Torv +country: USA +language: English +rating: TV-MA +imdb_rating: 8.6 +tags: + - fbi + - serial-killers + - psychology + - fincher +--- + +# Mindhunter + +Two FBI agents interview imprisoned serial killers to apply behavioral science to their open cases. diff --git a/src/test/resources/shows-markdown/netflix-013.md b/src/test/resources/shows-markdown/netflix-013.md new file mode 100644 index 00000000..e2f361ce --- /dev/null +++ b/src/test/resources/shows-markdown/netflix-013.md @@ -0,0 +1,33 @@ +--- +id: netflix-013 +title: The Queen's Gambit +platform: Netflix +genres: + - Drama + - Period +release_year: 2020 +end_year: 2020 +status: Ended +seasons: 1 +episodes: 7 +creators: + - Scott Frank + - Allan Scott +cast: + - Anya Taylor-Joy + - Bill Camp + - Marielle Heller +country: USA +language: English +rating: TV-MA +imdb_rating: 8.5 +tags: + - chess + - limited-series + - cold-war + - addiction +--- + +# The Queen's Gambit + +An orphaned chess prodigy rises to the top of the chess world while struggling with addiction. diff --git a/src/test/resources/shows-markdown/netflix-014.md b/src/test/resources/shows-markdown/netflix-014.md new file mode 100644 index 00000000..baee4e32 --- /dev/null +++ b/src/test/resources/shows-markdown/netflix-014.md @@ -0,0 +1,34 @@ +--- +id: netflix-014 +title: BoJack Horseman +platform: Netflix +genres: + - Animation + - Comedy + - Drama +release_year: 2014 +end_year: 2020 +status: Ended +seasons: 6 +episodes: 77 +creators: + - Raphael Bob-Waksberg +cast: + - Will Arnett + - Aaron Paul + - Amy Sedaris + - Alison Brie +country: USA +language: English +rating: TV-MA +imdb_rating: 8.8 +tags: + - animation + - adult-animation + - satire + - mental-health +--- + +# BoJack Horseman + +A washed-up actor who happens to be a horse navigates Hollywood life, depression, and existentialism. diff --git a/src/test/resources/shows-markdown/netflix-015.md b/src/test/resources/shows-markdown/netflix-015.md new file mode 100644 index 00000000..4e22e095 --- /dev/null +++ b/src/test/resources/shows-markdown/netflix-015.md @@ -0,0 +1,34 @@ +--- +id: netflix-015 +title: Peaky Blinders +platform: Netflix +genres: + - Crime + - Drama + - Historical +release_year: 2013 +end_year: 2022 +status: Ended +seasons: 6 +episodes: 36 +creators: + - Steven Knight +cast: + - Cillian Murphy + - Paul Anderson + - Helen McCrory + - Tom Hardy +country: UK +language: English +rating: TV-MA +imdb_rating: 8.8 +tags: + - british + - gangster + - period-drama + - birmingham +--- + +# Peaky Blinders + +A gangster family epic set in 1900s England, centering on a gang led by the fierce Tommy Shelby. diff --git a/src/test/resources/shows-markdown/netflix-016.md b/src/test/resources/shows-markdown/netflix-016.md new file mode 100644 index 00000000..54b67431 --- /dev/null +++ b/src/test/resources/shows-markdown/netflix-016.md @@ -0,0 +1,33 @@ +--- +id: netflix-016 +title: Lupin +platform: Netflix +genres: + - Crime + - Mystery + - Drama +release_year: 2021 +status: Ongoing +seasons: 3 +episodes: 17 +creators: + - George Kay + - François Uzan +cast: + - Omar Sy + - Ludivine Sagnier + - Clotilde Hesme +country: France +language: French +rating: TV-MA +imdb_rating: 7.5 +tags: + - french + - heist + - revenge + - paris +--- + +# Lupin + +Inspired by Arsène Lupin, gentleman thief Assane Diop sets out to avenge his father for an injustice inflicted by a wealthy family. diff --git a/src/test/resources/shows-markdown/netflix-017.md b/src/test/resources/shows-markdown/netflix-017.md new file mode 100644 index 00000000..0ba292a1 --- /dev/null +++ b/src/test/resources/shows-markdown/netflix-017.md @@ -0,0 +1,34 @@ +--- +id: netflix-017 +title: The Umbrella Academy +platform: Netflix +genres: + - Sci-Fi + - Action + - Drama +release_year: 2019 +end_year: 2024 +status: Ended +seasons: 4 +episodes: 34 +creators: + - Steve Blackman +cast: + - Elliot Page + - Tom Hopper + - David Castañeda + - Emmy Raver-Lampman +country: USA +language: English +rating: TV-14 +imdb_rating: 7.9 +tags: + - superheroes + - time-travel + - comic-adaptation + - family +--- + +# The Umbrella Academy + +A dysfunctional family of adopted sibling superheroes reunites to solve the mystery of their father's death and the threat of an apocalypse. diff --git a/src/test/resources/shows-markdown/netflix-018.md b/src/test/resources/shows-markdown/netflix-018.md new file mode 100644 index 00000000..5e80e041 --- /dev/null +++ b/src/test/resources/shows-markdown/netflix-018.md @@ -0,0 +1,34 @@ +--- +id: netflix-018 +title: Sex Education +platform: Netflix +genres: + - Comedy + - Drama + - Romance +release_year: 2019 +end_year: 2023 +status: Ended +seasons: 4 +episodes: 32 +creators: + - Laurie Nunn +cast: + - Asa Butterfield + - Gillian Anderson + - Emma Mackey + - Ncuti Gatwa +country: UK +language: English +rating: TV-MA +imdb_rating: 8.3 +tags: + - teen + - british + - coming-of-age + - lgbtq +--- + +# Sex Education + +A teenage boy with a sex therapist mother teams up with a high school classmate to set up an underground sex therapy clinic at school. diff --git a/src/test/resources/shows-markdown/netflix-019.md b/src/test/resources/shows-markdown/netflix-019.md new file mode 100644 index 00000000..8c401bd1 --- /dev/null +++ b/src/test/resources/shows-markdown/netflix-019.md @@ -0,0 +1,33 @@ +--- +id: netflix-019 +title: House of Cards +platform: Netflix +genres: + - Drama + - Political + - Thriller +release_year: 2013 +end_year: 2018 +status: Ended +seasons: 6 +episodes: 73 +creators: + - Beau Willimon +cast: + - Kevin Spacey + - Robin Wright + - Michael Kelly +country: USA +language: English +rating: TV-MA +imdb_rating: 8.7 +tags: + - politics + - washington + - dc + - machiavellian +--- + +# House of Cards + +A ruthless politician will stop at nothing to conquer Washington, D.C. diff --git a/src/test/resources/shows-markdown/netflix-020.md b/src/test/resources/shows-markdown/netflix-020.md new file mode 100644 index 00000000..33e6f243 --- /dev/null +++ b/src/test/resources/shows-markdown/netflix-020.md @@ -0,0 +1,34 @@ +--- +id: netflix-020 +title: Beef +platform: Netflix +genres: + - Comedy + - Drama + - Thriller +release_year: 2023 +end_year: 2023 +status: Ended +seasons: 1 +episodes: 10 +creators: + - Lee Sung Jin +cast: + - Steven Yeun + - Ali Wong + - Joseph Lee + - Young Mazino +country: USA +language: English +rating: TV-MA +imdb_rating: 8.0 +tags: + - limited-series + - dark-comedy + - a24 + - asian-american +--- + +# Beef + +A road rage incident between two strangers triggers a feud that brings out their darkest impulses. diff --git a/src/test/resources/shows-markdown/paramount-001.md b/src/test/resources/shows-markdown/paramount-001.md new file mode 100644 index 00000000..83e3f845 --- /dev/null +++ b/src/test/resources/shows-markdown/paramount-001.md @@ -0,0 +1,34 @@ +--- +id: paramount-001 +title: Yellowstone +platform: Paramount+ +genres: + - Drama + - Western +release_year: 2018 +end_year: 2024 +status: Ended +seasons: 5 +episodes: 53 +creators: + - Taylor Sheridan + - John Linson +cast: + - Kevin Costner + - Luke Grimes + - Kelly Reilly + - Wes Bentley +country: USA +language: English +rating: TV-MA +imdb_rating: 8.7 +tags: + - western + - ranch + - family-drama + - montana +--- + +# Yellowstone + +A ranching family in Montana faces off against others encroaching on their land. diff --git a/src/test/resources/shows-markdown/paramount-002.md b/src/test/resources/shows-markdown/paramount-002.md new file mode 100644 index 00000000..9bf69de2 --- /dev/null +++ b/src/test/resources/shows-markdown/paramount-002.md @@ -0,0 +1,34 @@ +--- +id: paramount-002 +title: Star Trek: Strange New Worlds +platform: Paramount+ +genres: + - Sci-Fi + - Adventure + - Drama +release_year: 2022 +status: Ongoing +seasons: 3 +episodes: 30 +creators: + - Akiva Goldsman + - Alex Kurtzman + - Jenny Lumet +cast: + - Anson Mount + - Rebecca Romijn + - Ethan Peck +country: USA +language: English +rating: TV-14 +imdb_rating: 8.1 +tags: + - star-trek + - space + - enterprise + - pike +--- + +# Star Trek: Strange New Worlds + +Captain Christopher Pike helms the USS Enterprise as it explores new worlds in the years before Captain Kirk's iconic missions. diff --git a/src/test/resources/shows-markdown/peacock-001.md b/src/test/resources/shows-markdown/peacock-001.md new file mode 100644 index 00000000..accfd647 --- /dev/null +++ b/src/test/resources/shows-markdown/peacock-001.md @@ -0,0 +1,30 @@ +--- +id: peacock-001 +title: Poker Face +platform: Peacock +genres: + - Crime + - Comedy + - Mystery +release_year: 2023 +status: Ongoing +seasons: 2 +episodes: 20 +creators: + - Rian Johnson +cast: + - Natasha Lyonne +country: USA +language: English +rating: TV-MA +imdb_rating: 8.1 +tags: + - mystery-of-the-week + - rian-johnson + - columbo + - road-trip +--- + +# Poker Face + +A casino worker with the ability to determine when someone is lying hits the road, solving crimes along the way. diff --git a/src/test/resources/shows-markdown/prime-001.md b/src/test/resources/shows-markdown/prime-001.md new file mode 100644 index 00000000..dff42fb0 --- /dev/null +++ b/src/test/resources/shows-markdown/prime-001.md @@ -0,0 +1,33 @@ +--- +id: prime-001 +title: The Boys +platform: Amazon Prime Video +genres: + - Action + - Sci-Fi + - Drama +release_year: 2019 +status: Ongoing +seasons: 4 +episodes: 32 +creators: + - Eric Kripke +cast: + - Karl Urban + - Jack Quaid + - Antony Starr + - Erin Moriarty +country: USA +language: English +rating: TV-MA +imdb_rating: 8.7 +tags: + - superheroes + - satire + - violent + - comic-adaptation +--- + +# The Boys + +A group of vigilantes set out to take down corrupt superheroes who abuse their powers. diff --git a/src/test/resources/shows-markdown/prime-002.md b/src/test/resources/shows-markdown/prime-002.md new file mode 100644 index 00000000..63d1b77c --- /dev/null +++ b/src/test/resources/shows-markdown/prime-002.md @@ -0,0 +1,34 @@ +--- +id: prime-002 +title: The Marvelous Mrs. Maisel +platform: Amazon Prime Video +genres: + - Comedy + - Drama + - Period +release_year: 2017 +end_year: 2023 +status: Ended +seasons: 5 +episodes: 43 +creators: + - Amy Sherman-Palladino +cast: + - Rachel Brosnahan + - Alex Borstein + - Michael Zegen + - Tony Shalhoub +country: USA +language: English +rating: TV-MA +imdb_rating: 8.7 +tags: + - 50s + - stand-up + - feminist + - new-york +--- + +# The Marvelous Mrs. Maisel + +A 1950s New York housewife discovers she has a talent for stand-up comedy. diff --git a/src/test/resources/shows-markdown/prime-003.md b/src/test/resources/shows-markdown/prime-003.md new file mode 100644 index 00000000..118107b0 --- /dev/null +++ b/src/test/resources/shows-markdown/prime-003.md @@ -0,0 +1,33 @@ +--- +id: prime-003 +title: Fleabag +platform: Amazon Prime Video +genres: + - Comedy + - Drama +release_year: 2016 +end_year: 2019 +status: Ended +seasons: 2 +episodes: 12 +creators: + - Phoebe Waller-Bridge +cast: + - Phoebe Waller-Bridge + - Sian Clifford + - Olivia Colman + - Andrew Scott +country: UK +language: English +rating: TV-MA +imdb_rating: 8.7 +tags: + - british + - dark-comedy + - fourth-wall + - limited-series +--- + +# Fleabag + +A dry-witted woman navigates life and love in London while trying to cope with tragedy. diff --git a/src/test/resources/shows-markdown/prime-004.md b/src/test/resources/shows-markdown/prime-004.md new file mode 100644 index 00000000..deb3f502 --- /dev/null +++ b/src/test/resources/shows-markdown/prime-004.md @@ -0,0 +1,35 @@ +--- +id: prime-004 +title: The Expanse +platform: Amazon Prime Video +genres: + - Sci-Fi + - Drama + - Mystery +release_year: 2015 +end_year: 2022 +status: Ended +seasons: 6 +episodes: 62 +creators: + - Mark Fergus + - Hawk Ostby +cast: + - Steven Strait + - Dominique Tipper + - Wes Chatham + - Shohreh Aghdashloo +country: USA +language: English +rating: TV-14 +imdb_rating: 8.5 +tags: + - space + - hard-sci-fi + - politics + - adaptation +--- + +# The Expanse + +In a colonized future solar system, a detective, a ship's officer, and a UN executive uncover a conspiracy. diff --git a/src/test/resources/shows-markdown/prime-005.md b/src/test/resources/shows-markdown/prime-005.md new file mode 100644 index 00000000..17c90dc3 --- /dev/null +++ b/src/test/resources/shows-markdown/prime-005.md @@ -0,0 +1,34 @@ +--- +id: prime-005 +title: The Lord of the Rings: The Rings of Power +platform: Amazon Prime Video +genres: + - Fantasy + - Adventure + - Drama +release_year: 2022 +status: Ongoing +seasons: 2 +episodes: 16 +creators: + - J.D. Payne + - Patrick McKay +cast: + - Morfydd Clark + - Robert Aramayo + - Charlie Vickers + - Markella Kavenagh +country: USA +language: English +rating: TV-14 +imdb_rating: 6.9 +tags: + - tolkien + - middle-earth + - epic + - high-budget +--- + +# The Lord of the Rings: The Rings of Power + +Epic drama set thousands of years before the events of The Hobbit and The Lord of the Rings, follows an ensemble cast in the Second Age of Middle-earth. diff --git a/src/test/resources/shows-markdown/prime-006.md b/src/test/resources/shows-markdown/prime-006.md new file mode 100644 index 00000000..d63503c9 --- /dev/null +++ b/src/test/resources/shows-markdown/prime-006.md @@ -0,0 +1,32 @@ +--- +id: prime-006 +title: Reacher +platform: Amazon Prime Video +genres: + - Action + - Crime + - Drama +release_year: 2022 +status: Ongoing +seasons: 3 +episodes: 24 +creators: + - Nick Santora +cast: + - Alan Ritchson + - Malcolm Goodwin + - Willa Fitzgerald +country: USA +language: English +rating: TV-MA +imdb_rating: 8.1 +tags: + - action + - thriller + - lee-child + - adaptation +--- + +# Reacher + +Veteran military police investigator Jack Reacher solves crimes as a drifter. diff --git a/src/test/resources/shows-markdown/prime-007.md b/src/test/resources/shows-markdown/prime-007.md new file mode 100644 index 00000000..36ce35da --- /dev/null +++ b/src/test/resources/shows-markdown/prime-007.md @@ -0,0 +1,34 @@ +--- +id: prime-007 +title: Jack Ryan +platform: Amazon Prime Video +genres: + - Action + - Thriller + - Drama +release_year: 2018 +end_year: 2023 +status: Ended +seasons: 4 +episodes: 32 +creators: + - Carlton Cuse + - Graham Roland +cast: + - John Krasinski + - Wendell Pierce + - Abbie Cornish +country: USA +language: English +rating: TV-MA +imdb_rating: 8.0 +tags: + - cia + - spy + - tom-clancy + - adaptation +--- + +# Jack Ryan + +An up-and-coming CIA analyst is thrust into a dangerous field assignment. diff --git a/src/test/resources/shows-markdown/prime-008.md b/src/test/resources/shows-markdown/prime-008.md new file mode 100644 index 00000000..0e85b8a4 --- /dev/null +++ b/src/test/resources/shows-markdown/prime-008.md @@ -0,0 +1,34 @@ +--- +id: prime-008 +title: Fallout +platform: Amazon Prime Video +genres: + - Sci-Fi + - Action + - Adventure +release_year: 2024 +status: Ongoing +seasons: 1 +episodes: 8 +creators: + - Graham Wagner + - Geneva Robertson-Dworet +cast: + - Ella Purnell + - Walton Goggins + - Aaron Moten + - Kyle MacLachlan +country: USA +language: English +rating: TV-MA +imdb_rating: 8.4 +tags: + - post-apocalyptic + - video-game-adaptation + - wasteland + - vaults +--- + +# Fallout + +In a future, post-apocalyptic Los Angeles brought about by nuclear decimation, citizens must live in underground bunkers to protect themselves. diff --git a/src/test/resources/shows-markdown/prime-009.md b/src/test/resources/shows-markdown/prime-009.md new file mode 100644 index 00000000..2690af40 --- /dev/null +++ b/src/test/resources/shows-markdown/prime-009.md @@ -0,0 +1,32 @@ +--- +id: prime-009 +title: Mr. & Mrs. Smith +platform: Amazon Prime Video +genres: + - Action + - Comedy + - Romance +release_year: 2024 +status: Ongoing +seasons: 1 +episodes: 8 +creators: + - Donald Glover + - Francesca Sloane +cast: + - Donald Glover + - Maya Erskine +country: USA +language: English +rating: TV-MA +imdb_rating: 7.2 +tags: + - spy + - romance + - remake + - donald-glover +--- + +# Mr. & Mrs. Smith + +Two lonely strangers take a job working for a mysterious spy agency that offers them a glamorous life, a dream brownstone in Manhattan, and a new identity as a married couple. diff --git a/src/test/resources/shows-markdown/prime-010.md b/src/test/resources/shows-markdown/prime-010.md new file mode 100644 index 00000000..5e6f8963 --- /dev/null +++ b/src/test/resources/shows-markdown/prime-010.md @@ -0,0 +1,33 @@ +--- +id: prime-010 +title: The Wheel of Time +platform: Amazon Prime Video +genres: + - Fantasy + - Adventure + - Action +release_year: 2021 +status: Ongoing +seasons: 3 +episodes: 24 +creators: + - Rafe Judkins +cast: + - Rosamund Pike + - Daniel Henney + - Josha Stradowski + - Madeleine Madden +country: USA +language: English +rating: TV-14 +imdb_rating: 7.0 +tags: + - fantasy + - magic + - robert-jordan + - epic +--- + +# The Wheel of Time + +Set in a high fantasy world where magic exists, but only some can access it, a woman named Moiraine leads five young people on a journey. diff --git a/src/test/resources/shows-markdown/prime-011.md b/src/test/resources/shows-markdown/prime-011.md new file mode 100644 index 00000000..5cf2dfed --- /dev/null +++ b/src/test/resources/shows-markdown/prime-011.md @@ -0,0 +1,33 @@ +--- +id: prime-011 +title: Good Omens +platform: Amazon Prime Video +genres: + - Comedy + - Fantasy + - Drama +release_year: 2019 +status: Ongoing +seasons: 2 +episodes: 12 +creators: + - Neil Gaiman +cast: + - David Tennant + - Michael Sheen + - Jon Hamm + - Frances McDormand +country: UK +language: English +rating: TV-MA +imdb_rating: 8.0 +tags: + - british + - supernatural + - gaiman + - pratchett +--- + +# Good Omens + +A demon and an angel attempt to prevent the apocalypse on Earth, which they have grown rather fond of over the millennia. diff --git a/src/test/resources/shows-markdown/prime-012.md b/src/test/resources/shows-markdown/prime-012.md new file mode 100644 index 00000000..3ba9793d --- /dev/null +++ b/src/test/resources/shows-markdown/prime-012.md @@ -0,0 +1,32 @@ +--- +id: prime-012 +title: The Terminal List +platform: Amazon Prime Video +genres: + - Action + - Drama + - Thriller +release_year: 2022 +status: Ongoing +seasons: 1 +episodes: 8 +creators: + - David DiGilio +cast: + - Chris Pratt + - Constance Wu + - Taylor Kitsch +country: USA +language: English +rating: TV-MA +imdb_rating: 8.0 +tags: + - navy-seal + - revenge + - military + - thriller +--- + +# The Terminal List + +A former Navy SEAL officer investigates why his entire platoon was ambushed during a high-stakes covert mission. diff --git a/src/test/resources/shows-markdown/prime-013.md b/src/test/resources/shows-markdown/prime-013.md new file mode 100644 index 00000000..4a003d43 --- /dev/null +++ b/src/test/resources/shows-markdown/prime-013.md @@ -0,0 +1,32 @@ +--- +id: prime-013 +title: Upload +platform: Amazon Prime Video +genres: + - Sci-Fi + - Comedy + - Mystery +release_year: 2020 +status: Ongoing +seasons: 3 +episodes: 24 +creators: + - Greg Daniels +cast: + - Robbie Amell + - Andy Allo + - Allegra Edwards +country: USA +language: English +rating: TV-MA +imdb_rating: 7.9 +tags: + - afterlife + - technology + - sci-fi-comedy + - near-future +--- + +# Upload + +A man is able to choose his own afterlife after his untimely death by having his consciousness uploaded into a virtual world. diff --git a/src/test/resources/shows-markdown/prime-014.md b/src/test/resources/shows-markdown/prime-014.md new file mode 100644 index 00000000..308276db --- /dev/null +++ b/src/test/resources/shows-markdown/prime-014.md @@ -0,0 +1,33 @@ +--- +id: prime-014 +title: Bosch +platform: Amazon Prime Video +genres: + - Crime + - Drama + - Mystery +release_year: 2014 +end_year: 2021 +status: Ended +seasons: 7 +episodes: 68 +creators: + - Eric Overmyer +cast: + - Titus Welliver + - Jamie Hector + - Amy Aquino +country: USA +language: English +rating: TV-MA +imdb_rating: 8.5 +tags: + - detective + - los-angeles + - procedural + - michael-connelly +--- + +# Bosch + +An LAPD homicide detective works to solve the murder of a 13-year-old boy. diff --git a/src/test/resources/shows-markdown/prime-015.md b/src/test/resources/shows-markdown/prime-015.md new file mode 100644 index 00000000..1f8b1d90 --- /dev/null +++ b/src/test/resources/shows-markdown/prime-015.md @@ -0,0 +1,33 @@ +--- +id: prime-015 +title: Invincible +platform: Amazon Prime Video +genres: + - Animation + - Action + - Drama +release_year: 2021 +status: Ongoing +seasons: 3 +episodes: 24 +creators: + - Robert Kirkman +cast: + - Steven Yeun + - J.K. Simmons + - Sandra Oh + - Zazie Beetz +country: USA +language: English +rating: TV-MA +imdb_rating: 8.7 +tags: + - adult-animation + - superheroes + - violent + - comic-adaptation +--- + +# Invincible + +An adult animated series about a teenager whose father is the most powerful superhero on the planet. diff --git a/src/test/resources/shows-markdown/prime-016.md b/src/test/resources/shows-markdown/prime-016.md new file mode 100644 index 00000000..156d1153 --- /dev/null +++ b/src/test/resources/shows-markdown/prime-016.md @@ -0,0 +1,34 @@ +--- +id: prime-016 +title: Vikings +platform: Amazon Prime Video +genres: + - Drama + - Action + - Historical +release_year: 2013 +end_year: 2020 +status: Ended +seasons: 6 +episodes: 89 +creators: + - Michael Hirst +cast: + - Travis Fimmel + - Katheryn Winnick + - Clive Standen + - Gustaf Skarsgård +country: Ireland +language: English +rating: TV-MA +imdb_rating: 8.5 +tags: + - vikings + - historical + - norse + - ragnar +--- + +# Vikings + +The world of the Vikings is brought to life through the journey of Ragnar Lothbrok, the first Viking to emerge from Norse legend. diff --git a/src/test/resources/shows-markdown/prime-017.md b/src/test/resources/shows-markdown/prime-017.md new file mode 100644 index 00000000..2c83ad43 --- /dev/null +++ b/src/test/resources/shows-markdown/prime-017.md @@ -0,0 +1,32 @@ +--- +id: prime-017 +title: The Underground Railroad +platform: Amazon Prime Video +genres: + - Drama + - Historical +release_year: 2021 +end_year: 2021 +status: Ended +seasons: 1 +episodes: 10 +creators: + - Barry Jenkins +cast: + - Thuso Mbedu + - Chase W. Dillon + - Joel Edgerton +country: USA +language: English +rating: TV-MA +imdb_rating: 7.4 +tags: + - limited-series + - slavery + - barry-jenkins + - literary-adaptation +--- + +# The Underground Railroad + +A young woman makes a harrowing escape from antebellum slavery via an underground railroad that travels in a literal underground train. diff --git a/src/test/resources/shows-markdown/prime-018.md b/src/test/resources/shows-markdown/prime-018.md new file mode 100644 index 00000000..5448b725 --- /dev/null +++ b/src/test/resources/shows-markdown/prime-018.md @@ -0,0 +1,34 @@ +--- +id: prime-018 +title: Hunters +platform: Amazon Prime Video +genres: + - Drama + - Thriller + - Action +release_year: 2020 +end_year: 2023 +status: Ended +seasons: 2 +episodes: 18 +creators: + - David Weil +cast: + - Al Pacino + - Logan Lerman + - Jerrika Hinton + - Lena Olin +country: USA +language: English +rating: TV-MA +imdb_rating: 7.2 +tags: + - nazi-hunters + - 70s + - alternate-history + - new-york +--- + +# Hunters + +A diverse band of Nazi hunters living in 1977 New York City discover that hundreds of high-ranking Nazi officials are conspiring to create a Fourth Reich in the U.S. diff --git a/src/test/resources/shows-markdown/prime-019.md b/src/test/resources/shows-markdown/prime-019.md new file mode 100644 index 00000000..3b974cb4 --- /dev/null +++ b/src/test/resources/shows-markdown/prime-019.md @@ -0,0 +1,34 @@ +--- +id: prime-019 +title: Carnival Row +platform: Amazon Prime Video +genres: + - Fantasy + - Drama + - Mystery +release_year: 2019 +end_year: 2023 +status: Ended +seasons: 2 +episodes: 18 +creators: + - René Echevarria + - Travis Beacham +cast: + - Orlando Bloom + - Cara Delevingne + - Simon McBurney +country: USA +language: English +rating: TV-MA +imdb_rating: 7.8 +tags: + - fantasy + - victorian + - mythical-creatures + - noir +--- + +# Carnival Row + +Mythical creatures have fled their war-torn homeland and gathered in a city where humans live, leading to escalating tensions. diff --git a/src/test/resources/shows-markdown/prime-020.md b/src/test/resources/shows-markdown/prime-020.md new file mode 100644 index 00000000..8a93cecd --- /dev/null +++ b/src/test/resources/shows-markdown/prime-020.md @@ -0,0 +1,34 @@ +--- +id: prime-020 +title: Citadel +platform: Amazon Prime Video +genres: + - Action + - Drama + - Thriller +release_year: 2023 +status: Ongoing +seasons: 1 +episodes: 6 +creators: + - Josh Appelbaum + - Bryan Oh + - David Weil +cast: + - Richard Madden + - Priyanka Chopra Jonas + - Stanley Tucci +country: USA +language: English +rating: TV-MA +imdb_rating: 5.9 +tags: + - spy + - russo-brothers + - global + - amnesia +--- + +# Citadel + +Eight years after the fall of an independent global spy agency, two former agents must work together to stop a new threat. diff --git a/src/test/resources/shows.csv b/src/test/resources/shows.csv new file mode 100644 index 00000000..8ccdb8fa --- /dev/null +++ b/src/test/resources/shows.csv @@ -0,0 +1,62 @@ +id,title,platform,genres,genres,genres,release_year,end_year,status,seasons,episodes,creators,creators,creators,cast,cast,cast,cast,country,language,rating,imdb_rating,description,tags,tags,tags,tags +netflix-001,Stranger Things,Netflix,Sci-Fi,Horror,Drama,2016,2025,Ended,5,42,Matt Duffer,Ross Duffer,,Millie Bobby Brown,Finn Wolfhard,Winona Ryder,David Harbour,USA,English,TV-14,8.7,A group of kids in 1980s Indiana uncover supernatural mysteries and government conspiracies tied to a parallel dimension.,80s,supernatural,coming-of-age,monsters +netflix-002,The Crown,Netflix,Drama,Historical,Biography,2016,2023,Ended,6,60,Peter Morgan,,,Claire Foy,Olivia Colman,Imelda Staunton,Matt Smith,UK,English,TV-MA,8.6,The reign of Queen Elizabeth II from her wedding in 1947 through the early 21st century.,royalty,british,period-drama,politics +netflix-003,Squid Game,Netflix,Thriller,Drama,Survival,2021,2025,Ended,3,22,Hwang Dong-hyuk,,,Lee Jung-jae,Park Hae-soo,Wi Ha-joon,HoYeon Jung,South Korea,Korean,TV-MA,8.0,Hundreds of cash-strapped contestants accept an invitation to compete in deadly children's games for a tempting prize.,korean,survival,dystopian,social-commentary +netflix-004,Wednesday,Netflix,Comedy,Horror,Mystery,2022,,Ongoing,2,16,Alfred Gough,Miles Millar,,Jenna Ortega,Catherine Zeta-Jones,Luis Guzmán,Gwendoline Christie,USA,English,TV-14,8.1,Wednesday Addams navigates a supernatural boarding school while solving a murder mystery.,gothic,teen,supernatural,addams-family +netflix-005,Money Heist,Netflix,Crime,Thriller,Drama,2017,2021,Ended,5,41,Álex Pina,,,Úrsula Corberó,Álvaro Morte,Pedro Alonso,Itziar Ituño,Spain,Spanish,TV-MA,8.2,An unusual group of robbers attempt to carry out the most perfect robbery in Spanish history.,spanish,heist,crime,ensemble +netflix-006,Dark,Netflix,Sci-Fi,Mystery,Thriller,2017,2020,Ended,3,26,Baran bo Odar,Jantje Friese,,Louis Hofmann,Karoline Eichhorn,Lisa Vicari,Maja Schöne,Germany,German,TV-MA,8.7,A family saga with a supernatural twist set in a German town where the disappearance of children exposes the relationships among four families.,time-travel,german,complex-plot,mystery +netflix-007,Ozark,Netflix,Crime,Drama,Thriller,2017,2022,Ended,4,44,Bill Dubuque,Mark Williams,,Jason Bateman,Laura Linney,Julia Garner,Sofia Hublitz,USA,English,TV-MA,8.5,"A financial advisor drags his family from Chicago to the Missouri Ozarks, where he must launder money to appease a drug boss.",money-laundering,cartel,family-drama,crime +netflix-008,Black Mirror,Netflix,Sci-Fi,Drama,Anthology,2011,,Ongoing,7,33,Charlie Brooker,,,Various,,,,UK,English,TV-MA,8.7,"An anthology series exploring a twisted, high-tech multiverse where humanity's greatest innovations collide with its darkest instincts.",anthology,technology,dystopian,british +netflix-009,The Witcher,Netflix,Fantasy,Action,Adventure,2019,,Ongoing,4,32,Lauren Schmidt Hissrich,,,Henry Cavill,Liam Hemsworth,Anya Chalotra,Freya Allan,USA,English,TV-MA,8.0,"Geralt of Rivia, a solitary monster hunter, struggles to find his place in a world where people often prove more wicked than beasts.",fantasy,monsters,magic,adaptation +netflix-010,Bridgerton,Netflix,Romance,Drama,Historical,2020,,Ongoing,3,24,Chris Van Dusen,,,Phoebe Dynevor,Regé-Jean Page,Jonathan Bailey,Nicola Coughlan,USA,English,TV-MA,7.3,"Wealth, lust, and betrayal set against the backdrop of Regency-era England, seen through the eyes of the powerful Bridgerton family.",regency,romance,period-drama,shondaland +netflix-011,Narcos,Netflix,Crime,Biography,Drama,2015,2017,Ended,3,30,Chris Brancato,Carlo Bernard,Doug Miro,Wagner Moura,Pedro Pascal,Boyd Holbrook,,USA,English,TV-MA,8.8,The true story of Colombia's infamously violent and powerful drug cartels.,cartel,colombia,true-crime,pablo-escobar +netflix-012,Mindhunter,Netflix,Crime,Drama,Thriller,2017,2019,Ended,2,19,Joe Penhall,,,Jonathan Groff,Holt McCallany,Anna Torv,,USA,English,TV-MA,8.6,Two FBI agents interview imprisoned serial killers to apply behavioral science to their open cases.,fbi,serial-killers,psychology,fincher +netflix-013,The Queen's Gambit,Netflix,Drama,Period,,2020,2020,Ended,1,7,Scott Frank,Allan Scott,,Anya Taylor-Joy,Bill Camp,Marielle Heller,,USA,English,TV-MA,8.5,An orphaned chess prodigy rises to the top of the chess world while struggling with addiction.,chess,limited-series,cold-war,addiction +netflix-014,BoJack Horseman,Netflix,Animation,Comedy,Drama,2014,2020,Ended,6,77,Raphael Bob-Waksberg,,,Will Arnett,Aaron Paul,Amy Sedaris,Alison Brie,USA,English,TV-MA,8.8,"A washed-up actor who happens to be a horse navigates Hollywood life, depression, and existentialism.",animation,adult-animation,satire,mental-health +netflix-015,Peaky Blinders,Netflix,Crime,Drama,Historical,2013,2022,Ended,6,36,Steven Knight,,,Cillian Murphy,Paul Anderson,Helen McCrory,Tom Hardy,UK,English,TV-MA,8.8,"A gangster family epic set in 1900s England, centering on a gang led by the fierce Tommy Shelby.",british,gangster,period-drama,birmingham +netflix-016,Lupin,Netflix,Crime,Mystery,Drama,2021,,Ongoing,3,17,George Kay,François Uzan,,Omar Sy,Ludivine Sagnier,Clotilde Hesme,,France,French,TV-MA,7.5,"Inspired by Arsène Lupin, gentleman thief Assane Diop sets out to avenge his father for an injustice inflicted by a wealthy family.",french,heist,revenge,paris +netflix-017,The Umbrella Academy,Netflix,Sci-Fi,Action,Drama,2019,2024,Ended,4,34,Steve Blackman,,,Elliot Page,Tom Hopper,David Castañeda,Emmy Raver-Lampman,USA,English,TV-14,7.9,A dysfunctional family of adopted sibling superheroes reunites to solve the mystery of their father's death and the threat of an apocalypse.,superheroes,time-travel,comic-adaptation,family +netflix-018,Sex Education,Netflix,Comedy,Drama,Romance,2019,2023,Ended,4,32,Laurie Nunn,,,Asa Butterfield,Gillian Anderson,Emma Mackey,Ncuti Gatwa,UK,English,TV-MA,8.3,A teenage boy with a sex therapist mother teams up with a high school classmate to set up an underground sex therapy clinic at school.,teen,british,coming-of-age,lgbtq +netflix-019,House of Cards,Netflix,Drama,Political,Thriller,2013,2018,Ended,6,73,Beau Willimon,,,Kevin Spacey,Robin Wright,Michael Kelly,,USA,English,TV-MA,8.7,"A ruthless politician will stop at nothing to conquer Washington, D.C.",politics,washington,dc,machiavellian +netflix-020,Beef,Netflix,Comedy,Drama,Thriller,2023,2023,Ended,1,10,Lee Sung Jin,,,Steven Yeun,Ali Wong,Joseph Lee,Young Mazino,USA,English,TV-MA,8.0,A road rage incident between two strangers triggers a feud that brings out their darkest impulses.,limited-series,dark-comedy,a24,asian-american +prime-001,The Boys,Amazon Prime Video,Action,Sci-Fi,Drama,2019,,Ongoing,4,32,Eric Kripke,,,Karl Urban,Jack Quaid,Antony Starr,Erin Moriarty,USA,English,TV-MA,8.7,A group of vigilantes set out to take down corrupt superheroes who abuse their powers.,superheroes,satire,violent,comic-adaptation +prime-002,The Marvelous Mrs. Maisel,Amazon Prime Video,Comedy,Drama,Period,2017,2023,Ended,5,43,Amy Sherman-Palladino,,,Rachel Brosnahan,Alex Borstein,Michael Zegen,Tony Shalhoub,USA,English,TV-MA,8.7,A 1950s New York housewife discovers she has a talent for stand-up comedy.,50s,stand-up,feminist,new-york +prime-003,Fleabag,Amazon Prime Video,Comedy,Drama,,2016,2019,Ended,2,12,Phoebe Waller-Bridge,,,Phoebe Waller-Bridge,Sian Clifford,Olivia Colman,Andrew Scott,UK,English,TV-MA,8.7,A dry-witted woman navigates life and love in London while trying to cope with tragedy.,british,dark-comedy,fourth-wall,limited-series +prime-004,The Expanse,Amazon Prime Video,Sci-Fi,Drama,Mystery,2015,2022,Ended,6,62,Mark Fergus,Hawk Ostby,,Steven Strait,Dominique Tipper,Wes Chatham,Shohreh Aghdashloo,USA,English,TV-14,8.5,"In a colonized future solar system, a detective, a ship's officer, and a UN executive uncover a conspiracy.",space,hard-sci-fi,politics,adaptation +prime-005,The Lord of the Rings: The Rings of Power,Amazon Prime Video,Fantasy,Adventure,Drama,2022,,Ongoing,2,16,J.D. Payne,Patrick McKay,,Morfydd Clark,Robert Aramayo,Charlie Vickers,Markella Kavenagh,USA,English,TV-14,6.9,"Epic drama set thousands of years before the events of The Hobbit and The Lord of the Rings, follows an ensemble cast in the Second Age of Middle-earth.",tolkien,middle-earth,epic,high-budget +prime-006,Reacher,Amazon Prime Video,Action,Crime,Drama,2022,,Ongoing,3,24,Nick Santora,,,Alan Ritchson,Malcolm Goodwin,Willa Fitzgerald,,USA,English,TV-MA,8.1,Veteran military police investigator Jack Reacher solves crimes as a drifter.,action,thriller,lee-child,adaptation +prime-007,Jack Ryan,Amazon Prime Video,Action,Thriller,Drama,2018,2023,Ended,4,32,Carlton Cuse,Graham Roland,,John Krasinski,Wendell Pierce,Abbie Cornish,,USA,English,TV-MA,8.0,An up-and-coming CIA analyst is thrust into a dangerous field assignment.,cia,spy,tom-clancy,adaptation +prime-008,Fallout,Amazon Prime Video,Sci-Fi,Action,Adventure,2024,,Ongoing,1,8,Graham Wagner,Geneva Robertson-Dworet,,Ella Purnell,Walton Goggins,Aaron Moten,Kyle MacLachlan,USA,English,TV-MA,8.4,"In a future, post-apocalyptic Los Angeles brought about by nuclear decimation, citizens must live in underground bunkers to protect themselves.",post-apocalyptic,video-game-adaptation,wasteland,vaults +prime-009,Mr. & Mrs. Smith,Amazon Prime Video,Action,Comedy,Romance,2024,,Ongoing,1,8,Donald Glover,Francesca Sloane,,Donald Glover,Maya Erskine,,,USA,English,TV-MA,7.2,"Two lonely strangers take a job working for a mysterious spy agency that offers them a glamorous life, a dream brownstone in Manhattan, and a new identity as a married couple.",spy,romance,remake,donald-glover +prime-010,The Wheel of Time,Amazon Prime Video,Fantasy,Adventure,Action,2021,,Ongoing,3,24,Rafe Judkins,,,Rosamund Pike,Daniel Henney,Josha Stradowski,Madeleine Madden,USA,English,TV-14,7.0,"Set in a high fantasy world where magic exists, but only some can access it, a woman named Moiraine leads five young people on a journey.",fantasy,magic,robert-jordan,epic +prime-011,Good Omens,Amazon Prime Video,Comedy,Fantasy,Drama,2019,,Ongoing,2,12,Neil Gaiman,,,David Tennant,Michael Sheen,Jon Hamm,Frances McDormand,UK,English,TV-MA,8.0,"A demon and an angel attempt to prevent the apocalypse on Earth, which they have grown rather fond of over the millennia.",british,supernatural,gaiman,pratchett +prime-012,The Terminal List,Amazon Prime Video,Action,Drama,Thriller,2022,,Ongoing,1,8,David DiGilio,,,Chris Pratt,Constance Wu,Taylor Kitsch,,USA,English,TV-MA,8.0,A former Navy SEAL officer investigates why his entire platoon was ambushed during a high-stakes covert mission.,navy-seal,revenge,military,thriller +prime-013,Upload,Amazon Prime Video,Sci-Fi,Comedy,Mystery,2020,,Ongoing,3,24,Greg Daniels,,,Robbie Amell,Andy Allo,Allegra Edwards,,USA,English,TV-MA,7.9,A man is able to choose his own afterlife after his untimely death by having his consciousness uploaded into a virtual world.,afterlife,technology,sci-fi-comedy,near-future +prime-014,Bosch,Amazon Prime Video,Crime,Drama,Mystery,2014,2021,Ended,7,68,Eric Overmyer,,,Titus Welliver,Jamie Hector,Amy Aquino,,USA,English,TV-MA,8.5,An LAPD homicide detective works to solve the murder of a 13-year-old boy.,detective,los-angeles,procedural,michael-connelly +prime-015,Invincible,Amazon Prime Video,Animation,Action,Drama,2021,,Ongoing,3,24,Robert Kirkman,,,Steven Yeun,J.K. Simmons,Sandra Oh,Zazie Beetz,USA,English,TV-MA,8.7,An adult animated series about a teenager whose father is the most powerful superhero on the planet.,adult-animation,superheroes,violent,comic-adaptation +prime-016,Vikings,Amazon Prime Video,Drama,Action,Historical,2013,2020,Ended,6,89,Michael Hirst,,,Travis Fimmel,Katheryn Winnick,Clive Standen,Gustaf Skarsgård,Ireland,English,TV-MA,8.5,"The world of the Vikings is brought to life through the journey of Ragnar Lothbrok, the first Viking to emerge from Norse legend.",vikings,historical,norse,ragnar +prime-017,The Underground Railroad,Amazon Prime Video,Drama,Historical,,2021,2021,Ended,1,10,Barry Jenkins,,,Thuso Mbedu,Chase W. Dillon,Joel Edgerton,,USA,English,TV-MA,7.4,A young woman makes a harrowing escape from antebellum slavery via an underground railroad that travels in a literal underground train.,limited-series,slavery,barry-jenkins,literary-adaptation +prime-018,Hunters,Amazon Prime Video,Drama,Thriller,Action,2020,2023,Ended,2,18,David Weil,,,Al Pacino,Logan Lerman,Jerrika Hinton,Lena Olin,USA,English,TV-MA,7.2,A diverse band of Nazi hunters living in 1977 New York City discover that hundreds of high-ranking Nazi officials are conspiring to create a Fourth Reich in the U.S.,nazi-hunters,70s,alternate-history,new-york +prime-019,Carnival Row,Amazon Prime Video,Fantasy,Drama,Mystery,2019,2023,Ended,2,18,René Echevarria,Travis Beacham,,Orlando Bloom,Cara Delevingne,Simon McBurney,,USA,English,TV-MA,7.8,"Mythical creatures have fled their war-torn homeland and gathered in a city where humans live, leading to escalating tensions.",fantasy,victorian,mythical-creatures,noir +prime-020,Citadel,Amazon Prime Video,Action,Drama,Thriller,2023,,Ongoing,1,6,Josh Appelbaum,Bryan Oh,David Weil,Richard Madden,Priyanka Chopra Jonas,Stanley Tucci,,USA,English,TV-MA,5.9,"Eight years after the fall of an independent global spy agency, two former agents must work together to stop a new threat.",spy,russo-brothers,global,amnesia +hbo-001,Game of Thrones,HBO Max,Fantasy,Drama,Adventure,2011,2019,Ended,8,73,David Benioff,D.B. Weiss,,Emilia Clarke,Peter Dinklage,Kit Harington,Lena Headey,USA,English,TV-MA,9.2,"Nine noble families fight for control over the lands of Westeros, while an ancient enemy returns after being dormant for millennia.",fantasy,dragons,epic,george-rr-martin +hbo-002,Succession,HBO Max,Drama,Comedy,,2018,2023,Ended,4,39,Jesse Armstrong,,,Brian Cox,Jeremy Strong,Kieran Culkin,Sarah Snook,USA,English,TV-MA,8.9,"The Roy family controls the biggest media and entertainment company in the world, but their patriarch's health is failing.",media,family-drama,satire,wealth +hbo-003,The Last of Us,HBO Max,Drama,Horror,Sci-Fi,2023,,Ongoing,2,16,Craig Mazin,Neil Druckmann,,Pedro Pascal,Bella Ramsey,Anna Torv,,USA,English,TV-MA,8.7,"After a global pandemic destroys civilization, a hardened survivor takes charge of a 14-year-old girl who may be humanity's last hope.",post-apocalyptic,zombies,video-game-adaptation,fungal +hbo-004,House of the Dragon,HBO Max,Fantasy,Drama,Action,2022,,Ongoing,2,18,Ryan Condal,George R.R. Martin,,Paddy Considine,Matt Smith,Emma D'Arcy,Olivia Cooke,USA,English,TV-MA,8.4,"An internal succession war within House Targaryen at the height of its power, 172 years before the birth of Daenerys Targaryen.",targaryen,dragons,got-prequel,civil-war +hbo-005,True Detective,HBO Max,Crime,Drama,Mystery,2014,,Ongoing,4,32,Nic Pizzolatto,,,Matthew McConaughey,Woody Harrelson,Mahershala Ali,Jodie Foster,USA,English,TV-MA,8.9,"An anthology series of police investigations, with each season featuring a new cast and setting.",anthology,noir,detective,atmospheric +hbo-006,Westworld,HBO Max,Sci-Fi,Drama,Mystery,2016,2022,Ended,4,36,Jonathan Nolan,Lisa Joy,,Evan Rachel Wood,Thandiwe Newton,Jeffrey Wright,Ed Harris,USA,English,TV-MA,8.5,Set in a Western-themed park where guests live out their fantasies through robotic hosts that develop consciousness.,ai,consciousness,theme-park,androids +hbo-007,The White Lotus,HBO Max,Comedy,Drama,Mystery,2021,,Ongoing,3,18,Mike White,,,Murray Bartlett,Jennifer Coolidge,Aubrey Plaza,Theo James,USA,English,TV-MA,7.9,The exploits of various employees and guests at an exclusive tropical resort.,anthology,satire,wealth,vacation +disney-001,The Mandalorian,Disney+,Sci-Fi,Action,Adventure,2019,,Ongoing,3,24,Jon Favreau,,,Pedro Pascal,Carl Weathers,Giancarlo Esposito,,USA,English,TV-14,8.6,"The travels of a lone bounty hunter in the outer reaches of the galaxy, far from the authority of the New Republic.",star-wars,space-western,grogu,baby-yoda +disney-002,WandaVision,Disney+,Sci-Fi,Drama,Mystery,2021,2021,Ended,1,9,Jac Schaeffer,,,Elizabeth Olsen,Paul Bettany,Kathryn Hahn,,USA,English,TV-14,7.9,"Wanda Maximoff and Vision live idealized suburban lives, but begin to suspect that everything is not as it seems.",marvel,mcu,sitcom,superhero +disney-003,Andor,Disney+,Sci-Fi,Drama,Action,2022,2025,Ended,2,24,Tony Gilroy,,,Diego Luna,Genevieve O'Reilly,Stellan Skarsgård,,USA,English,TV-14,8.4,"Prequel to Rogue One, exploring a new perspective from the Star Wars galaxy and Cassian Andor's journey to becoming a rebel hero.",star-wars,rebellion,political,prequel +disney-004,Loki,Disney+,Sci-Fi,Action,Adventure,2021,2023,Ended,2,12,Michael Waldron,,,Tom Hiddleston,Owen Wilson,Sophia Di Martino,,USA,English,TV-14,8.2,The mercurial villain Loki resumes his role as the God of Mischief in a new series that takes place after the events of Avengers: Endgame.,marvel,mcu,multiverse,time-travel +appletv-001,Ted Lasso,Apple TV+,Comedy,Drama,Sport,2020,2023,Ended,3,34,Bill Lawrence,Jason Sudeikis,,Jason Sudeikis,Hannah Waddingham,Brett Goldstein,Juno Temple,USA,English,TV-MA,8.8,"American college football coach Ted Lasso heads to London to manage AFC Richmond, a struggling English Premier League soccer team.",soccer,football,feel-good,british +appletv-002,Severance,Apple TV+,Sci-Fi,Thriller,Drama,2022,,Ongoing,2,19,Dan Erickson,,,Adam Scott,Britt Lower,Zach Cherry,John Turturro,USA,English,TV-MA,8.7,Employees at Lumon Industries undergo a procedure that surgically divides their memories between their work and personal lives.,workplace,dystopian,mystery,ben-stiller +appletv-003,Foundation,Apple TV+,Sci-Fi,Drama,Adventure,2021,,Ongoing,3,28,David S. Goyer,Josh Friedman,,Jared Harris,Lee Pace,Lou Llobell,,USA,English,TV-14,7.5,A complex saga of humans scattered on planets throughout the galaxy living under the rule of the Galactic Empire.,space-opera,asimov,epic,empire +appletv-004,Slow Horses,Apple TV+,Crime,Drama,Thriller,2022,,Ongoing,4,24,Will Smith,,,Gary Oldman,Jack Lowden,Kristin Scott Thomas,,UK,English,TV-MA,8.3,Follows a team of British intelligence agents who serve in a dumping ground department of MI5.,spy,british,mi5,mick-herron +hulu-001,The Handmaid's Tale,Hulu,Drama,Sci-Fi,Dystopian,2017,2025,Ended,6,66,Bruce Miller,,,Elisabeth Moss,Joseph Fiennes,Yvonne Strahovski,Samira Wiley,USA,English,TV-MA,8.4,"Set in a dystopian future, a woman is forced to live as a concubine under a fundamentalist theocratic dictatorship.",dystopian,feminist,atwood,theocracy +hulu-002,The Bear,Hulu,Comedy,Drama,,2022,,Ongoing,3,28,Christopher Storer,,,Jeremy Allen White,Ebon Moss-Bachrach,Ayo Edebiri,,USA,English,TV-MA,8.6,A young chef from the fine dining world returns to Chicago to run his family's sandwich shop after a heartbreaking death.,cooking,chicago,family,anxiety +hulu-003,Only Murders in the Building,Hulu,Comedy,Crime,Mystery,2021,,Ongoing,4,40,Steve Martin,John Hoffman,,Steve Martin,Martin Short,Selena Gomez,,USA,English,TV-MA,8.1,Three strangers who share an obsession with true crime suddenly find themselves wrapped up in one.,whodunit,podcast,new-york,comedy-mystery +peacock-001,Poker Face,Peacock,Crime,Comedy,Mystery,2023,,Ongoing,2,20,Rian Johnson,,,Natasha Lyonne,,,,USA,English,TV-MA,8.1,"A casino worker with the ability to determine when someone is lying hits the road, solving crimes along the way.",mystery-of-the-week,rian-johnson,columbo,road-trip +paramount-001,Yellowstone,Paramount+,Drama,Western,,2018,2024,Ended,5,53,Taylor Sheridan,John Linson,,Kevin Costner,Luke Grimes,Kelly Reilly,Wes Bentley,USA,English,TV-MA,8.7,A ranching family in Montana faces off against others encroaching on their land.,western,ranch,family-drama,montana +paramount-002,Star Trek: Strange New Worlds,Paramount+,Sci-Fi,Adventure,Drama,2022,,Ongoing,3,30,Akiva Goldsman,Alex Kurtzman,Jenny Lumet,Anson Mount,Rebecca Romijn,Ethan Peck,,USA,English,TV-14,8.1,Captain Christopher Pike helms the USS Enterprise as it explores new worlds in the years before Captain Kirk's iconic missions.,star-trek,space,enterprise,pike diff --git a/src/test/resources/shows.xml b/src/test/resources/shows.xml new file mode 100644 index 00000000..e1e508e5 --- /dev/null +++ b/src/test/resources/shows.xml @@ -0,0 +1,1611 @@ + + + + netflix-001 + Stranger Things + Netflix + Sci-Fi + Horror + Drama + 2016 + 2025 + Ended + 5 + 42 + Matt Duffer + Ross Duffer + Millie Bobby Brown + Finn Wolfhard + Winona Ryder + David Harbour + USA + English + TV-14 + 8.7 + A group of kids in 1980s Indiana uncover supernatural mysteries and government conspiracies tied to a parallel dimension. + 80s + supernatural + coming-of-age + monsters + + + netflix-002 + The Crown + Netflix + Drama + Historical + Biography + 2016 + 2023 + Ended + 6 + 60 + Peter Morgan + Claire Foy + Olivia Colman + Imelda Staunton + Matt Smith + UK + English + TV-MA + 8.6 + The reign of Queen Elizabeth II from her wedding in 1947 through the early 21st century. + royalty + british + period-drama + politics + + + netflix-003 + Squid Game + Netflix + Thriller + Drama + Survival + 2021 + 2025 + Ended + 3 + 22 + Hwang Dong-hyuk + Lee Jung-jae + Park Hae-soo + Wi Ha-joon + HoYeon Jung + South Korea + Korean + TV-MA + 8.0 + Hundreds of cash-strapped contestants accept an invitation to compete in deadly children's games for a tempting prize. + korean + survival + dystopian + social-commentary + + + netflix-004 + Wednesday + Netflix + Comedy + Horror + Mystery + 2022 + Ongoing + 2 + 16 + Alfred Gough + Miles Millar + Jenna Ortega + Catherine Zeta-Jones + Luis Guzmán + Gwendoline Christie + USA + English + TV-14 + 8.1 + Wednesday Addams navigates a supernatural boarding school while solving a murder mystery. + gothic + teen + supernatural + addams-family + + + netflix-005 + Money Heist + Netflix + Crime + Thriller + Drama + 2017 + 2021 + Ended + 5 + 41 + Álex Pina + Úrsula Corberó + Álvaro Morte + Pedro Alonso + Itziar Ituño + Spain + Spanish + TV-MA + 8.2 + An unusual group of robbers attempt to carry out the most perfect robbery in Spanish history. + spanish + heist + crime + ensemble + + + netflix-006 + Dark + Netflix + Sci-Fi + Mystery + Thriller + 2017 + 2020 + Ended + 3 + 26 + Baran bo Odar + Jantje Friese + Louis Hofmann + Karoline Eichhorn + Lisa Vicari + Maja Schöne + Germany + German + TV-MA + 8.7 + A family saga with a supernatural twist set in a German town where the disappearance of children exposes the relationships among four families. + time-travel + german + complex-plot + mystery + + + netflix-007 + Ozark + Netflix + Crime + Drama + Thriller + 2017 + 2022 + Ended + 4 + 44 + Bill Dubuque + Mark Williams + Jason Bateman + Laura Linney + Julia Garner + Sofia Hublitz + USA + English + TV-MA + 8.5 + A financial advisor drags his family from Chicago to the Missouri Ozarks, where he must launder money to appease a drug boss. + money-laundering + cartel + family-drama + crime + + + netflix-008 + Black Mirror + Netflix + Sci-Fi + Drama + Anthology + 2011 + Ongoing + 7 + 33 + Charlie Brooker + Various + UK + English + TV-MA + 8.7 + An anthology series exploring a twisted, high-tech multiverse where humanity's greatest innovations collide with its darkest instincts. + anthology + technology + dystopian + british + + + netflix-009 + The Witcher + Netflix + Fantasy + Action + Adventure + 2019 + Ongoing + 4 + 32 + Lauren Schmidt Hissrich + Henry Cavill + Liam Hemsworth + Anya Chalotra + Freya Allan + USA + English + TV-MA + 8.0 + Geralt of Rivia, a solitary monster hunter, struggles to find his place in a world where people often prove more wicked than beasts. + fantasy + monsters + magic + adaptation + + + netflix-010 + Bridgerton + Netflix + Romance + Drama + Historical + 2020 + Ongoing + 3 + 24 + Chris Van Dusen + Phoebe Dynevor + Regé-Jean Page + Jonathan Bailey + Nicola Coughlan + USA + English + TV-MA + 7.3 + Wealth, lust, and betrayal set against the backdrop of Regency-era England, seen through the eyes of the powerful Bridgerton family. + regency + romance + period-drama + shondaland + + + netflix-011 + Narcos + Netflix + Crime + Biography + Drama + 2015 + 2017 + Ended + 3 + 30 + Chris Brancato + Carlo Bernard + Doug Miro + Wagner Moura + Pedro Pascal + Boyd Holbrook + USA + English + TV-MA + 8.8 + The true story of Colombia's infamously violent and powerful drug cartels. + cartel + colombia + true-crime + pablo-escobar + + + netflix-012 + Mindhunter + Netflix + Crime + Drama + Thriller + 2017 + 2019 + Ended + 2 + 19 + Joe Penhall + Jonathan Groff + Holt McCallany + Anna Torv + USA + English + TV-MA + 8.6 + Two FBI agents interview imprisoned serial killers to apply behavioral science to their open cases. + fbi + serial-killers + psychology + fincher + + + netflix-013 + The Queen's Gambit + Netflix + Drama + Period + 2020 + 2020 + Ended + 1 + 7 + Scott Frank + Allan Scott + Anya Taylor-Joy + Bill Camp + Marielle Heller + USA + English + TV-MA + 8.5 + An orphaned chess prodigy rises to the top of the chess world while struggling with addiction. + chess + limited-series + cold-war + addiction + + + netflix-014 + BoJack Horseman + Netflix + Animation + Comedy + Drama + 2014 + 2020 + Ended + 6 + 77 + Raphael Bob-Waksberg + Will Arnett + Aaron Paul + Amy Sedaris + Alison Brie + USA + English + TV-MA + 8.8 + A washed-up actor who happens to be a horse navigates Hollywood life, depression, and existentialism. + animation + adult-animation + satire + mental-health + + + netflix-015 + Peaky Blinders + Netflix + Crime + Drama + Historical + 2013 + 2022 + Ended + 6 + 36 + Steven Knight + Cillian Murphy + Paul Anderson + Helen McCrory + Tom Hardy + UK + English + TV-MA + 8.8 + A gangster family epic set in 1900s England, centering on a gang led by the fierce Tommy Shelby. + british + gangster + period-drama + birmingham + + + netflix-016 + Lupin + Netflix + Crime + Mystery + Drama + 2021 + Ongoing + 3 + 17 + George Kay + François Uzan + Omar Sy + Ludivine Sagnier + Clotilde Hesme + France + French + TV-MA + 7.5 + Inspired by Arsène Lupin, gentleman thief Assane Diop sets out to avenge his father for an injustice inflicted by a wealthy family. + french + heist + revenge + paris + + + netflix-017 + The Umbrella Academy + Netflix + Sci-Fi + Action + Drama + 2019 + 2024 + Ended + 4 + 34 + Steve Blackman + Elliot Page + Tom Hopper + David Castañeda + Emmy Raver-Lampman + USA + English + TV-14 + 7.9 + A dysfunctional family of adopted sibling superheroes reunites to solve the mystery of their father's death and the threat of an apocalypse. + superheroes + time-travel + comic-adaptation + family + + + netflix-018 + Sex Education + Netflix + Comedy + Drama + Romance + 2019 + 2023 + Ended + 4 + 32 + Laurie Nunn + Asa Butterfield + Gillian Anderson + Emma Mackey + Ncuti Gatwa + UK + English + TV-MA + 8.3 + A teenage boy with a sex therapist mother teams up with a high school classmate to set up an underground sex therapy clinic at school. + teen + british + coming-of-age + lgbtq + + + netflix-019 + House of Cards + Netflix + Drama + Political + Thriller + 2013 + 2018 + Ended + 6 + 73 + Beau Willimon + Kevin Spacey + Robin Wright + Michael Kelly + USA + English + TV-MA + 8.7 + A ruthless politician will stop at nothing to conquer Washington, D.C. + politics + washington + dc + machiavellian + + + netflix-020 + Beef + Netflix + Comedy + Drama + Thriller + 2023 + 2023 + Ended + 1 + 10 + Lee Sung Jin + Steven Yeun + Ali Wong + Joseph Lee + Young Mazino + USA + English + TV-MA + 8.0 + A road rage incident between two strangers triggers a feud that brings out their darkest impulses. + limited-series + dark-comedy + a24 + asian-american + + + prime-001 + The Boys + Amazon Prime Video + Action + Sci-Fi + Drama + 2019 + Ongoing + 4 + 32 + Eric Kripke + Karl Urban + Jack Quaid + Antony Starr + Erin Moriarty + USA + English + TV-MA + 8.7 + A group of vigilantes set out to take down corrupt superheroes who abuse their powers. + superheroes + satire + violent + comic-adaptation + + + prime-002 + The Marvelous Mrs. Maisel + Amazon Prime Video + Comedy + Drama + Period + 2017 + 2023 + Ended + 5 + 43 + Amy Sherman-Palladino + Rachel Brosnahan + Alex Borstein + Michael Zegen + Tony Shalhoub + USA + English + TV-MA + 8.7 + A 1950s New York housewife discovers she has a talent for stand-up comedy. + 50s + stand-up + feminist + new-york + + + prime-003 + Fleabag + Amazon Prime Video + Comedy + Drama + 2016 + 2019 + Ended + 2 + 12 + Phoebe Waller-Bridge + Phoebe Waller-Bridge + Sian Clifford + Olivia Colman + Andrew Scott + UK + English + TV-MA + 8.7 + A dry-witted woman navigates life and love in London while trying to cope with tragedy. + british + dark-comedy + fourth-wall + limited-series + + + prime-004 + The Expanse + Amazon Prime Video + Sci-Fi + Drama + Mystery + 2015 + 2022 + Ended + 6 + 62 + Mark Fergus + Hawk Ostby + Steven Strait + Dominique Tipper + Wes Chatham + Shohreh Aghdashloo + USA + English + TV-14 + 8.5 + In a colonized future solar system, a detective, a ship's officer, and a UN executive uncover a conspiracy. + space + hard-sci-fi + politics + adaptation + + + prime-005 + The Lord of the Rings: The Rings of Power + Amazon Prime Video + Fantasy + Adventure + Drama + 2022 + Ongoing + 2 + 16 + J.D. Payne + Patrick McKay + Morfydd Clark + Robert Aramayo + Charlie Vickers + Markella Kavenagh + USA + English + TV-14 + 6.9 + Epic drama set thousands of years before the events of The Hobbit and The Lord of the Rings, follows an ensemble cast in the Second Age of Middle-earth. + tolkien + middle-earth + epic + high-budget + + + prime-006 + Reacher + Amazon Prime Video + Action + Crime + Drama + 2022 + Ongoing + 3 + 24 + Nick Santora + Alan Ritchson + Malcolm Goodwin + Willa Fitzgerald + USA + English + TV-MA + 8.1 + Veteran military police investigator Jack Reacher solves crimes as a drifter. + action + thriller + lee-child + adaptation + + + prime-007 + Jack Ryan + Amazon Prime Video + Action + Thriller + Drama + 2018 + 2023 + Ended + 4 + 32 + Carlton Cuse + Graham Roland + John Krasinski + Wendell Pierce + Abbie Cornish + USA + English + TV-MA + 8.0 + An up-and-coming CIA analyst is thrust into a dangerous field assignment. + cia + spy + tom-clancy + adaptation + + + prime-008 + Fallout + Amazon Prime Video + Sci-Fi + Action + Adventure + 2024 + Ongoing + 1 + 8 + Graham Wagner + Geneva Robertson-Dworet + Ella Purnell + Walton Goggins + Aaron Moten + Kyle MacLachlan + USA + English + TV-MA + 8.4 + In a future, post-apocalyptic Los Angeles brought about by nuclear decimation, citizens must live in underground bunkers to protect themselves. + post-apocalyptic + video-game-adaptation + wasteland + vaults + + + prime-009 + Mr. & Mrs. Smith + Amazon Prime Video + Action + Comedy + Romance + 2024 + Ongoing + 1 + 8 + Donald Glover + Francesca Sloane + Donald Glover + Maya Erskine + USA + English + TV-MA + 7.2 + Two lonely strangers take a job working for a mysterious spy agency that offers them a glamorous life, a dream brownstone in Manhattan, and a new identity as a married couple. + spy + romance + remake + donald-glover + + + prime-010 + The Wheel of Time + Amazon Prime Video + Fantasy + Adventure + Action + 2021 + Ongoing + 3 + 24 + Rafe Judkins + Rosamund Pike + Daniel Henney + Josha Stradowski + Madeleine Madden + USA + English + TV-14 + 7.0 + Set in a high fantasy world where magic exists, but only some can access it, a woman named Moiraine leads five young people on a journey. + fantasy + magic + robert-jordan + epic + + + prime-011 + Good Omens + Amazon Prime Video + Comedy + Fantasy + Drama + 2019 + Ongoing + 2 + 12 + Neil Gaiman + David Tennant + Michael Sheen + Jon Hamm + Frances McDormand + UK + English + TV-MA + 8.0 + A demon and an angel attempt to prevent the apocalypse on Earth, which they have grown rather fond of over the millennia. + british + supernatural + gaiman + pratchett + + + prime-012 + The Terminal List + Amazon Prime Video + Action + Drama + Thriller + 2022 + Ongoing + 1 + 8 + David DiGilio + Chris Pratt + Constance Wu + Taylor Kitsch + USA + English + TV-MA + 8.0 + A former Navy SEAL officer investigates why his entire platoon was ambushed during a high-stakes covert mission. + navy-seal + revenge + military + thriller + + + prime-013 + Upload + Amazon Prime Video + Sci-Fi + Comedy + Mystery + 2020 + Ongoing + 3 + 24 + Greg Daniels + Robbie Amell + Andy Allo + Allegra Edwards + USA + English + TV-MA + 7.9 + A man is able to choose his own afterlife after his untimely death by having his consciousness uploaded into a virtual world. + afterlife + technology + sci-fi-comedy + near-future + + + prime-014 + Bosch + Amazon Prime Video + Crime + Drama + Mystery + 2014 + 2021 + Ended + 7 + 68 + Eric Overmyer + Titus Welliver + Jamie Hector + Amy Aquino + USA + English + TV-MA + 8.5 + An LAPD homicide detective works to solve the murder of a 13-year-old boy. + detective + los-angeles + procedural + michael-connelly + + + prime-015 + Invincible + Amazon Prime Video + Animation + Action + Drama + 2021 + Ongoing + 3 + 24 + Robert Kirkman + Steven Yeun + J.K. Simmons + Sandra Oh + Zazie Beetz + USA + English + TV-MA + 8.7 + An adult animated series about a teenager whose father is the most powerful superhero on the planet. + adult-animation + superheroes + violent + comic-adaptation + + + prime-016 + Vikings + Amazon Prime Video + Drama + Action + Historical + 2013 + 2020 + Ended + 6 + 89 + Michael Hirst + Travis Fimmel + Katheryn Winnick + Clive Standen + Gustaf Skarsgård + Ireland + English + TV-MA + 8.5 + The world of the Vikings is brought to life through the journey of Ragnar Lothbrok, the first Viking to emerge from Norse legend. + vikings + historical + norse + ragnar + + + prime-017 + The Underground Railroad + Amazon Prime Video + Drama + Historical + 2021 + 2021 + Ended + 1 + 10 + Barry Jenkins + Thuso Mbedu + Chase W. Dillon + Joel Edgerton + USA + English + TV-MA + 7.4 + A young woman makes a harrowing escape from antebellum slavery via an underground railroad that travels in a literal underground train. + limited-series + slavery + barry-jenkins + literary-adaptation + + + prime-018 + Hunters + Amazon Prime Video + Drama + Thriller + Action + 2020 + 2023 + Ended + 2 + 18 + David Weil + Al Pacino + Logan Lerman + Jerrika Hinton + Lena Olin + USA + English + TV-MA + 7.2 + A diverse band of Nazi hunters living in 1977 New York City discover that hundreds of high-ranking Nazi officials are conspiring to create a Fourth Reich in the U.S. + nazi-hunters + 70s + alternate-history + new-york + + + prime-019 + Carnival Row + Amazon Prime Video + Fantasy + Drama + Mystery + 2019 + 2023 + Ended + 2 + 18 + René Echevarria + Travis Beacham + Orlando Bloom + Cara Delevingne + Simon McBurney + USA + English + TV-MA + 7.8 + Mythical creatures have fled their war-torn homeland and gathered in a city where humans live, leading to escalating tensions. + fantasy + victorian + mythical-creatures + noir + + + prime-020 + Citadel + Amazon Prime Video + Action + Drama + Thriller + 2023 + Ongoing + 1 + 6 + Josh Appelbaum + Bryan Oh + David Weil + Richard Madden + Priyanka Chopra Jonas + Stanley Tucci + USA + English + TV-MA + 5.9 + Eight years after the fall of an independent global spy agency, two former agents must work together to stop a new threat. + spy + russo-brothers + global + amnesia + + + hbo-001 + Game of Thrones + HBO Max + Fantasy + Drama + Adventure + 2011 + 2019 + Ended + 8 + 73 + David Benioff + D.B. Weiss + Emilia Clarke + Peter Dinklage + Kit Harington + Lena Headey + USA + English + TV-MA + 9.2 + Nine noble families fight for control over the lands of Westeros, while an ancient enemy returns after being dormant for millennia. + fantasy + dragons + epic + george-rr-martin + + + hbo-002 + Succession + HBO Max + Drama + Comedy + 2018 + 2023 + Ended + 4 + 39 + Jesse Armstrong + Brian Cox + Jeremy Strong + Kieran Culkin + Sarah Snook + USA + English + TV-MA + 8.9 + The Roy family controls the biggest media and entertainment company in the world, but their patriarch's health is failing. + media + family-drama + satire + wealth + + + hbo-003 + The Last of Us + HBO Max + Drama + Horror + Sci-Fi + 2023 + Ongoing + 2 + 16 + Craig Mazin + Neil Druckmann + Pedro Pascal + Bella Ramsey + Anna Torv + USA + English + TV-MA + 8.7 + After a global pandemic destroys civilization, a hardened survivor takes charge of a 14-year-old girl who may be humanity's last hope. + post-apocalyptic + zombies + video-game-adaptation + fungal + + + hbo-004 + House of the Dragon + HBO Max + Fantasy + Drama + Action + 2022 + Ongoing + 2 + 18 + Ryan Condal + George R.R. Martin + Paddy Considine + Matt Smith + Emma D'Arcy + Olivia Cooke + USA + English + TV-MA + 8.4 + An internal succession war within House Targaryen at the height of its power, 172 years before the birth of Daenerys Targaryen. + targaryen + dragons + got-prequel + civil-war + + + hbo-005 + True Detective + HBO Max + Crime + Drama + Mystery + 2014 + Ongoing + 4 + 32 + Nic Pizzolatto + Matthew McConaughey + Woody Harrelson + Mahershala Ali + Jodie Foster + USA + English + TV-MA + 8.9 + An anthology series of police investigations, with each season featuring a new cast and setting. + anthology + noir + detective + atmospheric + + + hbo-006 + Westworld + HBO Max + Sci-Fi + Drama + Mystery + 2016 + 2022 + Ended + 4 + 36 + Jonathan Nolan + Lisa Joy + Evan Rachel Wood + Thandiwe Newton + Jeffrey Wright + Ed Harris + USA + English + TV-MA + 8.5 + Set in a Western-themed park where guests live out their fantasies through robotic hosts that develop consciousness. + ai + consciousness + theme-park + androids + + + hbo-007 + The White Lotus + HBO Max + Comedy + Drama + Mystery + 2021 + Ongoing + 3 + 18 + Mike White + Murray Bartlett + Jennifer Coolidge + Aubrey Plaza + Theo James + USA + English + TV-MA + 7.9 + The exploits of various employees and guests at an exclusive tropical resort. + anthology + satire + wealth + vacation + + + disney-001 + The Mandalorian + Disney+ + Sci-Fi + Action + Adventure + 2019 + Ongoing + 3 + 24 + Jon Favreau + Pedro Pascal + Carl Weathers + Giancarlo Esposito + USA + English + TV-14 + 8.6 + The travels of a lone bounty hunter in the outer reaches of the galaxy, far from the authority of the New Republic. + star-wars + space-western + grogu + baby-yoda + + + disney-002 + WandaVision + Disney+ + Sci-Fi + Drama + Mystery + 2021 + 2021 + Ended + 1 + 9 + Jac Schaeffer + Elizabeth Olsen + Paul Bettany + Kathryn Hahn + USA + English + TV-14 + 7.9 + Wanda Maximoff and Vision live idealized suburban lives, but begin to suspect that everything is not as it seems. + marvel + mcu + sitcom + superhero + + + disney-003 + Andor + Disney+ + Sci-Fi + Drama + Action + 2022 + 2025 + Ended + 2 + 24 + Tony Gilroy + Diego Luna + Genevieve O'Reilly + Stellan Skarsgård + USA + English + TV-14 + 8.4 + Prequel to Rogue One, exploring a new perspective from the Star Wars galaxy and Cassian Andor's journey to becoming a rebel hero. + star-wars + rebellion + political + prequel + + + disney-004 + Loki + Disney+ + Sci-Fi + Action + Adventure + 2021 + 2023 + Ended + 2 + 12 + Michael Waldron + Tom Hiddleston + Owen Wilson + Sophia Di Martino + USA + English + TV-14 + 8.2 + The mercurial villain Loki resumes his role as the God of Mischief in a new series that takes place after the events of Avengers: Endgame. + marvel + mcu + multiverse + time-travel + + + appletv-001 + Ted Lasso + Apple TV+ + Comedy + Drama + Sport + 2020 + 2023 + Ended + 3 + 34 + Bill Lawrence + Jason Sudeikis + Jason Sudeikis + Hannah Waddingham + Brett Goldstein + Juno Temple + USA + English + TV-MA + 8.8 + American college football coach Ted Lasso heads to London to manage AFC Richmond, a struggling English Premier League soccer team. + soccer + football + feel-good + british + + + appletv-002 + Severance + Apple TV+ + Sci-Fi + Thriller + Drama + 2022 + Ongoing + 2 + 19 + Dan Erickson + Adam Scott + Britt Lower + Zach Cherry + John Turturro + USA + English + TV-MA + 8.7 + Employees at Lumon Industries undergo a procedure that surgically divides their memories between their work and personal lives. + workplace + dystopian + mystery + ben-stiller + + + appletv-003 + Foundation + Apple TV+ + Sci-Fi + Drama + Adventure + 2021 + Ongoing + 3 + 28 + David S. Goyer + Josh Friedman + Jared Harris + Lee Pace + Lou Llobell + USA + English + TV-14 + 7.5 + A complex saga of humans scattered on planets throughout the galaxy living under the rule of the Galactic Empire. + space-opera + asimov + epic + empire + + + appletv-004 + Slow Horses + Apple TV+ + Crime + Drama + Thriller + 2022 + Ongoing + 4 + 24 + Will Smith + Gary Oldman + Jack Lowden + Kristin Scott Thomas + UK + English + TV-MA + 8.3 + Follows a team of British intelligence agents who serve in a dumping ground department of MI5. + spy + british + mi5 + mick-herron + + + hulu-001 + The Handmaid's Tale + Hulu + Drama + Sci-Fi + Dystopian + 2017 + 2025 + Ended + 6 + 66 + Bruce Miller + Elisabeth Moss + Joseph Fiennes + Yvonne Strahovski + Samira Wiley + USA + English + TV-MA + 8.4 + Set in a dystopian future, a woman is forced to live as a concubine under a fundamentalist theocratic dictatorship. + dystopian + feminist + atwood + theocracy + + + hulu-002 + The Bear + Hulu + Comedy + Drama + 2022 + Ongoing + 3 + 28 + Christopher Storer + Jeremy Allen White + Ebon Moss-Bachrach + Ayo Edebiri + USA + English + TV-MA + 8.6 + A young chef from the fine dining world returns to Chicago to run his family's sandwich shop after a heartbreaking death. + cooking + chicago + family + anxiety + + + hulu-003 + Only Murders in the Building + Hulu + Comedy + Crime + Mystery + 2021 + Ongoing + 4 + 40 + Steve Martin + John Hoffman + Steve Martin + Martin Short + Selena Gomez + USA + English + TV-MA + 8.1 + Three strangers who share an obsession with true crime suddenly find themselves wrapped up in one. + whodunit + podcast + new-york + comedy-mystery + + + peacock-001 + Poker Face + Peacock + Crime + Comedy + Mystery + 2023 + Ongoing + 2 + 20 + Rian Johnson + Natasha Lyonne + USA + English + TV-MA + 8.1 + A casino worker with the ability to determine when someone is lying hits the road, solving crimes along the way. + mystery-of-the-week + rian-johnson + columbo + road-trip + + + paramount-001 + Yellowstone + Paramount+ + Drama + Western + 2018 + 2024 + Ended + 5 + 53 + Taylor Sheridan + John Linson + Kevin Costner + Luke Grimes + Kelly Reilly + Wes Bentley + USA + English + TV-MA + 8.7 + A ranching family in Montana faces off against others encroaching on their land. + western + ranch + family-drama + montana + + + paramount-002 + Star Trek: Strange New Worlds + Paramount+ + Sci-Fi + Adventure + Drama + 2022 + Ongoing + 3 + 30 + Akiva Goldsman + Alex Kurtzman + Jenny Lumet + Anson Mount + Rebecca Romijn + Ethan Peck + USA + English + TV-14 + 8.1 + Captain Christopher Pike helms the USS Enterprise as it explores new worlds in the years before Captain Kirk's iconic missions. + star-trek + space + enterprise + pike + + From 46f724e4a952a884a5312ccc1d57a6e29f15fbc6 Mon Sep 17 00:00:00 2001 From: Aditya Parikh Date: Sun, 13 Sep 2026 16:26:40 -0400 Subject: [PATCH 2/5] test(data): license header on shows.xml RAT audits XML; CSV, JSON and Markdown data files are exempt. Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_01CiUHyyXLTo9ATdgg8eRFZJ Signed-off-by: Aditya Parikh --- src/test/resources/shows.xml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/test/resources/shows.xml b/src/test/resources/shows.xml index e1e508e5..07fbc2ad 100644 --- a/src/test/resources/shows.xml +++ b/src/test/resources/shows.xml @@ -1,4 +1,20 @@ + netflix-001 From 6cefd3db6fe0e45b5b873a20a7d07e9bff6afbfa Mon Sep 17 00:00:00 2001 From: Aditya Parikh Date: Sun, 13 Sep 2026 16:28:48 -0400 Subject: [PATCH 3/5] build(native): include the CSV, XML and Markdown sample data in the test binary Spring AOT's resource hints cover every *.json file, which is why shows.json was already available to native tests; the new flavours were not, and ShowsSampleDataTest failed natively with missing-resource NPEs. Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_01CiUHyyXLTo9ATdgg8eRFZJ Signed-off-by: Aditya Parikh --- build.gradle.kts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/build.gradle.kts b/build.gradle.kts index 094209ed..76263499 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -550,6 +550,11 @@ if (nativeBuild) { "--initialize-at-build-time=org.junit.platform.launcher", "--initialize-at-build-time=org.junit.platform.engine", "--initialize-at-build-time=org.junit.jupiter.engine.descriptor", + // Spring AOT registers every *.json resource, which covers shows.json; + // the CSV, XML and Markdown flavours of the sample dataset need an + // explicit include or ShowsSampleDataTest cannot load them natively. + "-H:IncludeResources=shows\\.(csv|xml)$", + "-H:IncludeResources=shows-markdown/.*\\.md$", ) } } From 965343998f4dda1c601871181e22c1b5d5a412bb Mon Sep 17 00:00:00 2001 From: Aditya Parikh Date: Sun, 13 Sep 2026 22:55:35 -0400 Subject: [PATCH 4/5] fix(indexing): XML record elements are wrappers, not field prefixes The XML creator flattened every element by path from the record element, so xT produced show_id and show_title and no id at all; Solr then minted a UUID per document and re-indexing duplicated rather than replaced. XML was the one format whose documents did not match the same data in JSON, CSV or Markdown, and the only one where a reader had to learn different field names for the tutorial's later prompts. The record element (the root for a single document, each repeated child for many) is now a wrapper: its child elements are the fields, named after themselves, nested elements still flatten below that with underscores, and the record's own attributes keep the _attr suffix. ShowsSampleDataTest now asserts XML equals JSON field for field, and XmlIndexingTest's expectations drop the record prefix. Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_01CiUHyyXLTo9ATdgg8eRFZJ Signed-off-by: Aditya Parikh --- .../mcp/server/indexing/IndexingService.java | 20 ++-- .../documentcreator/XmlDocumentCreator.java | 30 ++++- .../server/indexing/ShowsSampleDataTest.java | 21 +--- .../mcp/server/indexing/XmlIndexingTest.java | 104 +++++++++--------- 4 files changed, 97 insertions(+), 78 deletions(-) diff --git a/src/main/java/org/apache/solr/mcp/server/indexing/IndexingService.java b/src/main/java/org/apache/solr/mcp/server/indexing/IndexingService.java index 13504967..1692a004 100644 --- a/src/main/java/org/apache/solr/mcp/server/indexing/IndexingService.java +++ b/src/main/java/org/apache/solr/mcp/server/indexing/IndexingService.java @@ -313,11 +313,12 @@ public String indexCsvDocuments(@McpToolParam(description = "Solr collection to * Supported XML Formats: * *
    - *
  • Single Document: Root element treated as one document - *
  • Multiple Documents: Child elements with 'doc', 'item', - * or 'record' names treated as separate documents - *
  • Nested Elements: Automatically flattened with underscore - * notation + *
  • Single Document: Root element treated as one document; + * its child elements are the fields + *
  • Multiple Documents: Repeated child elements of the root + * (any name) are separate documents; each one's child elements are its fields + *
  • Nested Elements: Flattened below the field with + * underscore notation ({@code author_name}) *
  • Attributes: Converted to fields with "_attr" suffix *
  • Mixed Data Types: Automatic type detection by Solr *
@@ -387,9 +388,12 @@ public String indexCsvDocuments(@McpToolParam(description = "Solr collection to @McpTool( name = "index-xml-documents", annotations = @McpTool.McpAnnotations(idempotentHint = true), - description = "Index documents from XML string into Solr collection. Element names are" - + " sanitized for Solr compatibility (lowercased, special characters replaced" - + " with underscores); the response lists the field names as indexed") + description = "Index documents from XML string into Solr collection: repeated child elements of the" + + " root are the documents and each one's child elements are its fields (x" + + "T yields id and title; nested elements flatten with underscores," + + " attributes get an _attr suffix). Element names are sanitized for Solr compatibility" + + " (lowercased, special characters replaced with underscores); the response lists the field" + + " names as indexed") public String indexXmlDocuments(@McpToolParam(description = "Solr collection to index into") String collection, @McpToolParam(description = "XML string containing documents to index") String xml) throws ParserConfigurationException, SAXException, IOException, SolrServerException { diff --git a/src/main/java/org/apache/solr/mcp/server/indexing/documentcreator/XmlDocumentCreator.java b/src/main/java/org/apache/solr/mcp/server/indexing/documentcreator/XmlDocumentCreator.java index 289c356f..a1bd8178 100644 --- a/src/main/java/org/apache/solr/mcp/server/indexing/documentcreator/XmlDocumentCreator.java +++ b/src/main/java/org/apache/solr/mcp/server/indexing/documentcreator/XmlDocumentCreator.java @@ -58,7 +58,10 @@ public XmlDocumentCreator() { * This method parses the XML and creates documents based on the structure: - If * the XML has multiple child elements with the same tag name (indicating * repeated structures), each child element becomes a separate document - - * Otherwise, the entire XML structure is treated as a single document + * Otherwise, the entire XML structure is treated as a single document. In both + * cases the record element is a wrapper: its child elements are the fields, + * named after themselves, so {@code xT} + * yields {@code id} and {@code title}, not {@code show_id}. * *

* This approach is flexible and doesn't rely on hardcoded element names, @@ -147,7 +150,7 @@ private List createDocumentsFromChildren(List childE for (Element childElement : childElements) { SolrInputDocument solrDoc = new SolrInputDocument(); - addXmlElementFields(solrDoc, childElement, ""); + addRecordFields(solrDoc, childElement); if (!solrDoc.isEmpty()) { documents.add(solrDoc); } @@ -156,11 +159,32 @@ private List createDocumentsFromChildren(List childE return documents; } + /** + * Adds the fields of one record element. The record element itself (the root + * for a single document, or each repeated child) is a wrapper, not a field: + * its child elements become fields named after themselves ({@code } + * is {@code title}, a repeated {@code <genres>} is multi-valued), nested + * elements flatten below that with underscores, and the record's own + * attributes keep the {@code _attr} suffix. + */ + private void addRecordFields(SolrInputDocument doc, Element record) { + String recordName = FieldNameSanitizer.sanitizeFieldName(record.getTagName()); + processXmlAttributes(doc, record, "", recordName); + NodeList children = record.getChildNodes(); + processXmlTextContent(doc, recordName, recordName, "", hasChildElements(children), children); + for (int i = 0; i < children.getLength(); i++) { + Node child = children.item(i); + if (child.getNodeType() == Node.ELEMENT_NODE) { + addXmlElementFields(doc, (Element) child, ""); + } + } + } + /** Creates a single document from the root element. */ private List<SolrInputDocument> createSingleDocument(Element rootElement) { List<SolrInputDocument> documents = new ArrayList<>(); SolrInputDocument solrDoc = new SolrInputDocument(); - addXmlElementFields(solrDoc, rootElement, ""); + addRecordFields(solrDoc, rootElement); if (!solrDoc.isEmpty()) { documents.add(solrDoc); diff --git a/src/test/java/org/apache/solr/mcp/server/indexing/ShowsSampleDataTest.java b/src/test/java/org/apache/solr/mcp/server/indexing/ShowsSampleDataTest.java index 7bc05f65..09404197 100644 --- a/src/test/java/org/apache/solr/mcp/server/indexing/ShowsSampleDataTest.java +++ b/src/test/java/org/apache/solr/mcp/server/indexing/ShowsSampleDataTest.java @@ -47,10 +47,9 @@ * <li>CSV carries multi-valued fields as <em>repeated column headers</em> * ({@code genres,genres,genres}); the parser adds one value per non-empty cell * under the same field name.</li> - * <li>XML fields arrive prefixed with the record element name - * ({@code show_title}), because the XML creator flattens nested elements by - * path, and there is no plain {@code id} field; Solr assigns one. The test - * documents that mapping rather than hiding it.</li> + * <li>XML uses one {@code <show>} element per record; the record element is a + * wrapper, so its children become the fields ({@code id}, {@code title}, a + * repeated {@code <genres>} is multi-valued), the same names as JSON.</li> * </ul> */ class ShowsSampleDataTest { @@ -100,19 +99,11 @@ void markdownFilesParseToTheSameDocumentsAsJson() throws Exception { } @Test - void xmlParsesToTheSameDocumentsUnderTheRecordPrefix() throws Exception { + void xmlParsesToTheSameDocumentsAsJson() throws Exception { Map<String, Map<String, List<String>>> expected = byId(json.create(resource("/shows.json")), "id"); - List<SolrInputDocument> docs = new XmlDocumentCreator().create(resource("/shows.xml")); + Map<String, Map<String, List<String>>> actual = byId(new XmlDocumentCreator().create(resource("/shows.xml")), + "id"); - assertThat(docs).hasSize(SHOWS); - assertThat(docs).allSatisfy( - doc -> assertThat(doc.getFieldNames()).allMatch(name -> name.startsWith("show_")).doesNotContain("id")); - assertThat(byId(docs, "show_id")).extractingByKey("netflix-001").isNotNull(); - Map<String, Map<String, List<String>>> actual = new TreeMap<>(); - for (SolrInputDocument doc : docs) { - Map<String, List<String>> fields = fields(doc, "show_"); - actual.put(fields.get("id").getFirst(), fields); - } assertThat(actual).containsExactlyEntriesOf(expected); } diff --git a/src/test/java/org/apache/solr/mcp/server/indexing/XmlIndexingTest.java b/src/test/java/org/apache/solr/mcp/server/indexing/XmlIndexingTest.java index 35129e8a..91d279b9 100644 --- a/src/test/java/org/apache/solr/mcp/server/indexing/XmlIndexingTest.java +++ b/src/test/java/org/apache/solr/mcp/server/indexing/XmlIndexingTest.java @@ -67,12 +67,12 @@ void testCreateSchemalessDocumentsFromXmlSingleDocument() throws Exception { SolrInputDocument doc = documents.getFirst(); assertThat(doc.getFieldValue("id_attr")).isEqualTo("123"); - assertThat(doc.getFieldValue("book_title")).isEqualTo("A Game of Thrones"); - assertThat(doc.getFieldValue("book_author_name")).isEqualTo("George R.R. Martin"); - assertThat(doc.getFieldValue("book_author_email")).isEqualTo("george@example.com"); - assertThat(doc.getFieldValue("book_price")).isEqualTo("7.99"); - assertThat(doc.getFieldValue("book_instock")).isEqualTo("true"); - assertThat(doc.getFieldValue("book_genre")).isEqualTo("fantasy"); + assertThat(doc.getFieldValue("title")).isEqualTo("A Game of Thrones"); + assertThat(doc.getFieldValue("author_name")).isEqualTo("George R.R. Martin"); + assertThat(doc.getFieldValue("author_email")).isEqualTo("george@example.com"); + assertThat(doc.getFieldValue("price")).isEqualTo("7.99"); + assertThat(doc.getFieldValue("instock")).isEqualTo("true"); + assertThat(doc.getFieldValue("genre")).isEqualTo("fantasy"); } @Test @@ -108,23 +108,23 @@ void testCreateSchemalessDocumentsFromXmlMultipleDocuments() throws Exception { // Verify first document SolrInputDocument firstDoc = documents.getFirst(); assertThat(firstDoc.getFieldValue("id_attr")).isEqualTo("1"); - assertThat(firstDoc.getFieldValue("document_title")).isEqualTo("A Game of Thrones"); - assertThat(firstDoc.getFieldValue("document_author")).isEqualTo("George R.R. Martin"); - assertThat(firstDoc.getFieldValue("document_genre")).isEqualTo("fantasy"); + assertThat(firstDoc.getFieldValue("title")).isEqualTo("A Game of Thrones"); + assertThat(firstDoc.getFieldValue("author")).isEqualTo("George R.R. Martin"); + assertThat(firstDoc.getFieldValue("genre")).isEqualTo("fantasy"); // Verify second document SolrInputDocument secondDoc = documents.get(1); assertThat(secondDoc.getFieldValue("id_attr")).isEqualTo("2"); - assertThat(secondDoc.getFieldValue("document_title")).isEqualTo("Foundation"); - assertThat(secondDoc.getFieldValue("document_author")).isEqualTo("Isaac Asimov"); - assertThat(secondDoc.getFieldValue("document_genre")).isEqualTo("scifi"); + assertThat(secondDoc.getFieldValue("title")).isEqualTo("Foundation"); + assertThat(secondDoc.getFieldValue("author")).isEqualTo("Isaac Asimov"); + assertThat(secondDoc.getFieldValue("genre")).isEqualTo("scifi"); // Verify third document SolrInputDocument thirdDoc = documents.get(2); assertThat(thirdDoc.getFieldValue("id_attr")).isEqualTo("3"); - assertThat(thirdDoc.getFieldValue("document_title")).isEqualTo("Dune"); - assertThat(thirdDoc.getFieldValue("document_author")).isEqualTo("Frank Herbert"); - assertThat(thirdDoc.getFieldValue("document_genre")).isEqualTo("scifi"); + assertThat(thirdDoc.getFieldValue("title")).isEqualTo("Dune"); + assertThat(thirdDoc.getFieldValue("author")).isEqualTo("Frank Herbert"); + assertThat(thirdDoc.getFieldValue("genre")).isEqualTo("scifi"); } @Test @@ -149,11 +149,11 @@ void testCreateSchemalessDocumentsFromXmlWithAttributes() throws Exception { assertThat(doc.getFieldValue("id_attr")).isEqualTo("P123"); assertThat(doc.getFieldValue("category_attr")).isEqualTo("electronics"); assertThat(doc.getFieldValue("featured_attr")).isEqualTo("true"); - assertThat(doc.getFieldValue("product_name_lang_attr")).isEqualTo("en"); - assertThat(doc.getFieldValue("product_price_currency_attr")).isEqualTo("USD"); - assertThat(doc.getFieldValue("product_name")).isEqualTo("Smartphone"); - assertThat(doc.getFieldValue("product_price")).isEqualTo("599.99"); - assertThat(doc.getFieldValue("product_description")).isEqualTo("Latest smartphone with advanced features"); + assertThat(doc.getFieldValue("name_lang_attr")).isEqualTo("en"); + assertThat(doc.getFieldValue("price_currency_attr")).isEqualTo("USD"); + assertThat(doc.getFieldValue("name")).isEqualTo("Smartphone"); + assertThat(doc.getFieldValue("price")).isEqualTo("599.99"); + assertThat(doc.getFieldValue("description")).isEqualTo("Latest smartphone with advanced features"); } @Test @@ -184,16 +184,16 @@ void testCreateSchemalessDocumentsFromXmlWithEmptyValues() throws Exception { // First document should skip empty description SolrInputDocument firstDoc = documents.getFirst(); assertThat(firstDoc.getFieldValue("id_attr")).isEqualTo("1"); - assertThat(firstDoc.getFieldValue("item_name")).isEqualTo("Product One"); - assertThat(firstDoc.getFieldValue("item_description")).isNull(); // Empty element should not be indexed - assertThat(firstDoc.getFieldValue("item_price")).isEqualTo("19.99"); + assertThat(firstDoc.getFieldValue("name")).isEqualTo("Product One"); + assertThat(firstDoc.getFieldValue("description")).isNull(); // Empty element should not be indexed + assertThat(firstDoc.getFieldValue("price")).isEqualTo("19.99"); // Second document should skip empty name SolrInputDocument secondDoc = documents.get(1); assertThat(secondDoc.getFieldValue("id_attr")).isEqualTo("2"); - assertThat(secondDoc.getFieldValue("item_name")).isNull(); // Empty element should not be indexed - assertThat(secondDoc.getFieldValue("item_description")).isEqualTo("Product with no name"); - assertThat(secondDoc.getFieldValue("item_price")).isEqualTo("29.99"); + assertThat(secondDoc.getFieldValue("name")).isNull(); // Empty element should not be indexed + assertThat(secondDoc.getFieldValue("description")).isEqualTo("Product with no name"); + assertThat(secondDoc.getFieldValue("price")).isEqualTo("29.99"); } @Test @@ -223,14 +223,14 @@ void testCreateSchemalessDocumentsFromXmlWithRepeatedElements() throws Exception assertThat(documents).hasSize(1); SolrInputDocument doc = documents.getFirst(); - assertThat(doc.getFieldValue("book_title")).isEqualTo("Programming Book"); - assertThat(doc.getFieldValue("book_author")).isEqualTo("John Doe"); + assertThat(doc.getFieldValue("title")).isEqualTo("Programming Book"); + assertThat(doc.getFieldValue("author")).isEqualTo("John Doe"); // Check that repeated elements are handled properly // Note: The current implementation processes each element separately, // so we check for the individual tag and category fields - assertThat(doc.getFieldValue("book_tags_tag")).isNotNull(); - assertThat(doc.getFieldValue("book_categories_category")).isNotNull(); + assertThat(doc.getFieldValue("tags_tag")).isNotNull(); + assertThat(doc.getFieldValue("categories_category")).isNotNull(); } @Test @@ -256,12 +256,12 @@ void testCreateSchemalessDocumentsFromXmlMixedContent() throws Exception { assertThat(documents).hasSize(1); SolrInputDocument doc = documents.getFirst(); - assertThat(doc.getFieldValue("article_title")).isEqualTo("Mixed Content Example"); - assertThat(doc.getFieldValue("article_author")).isEqualTo("Jane Smith"); + assertThat(doc.getFieldValue("title")).isEqualTo("Mixed Content Example"); + assertThat(doc.getFieldValue("author")).isEqualTo("Jane Smith"); // Mixed content should be handled - text content should be captured - assertThat(doc.getFieldValue("article_content")).isNotNull(); - assertThat(doc.getFieldValue("article_content_emphasis")).isEqualTo("emphasized text"); + assertThat(doc.getFieldValue("content")).isNotNull(); + assertThat(doc.getFieldValue("content_emphasis")).isEqualTo("emphasized text"); } @Test @@ -440,24 +440,24 @@ void testCreateSchemalessDocumentsFromXmlWithComplexNestedStructure() throws Exc assertThat(doc.getFieldValue("category_attr")).isEqualTo("electronics"); // Verify nested structure flattening - assertThat(doc.getFieldValue("product_details_name_lang_attr")).isNotNull(); - assertThat(doc.getFieldValue("product_details_specifications_screen_size_attr")).isEqualTo("6.1"); - assertThat(doc.getFieldValue("product_details_specifications_screen_type_attr")).isEqualTo("OLED"); - assertThat(doc.getFieldValue("product_details_specifications_screen")).isEqualTo("Full HD+"); + assertThat(doc.getFieldValue("details_name_lang_attr")).isNotNull(); + assertThat(doc.getFieldValue("details_specifications_screen_size_attr")).isEqualTo("6.1"); + assertThat(doc.getFieldValue("details_specifications_screen_type_attr")).isEqualTo("OLED"); + assertThat(doc.getFieldValue("details_specifications_screen")).isEqualTo("Full HD+"); // Verify multiple similar elements - assertThat(doc.getFieldValue("product_details_specifications_camera_type_attr")).isNotNull(); - assertThat(doc.getFieldValue("product_details_specifications_camera_resolution_attr")).isNotNull(); + assertThat(doc.getFieldValue("details_specifications_camera_type_attr")).isNotNull(); + assertThat(doc.getFieldValue("details_specifications_camera_resolution_attr")).isNotNull(); // Verify deeply nested elements - assertThat(doc.getFieldValue("product_details_specifications_storage_internal")).isEqualTo("128GB"); - assertThat(doc.getFieldValue("product_details_specifications_storage_expandable")).isEqualTo("Yes"); + assertThat(doc.getFieldValue("details_specifications_storage_internal")).isEqualTo("128GB"); + assertThat(doc.getFieldValue("details_specifications_storage_expandable")).isEqualTo("Yes"); // Verify pricing and availability - assertThat(doc.getFieldValue("product_pricing_currency_attr")).isEqualTo("USD"); - assertThat(doc.getFieldValue("product_pricing")).isEqualTo("599.99"); - assertThat(doc.getFieldValue("product_availability_instock")).isEqualTo("true"); - assertThat(doc.getFieldValue("product_availability_regions_region")).isNotNull(); + assertThat(doc.getFieldValue("pricing_currency_attr")).isEqualTo("USD"); + assertThat(doc.getFieldValue("pricing")).isEqualTo("599.99"); + assertThat(doc.getFieldValue("availability_instock")).isEqualTo("true"); + assertThat(doc.getFieldValue("availability_regions_region")).isNotNull(); } @Test @@ -486,11 +486,11 @@ void testFieldNameSanitization() throws Exception { // Verify field name sanitization assertThat(doc.getFieldValue("id_attr")).isEqualTo("123"); - assertThat(doc.getFieldValue("product_data_product_name")).isEqualTo("Test Product"); - assertThat(doc.getFieldValue("product_data_price_usd")).isEqualTo("99.99"); - assertThat(doc.getFieldValue("product_data_category_type")).isEqualTo("electronics"); - assertThat(doc.getFieldValue("product_data_field_with_multiple_underscores")).isEqualTo("value"); - assertThat(doc.getFieldValue("product_data_field_with_dashes")).isEqualTo("dashed value"); - assertThat(doc.getFieldValue("product_data_uppercase_field")).isEqualTo("uppercase value"); + assertThat(doc.getFieldValue("data_product_name")).isEqualTo("Test Product"); + assertThat(doc.getFieldValue("data_price_usd")).isEqualTo("99.99"); + assertThat(doc.getFieldValue("data_category_type")).isEqualTo("electronics"); + assertThat(doc.getFieldValue("data_field_with_multiple_underscores")).isEqualTo("value"); + assertThat(doc.getFieldValue("data_field_with_dashes")).isEqualTo("dashed value"); + assertThat(doc.getFieldValue("data_uppercase_field")).isEqualTo("uppercase value"); } } From 214fde91cbffced77cfcad5ec933401f3acb405b Mon Sep 17 00:00:00 2001 From: Aditya Parikh <aditya.m.parikh@gmail.com> Date: Sun, 13 Sep 2026 23:03:29 -0400 Subject: [PATCH 5/5] fix(indexing): child-element attributes stay qualified by their element Only the record element's own attributes are unqualified (id_attr); an attribute on a child keeps the element name (name_lang_attr), as before. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CiUHyyXLTo9ATdgg8eRFZJ Signed-off-by: Aditya Parikh <aditya.m.parikh@gmail.com> --- .../documentcreator/XmlDocumentCreator.java | 16 +++++++++------- .../mcp/server/indexing/XmlIndexingTest.java | 12 ++++++------ 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/src/main/java/org/apache/solr/mcp/server/indexing/documentcreator/XmlDocumentCreator.java b/src/main/java/org/apache/solr/mcp/server/indexing/documentcreator/XmlDocumentCreator.java index a1bd8178..a7081043 100644 --- a/src/main/java/org/apache/solr/mcp/server/indexing/documentcreator/XmlDocumentCreator.java +++ b/src/main/java/org/apache/solr/mcp/server/indexing/documentcreator/XmlDocumentCreator.java @@ -161,15 +161,17 @@ private List<SolrInputDocument> createDocumentsFromChildren(List<Element> childE /** * Adds the fields of one record element. The record element itself (the root - * for a single document, or each repeated child) is a wrapper, not a field: - * its child elements become fields named after themselves ({@code <title>} - * is {@code title}, a repeated {@code <genres>} is multi-valued), nested - * elements flatten below that with underscores, and the record's own - * attributes keep the {@code _attr} suffix. + * for a single document, or each repeated child) is a wrapper, not a field: its + * child elements become fields named after themselves ({@code <title>} is + * {@code title}, a repeated {@code <genres>} is multi-valued), nested elements + * flatten below that with underscores, and the record's own attributes keep the + * {@code _attr} suffix. */ private void addRecordFields(SolrInputDocument doc, Element record) { String recordName = FieldNameSanitizer.sanitizeFieldName(record.getTagName()); - processXmlAttributes(doc, record, "", recordName); + // The record's own attributes are unqualified (id_attr); a child element's + // attributes are qualified by that element (name_lang_attr). + processXmlAttributes(doc, record, "", ""); NodeList children = record.getChildNodes(); processXmlTextContent(doc, recordName, recordName, "", hasChildElements(children), children); for (int i = 0; i < children.getLength(); i++) { @@ -253,7 +255,7 @@ private void processXmlAttributes(SolrInputDocument doc, Element element, String for (int i = 0; i < element.getAttributes().getLength(); i++) { Node attr = element.getAttributes().item(i); String attrName = FieldNameSanitizer.sanitizeFieldName(attr.getNodeName()) + "_attr"; - String fieldName = prefix.isEmpty() ? attrName : currentPrefix + "_" + attrName; + String fieldName = currentPrefix.isEmpty() ? attrName : currentPrefix + "_" + attrName; String attrValue = attr.getNodeValue(); if (attrValue != null && !attrValue.trim().isEmpty()) { diff --git a/src/test/java/org/apache/solr/mcp/server/indexing/XmlIndexingTest.java b/src/test/java/org/apache/solr/mcp/server/indexing/XmlIndexingTest.java index 91d279b9..e2a83d3d 100644 --- a/src/test/java/org/apache/solr/mcp/server/indexing/XmlIndexingTest.java +++ b/src/test/java/org/apache/solr/mcp/server/indexing/XmlIndexingTest.java @@ -486,11 +486,11 @@ void testFieldNameSanitization() throws Exception { // Verify field name sanitization assertThat(doc.getFieldValue("id_attr")).isEqualTo("123"); - assertThat(doc.getFieldValue("data_product_name")).isEqualTo("Test Product"); - assertThat(doc.getFieldValue("data_price_usd")).isEqualTo("99.99"); - assertThat(doc.getFieldValue("data_category_type")).isEqualTo("electronics"); - assertThat(doc.getFieldValue("data_field_with_multiple_underscores")).isEqualTo("value"); - assertThat(doc.getFieldValue("data_field_with_dashes")).isEqualTo("dashed value"); - assertThat(doc.getFieldValue("data_uppercase_field")).isEqualTo("uppercase value"); + assertThat(doc.getFieldValue("product_name")).isEqualTo("Test Product"); + assertThat(doc.getFieldValue("price_usd")).isEqualTo("99.99"); + assertThat(doc.getFieldValue("category_type")).isEqualTo("electronics"); + assertThat(doc.getFieldValue("field_with_multiple_underscores")).isEqualTo("value"); + assertThat(doc.getFieldValue("field_with_dashes")).isEqualTo("dashed value"); + assertThat(doc.getFieldValue("uppercase_field")).isEqualTo("uppercase value"); } }