From 85620c98aec4f65109ab1e72763f83d56db07446 Mon Sep 17 00:00:00 2001 From: pidoubleyou <22942659+pidoubleyou@users.noreply.github.com> Date: Thu, 21 May 2026 21:28:21 +0200 Subject: [PATCH] migrate to junit5 --- pom.xml | 9 +- .../mserver/crawler/sr/SrTopicUrlDTO.java | 19 +- ...rConfigUsesServerConfigForDefaultTest.java | 24 +-- .../base/utils/GeoLocationGuesserTest.java | 27 +-- .../utils/UrlUtilsAddDomainIfMissingTest.java | 19 +- .../UrlUtilsAddProtocolIfMissingTest.java | 19 +- .../base/utils/UrlUtilsGetBaseUrlTest.java | 20 +-- .../base/utils/UrlUtilsGetFileNameTest.java | 20 +-- .../base/utils/UrlUtilsGetFileTypeTest.java | 20 +-- .../utils/UrlUtilsGetLastSegmentTest.java | 20 +-- .../base/utils/UrlUtilsGetProtocolTest.java | 20 +-- .../UrlUtilsGetUrlParameterValueTest.java | 30 ++-- .../utils/UrlUtilsRemoveParametersTest.java | 19 +- .../mserver/crawler/CrawlerManagerTest.java | 41 +++-- .../crawler/WriteFilmlistHashFileTest.java | 6 +- .../crawler/WriteFilmlistIdFileTest.java | 6 +- .../mserver/crawler/ard/UrlOptimizerTest.java | 104 +++++------ .../ard/json/ArdDayPageDeserializerTest.java | 6 +- .../ard/json/ArdErrorDeserializerTest.java | 10 +- .../json/ArdFilmDeserializerErrorTest.java | 20 +-- .../ard/json/ArdFilmDeserializerTest.java | 71 +------- ...rdTopicPageDeserializerPaginationTest.java | 6 +- .../json/ArdTopicPageDeserializerTest.java | 8 +- .../ard/json/ArdTopicsDeserializerTest.java | 4 +- .../json/ArdTopicsLetterDeserializerTest.java | 6 +- .../ArdVideoInfoJsonDeserializerTest.java | 34 +--- .../ard/tasks/ArdFilmDetailTaskTest.java | 77 +------- .../ard/tasks/ArdTopicPageTaskTest.java | 10 +- .../arte/tasks/ArteDtoVideo2FilmTaskTest.java | 48 ++--- .../arte/tasks/ArteVideoInfoTaskTest.java | 9 +- .../arte/tasks/ArteVideoLinkTaskTest.java | 34 ++-- .../crawler/basic/IgnoreFilmFilterTest.java | 26 +-- .../basic/M3U8DtoGetResolutionTest.java | 30 +--- .../mserver/crawler/basic/M3U8DtoTest.java | 26 +-- .../mserver/crawler/basic/M3U8ParserTest.java | 14 +- .../crawler/basic/TopicUrlDTOTest.java | 10 +- .../dw/tasks/DWDetailDeserializerTest.java | 56 +----- .../dw/tasks/DWOverviewDeserializerTest.java | 74 ++------ .../crawler/orfon/OrfOnAZTaskTest.java | 13 +- .../crawler/orfon/OrfOnEpisodeTaskTest.java | 31 ++-- .../crawler/orfon/OrfOnEpisodesTaskTest.java | 7 +- .../orfon/OrfOnHistoryChildrenTaskTest.java | 6 +- .../crawler/orfon/OrfOnHistoryTaskTest.java | 7 +- .../orfon/OrfOnHistoryVideoItemTaskTest.java | 7 +- .../crawler/orfon/OrfOnScheduleTaskTest.java | 7 +- ...hoenixFilmDetailDeserializerErrorTest.java | 6 +- .../PhoenixFilmDetailDeserializerTest.java | 34 +--- ...hoenixSendungOverviewDeserializerTest.java | 25 +-- .../tasks/PhoenixFilmDetailTaskTest.java | 108 ++++-------- .../sr/tasks/SrFilmDetailTaskNoFilmTest.java | 41 +---- .../sr/tasks/SrFilmDetailTaskTest.java | 70 +------- .../sr/tasks/SrTopicArchivePageTaskTest.java | 23 +-- .../tasks/SrTopicsOverviewPageTaskTest.java | 44 ++--- .../SrfFilmJsonDeserializerErrorTest.java | 10 +- .../parser/SrfFilmJsonDeserializerTest.java | 67 +------ .../parser/SrfScheduleDeserializerTest.java | 6 +- .../srf/parser/SrfTopicDeserializerTest.java | 8 +- .../srf/parser/SrfTopicsDeserializerTest.java | 6 +- .../srf/tasks/SrfFilmDetailTaskTest.java | 9 +- .../srf/tasks/SrfTopicOverviewTaskTest.java | 8 +- .../crawler/swr/SwrUrlOptimizerTest.java | 4 +- .../crawler/zdf/ZdfConfigurationTest.java | 18 +- .../crawler/zdf/ZdfVideoUrlOptimizerTest.java | 38 ++-- .../zdf/json/ZdfDayPageDeserializerTest.java | 31 +--- .../json/ZdfDownloadDtoDeserializerTest.java | 65 +------ .../json/ZdfFilmDetailDeserializerTest.java | 48 +---- .../crawler/zdf/tasks/ZdfDayPageTaskTest.java | 10 +- ...dfFilmDetailTaskMultipleLanguagesTest.java | 6 +- .../zdf/tasks/ZdfFilmDetailTaskTest.java | 161 ++++++----------- .../zdf/tasks/ZdfIndexPageTaskTest.java | 91 +++------- .../mserver/testhelper/FileReader.java | 2 +- .../mserver/testhelper/JsonFileReader.java | 2 +- .../mserver/testhelper/WireMockTestBase.java | 4 - .../testhelper/WireMockTestBaseJUnit5.java | 166 ------------------ 74 files changed, 607 insertions(+), 1584 deletions(-) delete mode 100644 src/test/java/de/mediathekview/mserver/testhelper/WireMockTestBaseJUnit5.java diff --git a/pom.xml b/pom.xml index a1db8df7c..079570b0d 100644 --- a/pom.xml +++ b/pom.xml @@ -86,7 +86,7 @@ 3.4.1 3.3.0 3.2.1 - 3.0.0-M7 + 3.1.2 5.19.0 1.6.13 4.10.0 @@ -138,7 +138,7 @@ HikariCP 5.1.0 - + org.apache.commons commons-compress @@ -242,11 +242,6 @@ junit-jupiter-params test - - org.junit.vintage - junit-vintage-engine - test - net.bytebuddy diff --git a/src/main/java/de/mediathekview/mserver/crawler/sr/SrTopicUrlDTO.java b/src/main/java/de/mediathekview/mserver/crawler/sr/SrTopicUrlDTO.java index 8618a4f98..5ceaa92a7 100644 --- a/src/main/java/de/mediathekview/mserver/crawler/sr/SrTopicUrlDTO.java +++ b/src/main/java/de/mediathekview/mserver/crawler/sr/SrTopicUrlDTO.java @@ -2,10 +2,27 @@ import de.mediathekview.mserver.crawler.basic.CrawlerUrlDTO; +import java.util.Objects; + public class SrTopicUrlDTO extends CrawlerUrlDTO { private final String theme; - + + @Override + public final boolean equals(Object o) { + if (!(o instanceof SrTopicUrlDTO that)) return false; + if (!super.equals(o)) return false; + + return Objects.equals(theme, that.theme); + } + + @Override + public int hashCode() { + int result = super.hashCode(); + result = 31 * result + Objects.hashCode(theme); + return result; + } + public SrTopicUrlDTO(String aTheme, String aUrl) { super(aUrl); theme = aTheme; diff --git a/src/test/java/de/mediathekview/mserver/base/SenderConfigUsesServerConfigForDefaultTest.java b/src/test/java/de/mediathekview/mserver/base/SenderConfigUsesServerConfigForDefaultTest.java index c97dc0fef..1bb3dee39 100644 --- a/src/test/java/de/mediathekview/mserver/base/SenderConfigUsesServerConfigForDefaultTest.java +++ b/src/test/java/de/mediathekview/mserver/base/SenderConfigUsesServerConfigForDefaultTest.java @@ -3,24 +3,24 @@ import de.mediathekview.mserver.daten.Sender; import de.mediathekview.mserver.base.config.MServerBasicConfigDTO; import de.mediathekview.mserver.base.config.MServerConfigManager; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import static de.mediathekview.mserver.daten.Sender.ARD; import static de.mediathekview.mserver.daten.Sender.BR; import static org.assertj.core.api.Assertions.assertThat; -public class SenderConfigUsesServerConfigForDefaultTest { +class SenderConfigUsesServerConfigForDefaultTest { private MServerConfigManager configManager; - @Before - public void setUp() { + @BeforeEach + void setUp() { configManager = new MServerConfigManager("ConfigTest.yaml"); } @Test - public void senderConfig_NotOverriddenValue_ValueFromRootConfig() { + void senderConfig_NotOverriddenValue_ValueFromRootConfig() { configManager.getConfig().setSocketTimeoutInSeconds(42); final MServerBasicConfigDTO kikaConfig = configManager.getSenderConfig(Sender.KIKA); kikaConfig.setMaximumSubpages(42); @@ -30,7 +30,7 @@ public void senderConfig_NotOverriddenValue_ValueFromRootConfig() { } @Test - public void + void senderConfig_NotOverriddenRootConfigValueChangedAfterInitialization_NewValueFromRootConfig() { final MServerBasicConfigDTO kikaConfig = configManager.getSenderConfig(Sender.KIKA); kikaConfig.setMaximumSubpages(42); @@ -41,7 +41,7 @@ public void senderConfig_NotOverriddenValue_ValueFromRootConfig() { } @Test - public void senderConfig_OverrideValue_OverriddenValue() { + void senderConfig_OverrideValue_OverriddenValue() { configManager.getConfig().setMaximumSubpages(21); final MServerBasicConfigDTO kikaConfig = configManager.getSenderConfig(Sender.KIKA); kikaConfig.setMaximumSubpages(42); @@ -51,7 +51,7 @@ public void senderConfig_OverrideValue_OverriddenValue() { } @Test - public void senderConfig_OverriddenRootConfigValueChangedAfterInitialization_OverriddenValue() { + void senderConfig_OverriddenRootConfigValueChangedAfterInitialization_OverriddenValue() { final MServerBasicConfigDTO kikaConfig = configManager.getSenderConfig(Sender.KIKA); kikaConfig.setMaximumSubpages(42); configManager.getConfig().setMaximumSubpages(21); @@ -61,19 +61,19 @@ public void senderConfig_OverriddenRootConfigValueChangedAfterInitialization_Ove } @Test - public void configFromFile_NotOverridden_ValueFromRootConfig() { + void configFromFile_NotOverridden_ValueFromRootConfig() { assertThat(configManager.getSenderConfig(ARD).getMaximumSubpages()) .isEqualTo(configManager.getConfig().getMaximumSubpages()); } @Test - public void configFromFile_Overridden_OverriddenValue() { + void configFromFile_Overridden_OverriddenValue() { assertThat(configManager.getSenderConfig(ARD).getMaximumUrlsPerTask()) .isNotEqualTo(configManager.getConfig().getMaximumUrlsPerTask()); } @Test - public void configFromFile_NoDirectConfigForSender_ValueFromRootConfig() { + void configFromFile_NoDirectConfigForSender_ValueFromRootConfig() { assertThat(configManager.getSenderConfig(BR).getMaximumUrlsPerTask()) .isEqualTo(configManager.getConfig().getMaximumUrlsPerTask()); } diff --git a/src/test/java/de/mediathekview/mserver/base/utils/GeoLocationGuesserTest.java b/src/test/java/de/mediathekview/mserver/base/utils/GeoLocationGuesserTest.java index 9a1c5544e..7c83311b5 100644 --- a/src/test/java/de/mediathekview/mserver/base/utils/GeoLocationGuesserTest.java +++ b/src/test/java/de/mediathekview/mserver/base/utils/GeoLocationGuesserTest.java @@ -2,25 +2,17 @@ import de.mediathekview.mserver.daten.GeoLocations; import de.mediathekview.mserver.daten.Sender; -import junit.framework.TestCase; import org.hamcrest.Matchers; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; import java.util.Arrays; import java.util.Collection; import static org.hamcrest.MatcherAssert.assertThat; -@RunWith(Parameterized.class) -public class GeoLocationGuesserTest extends TestCase { +public class GeoLocationGuesserTest { - private final Sender sender; - private final String url; - private final GeoLocations expectedGeoLocation; - - @Parameterized.Parameters public static Collection data() { return Arrays.asList( new Object[][] { @@ -177,16 +169,9 @@ public static Collection data() { }); } - public GeoLocationGuesserTest( - final Sender sender, final String url, final GeoLocations expectedGeoLocation) { - - this.sender = sender; - this.url = url; - this.expectedGeoLocation = expectedGeoLocation; - } - - @Test - public void geoLocations() { + @MethodSource("data") + @ParameterizedTest + void geoLocations(final Sender sender, final String url, final GeoLocations expectedGeoLocation) { final Collection actualGeoLocations = GeoLocationGuesser.getGeoLocations(sender, url); diff --git a/src/test/java/de/mediathekview/mserver/base/utils/UrlUtilsAddDomainIfMissingTest.java b/src/test/java/de/mediathekview/mserver/base/utils/UrlUtilsAddDomainIfMissingTest.java index e12b812a7..48b6ffd1c 100644 --- a/src/test/java/de/mediathekview/mserver/base/utils/UrlUtilsAddDomainIfMissingTest.java +++ b/src/test/java/de/mediathekview/mserver/base/utils/UrlUtilsAddDomainIfMissingTest.java @@ -1,8 +1,7 @@ package de.mediathekview.mserver.base.utils; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; import java.util.Arrays; import java.util.Collection; @@ -10,18 +9,9 @@ import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.MatcherAssert.assertThat; -@RunWith(Parameterized.class) public class UrlUtilsAddDomainIfMissingTest { private static final String DOMAIN = "https://mydomain.de"; - private final String inputUrl; - private final String expectedBaseUrl; - public UrlUtilsAddDomainIfMissingTest(final String aInputUrl, final String aExpectedBaseUrl) { - inputUrl = aInputUrl; - expectedBaseUrl = aExpectedBaseUrl; - } - - @Parameterized.Parameters public static Collection data() { return Arrays.asList( new String[][] { @@ -33,8 +23,9 @@ public static Collection data() { }); } - @Test - public void addDomainIfMissingTest() { + @MethodSource("data") + @ParameterizedTest + void addDomainIfMissingTest(final String inputUrl, final String expectedBaseUrl) { final String actual = UrlUtils.addDomainIfMissing(inputUrl, DOMAIN); assertThat(actual, equalTo(expectedBaseUrl)); diff --git a/src/test/java/de/mediathekview/mserver/base/utils/UrlUtilsAddProtocolIfMissingTest.java b/src/test/java/de/mediathekview/mserver/base/utils/UrlUtilsAddProtocolIfMissingTest.java index db2078816..42316b125 100644 --- a/src/test/java/de/mediathekview/mserver/base/utils/UrlUtilsAddProtocolIfMissingTest.java +++ b/src/test/java/de/mediathekview/mserver/base/utils/UrlUtilsAddProtocolIfMissingTest.java @@ -1,8 +1,7 @@ package de.mediathekview.mserver.base.utils; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; import java.util.Arrays; import java.util.Collection; @@ -10,19 +9,10 @@ import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.MatcherAssert.assertThat; -@RunWith(Parameterized.class) public class UrlUtilsAddProtocolIfMissingTest { private static final String PROTOCOL = "https:"; - private final String inputUrl; - private final String expectedBaseUrl; - public UrlUtilsAddProtocolIfMissingTest(final String aInputUrl, final String aExpectedBaseUrl) { - inputUrl = aInputUrl; - expectedBaseUrl = aExpectedBaseUrl; - } - - @Parameterized.Parameters public static Collection data() { return Arrays.asList( new String[][] { @@ -36,8 +26,9 @@ public static Collection data() { }); } - @Test - public void addProtocolIfMissingTest() { + @MethodSource("data") + @ParameterizedTest + void addProtocolIfMissingTest(final String inputUrl, final String expectedBaseUrl) { final String actual = UrlUtils.addProtocolIfMissing(inputUrl, PROTOCOL); assertThat(actual, equalTo(expectedBaseUrl)); diff --git a/src/test/java/de/mediathekview/mserver/base/utils/UrlUtilsGetBaseUrlTest.java b/src/test/java/de/mediathekview/mserver/base/utils/UrlUtilsGetBaseUrlTest.java index 505721707..ccd41e95d 100644 --- a/src/test/java/de/mediathekview/mserver/base/utils/UrlUtilsGetBaseUrlTest.java +++ b/src/test/java/de/mediathekview/mserver/base/utils/UrlUtilsGetBaseUrlTest.java @@ -1,8 +1,7 @@ package de.mediathekview.mserver.base.utils; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; import java.util.Arrays; import java.util.Collection; @@ -10,17 +9,7 @@ import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.MatcherAssert.assertThat; -@RunWith(Parameterized.class) public class UrlUtilsGetBaseUrlTest { - private final String inputUrl; - private final String expectedBaseUrl; - - public UrlUtilsGetBaseUrlTest(final String aInputUrl, final String aExpectedBaseUrl) { - inputUrl = aInputUrl; - expectedBaseUrl = aExpectedBaseUrl; - } - - @Parameterized.Parameters public static Collection data() { return Arrays.asList( new Object[][] { @@ -32,8 +21,9 @@ public static Collection data() { }); } - @Test - public void getBaseUrlTest() { + @MethodSource("data") + @ParameterizedTest + void getBaseUrlTest(final String inputUrl, final String expectedBaseUrl) { final String actual = UrlUtils.getBaseUrl(inputUrl); assertThat(actual, equalTo(expectedBaseUrl)); diff --git a/src/test/java/de/mediathekview/mserver/base/utils/UrlUtilsGetFileNameTest.java b/src/test/java/de/mediathekview/mserver/base/utils/UrlUtilsGetFileNameTest.java index 68996a58c..bff98cc26 100644 --- a/src/test/java/de/mediathekview/mserver/base/utils/UrlUtilsGetFileNameTest.java +++ b/src/test/java/de/mediathekview/mserver/base/utils/UrlUtilsGetFileNameTest.java @@ -1,8 +1,7 @@ package de.mediathekview.mserver.base.utils; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; import java.util.Arrays; import java.util.Collection; @@ -11,18 +10,8 @@ import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.MatcherAssert.assertThat; -@RunWith(Parameterized.class) public class UrlUtilsGetFileNameTest { - private final String inputUrl; - private final Optional expectedFileType; - - public UrlUtilsGetFileNameTest(final String aInputUrl, final Optional aExpectedFileType) { - inputUrl = aInputUrl; - expectedFileType = aExpectedFileType; - } - - @Parameterized.Parameters public static Collection data() { return Arrays.asList( new Object[][] { @@ -39,8 +28,9 @@ public static Collection data() { }); } - @Test - public void getFileNameTest() { + @MethodSource("data") + @ParameterizedTest + void getFileNameTest(final String inputUrl, final Optional expectedFileType) { final Optional actual = UrlUtils.getFileName(inputUrl); assertThat(actual, equalTo(expectedFileType)); diff --git a/src/test/java/de/mediathekview/mserver/base/utils/UrlUtilsGetFileTypeTest.java b/src/test/java/de/mediathekview/mserver/base/utils/UrlUtilsGetFileTypeTest.java index 4fb020160..3b022ec80 100644 --- a/src/test/java/de/mediathekview/mserver/base/utils/UrlUtilsGetFileTypeTest.java +++ b/src/test/java/de/mediathekview/mserver/base/utils/UrlUtilsGetFileTypeTest.java @@ -1,8 +1,7 @@ package de.mediathekview.mserver.base.utils; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; import java.util.Arrays; import java.util.Collection; @@ -11,18 +10,8 @@ import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.MatcherAssert.assertThat; -@RunWith(Parameterized.class) public class UrlUtilsGetFileTypeTest { - private final String inputUrl; - private final Optional expectedFileType; - - public UrlUtilsGetFileTypeTest(final String aInputUrl, final Optional aExpectedFileType) { - inputUrl = aInputUrl; - expectedFileType = aExpectedFileType; - } - - @Parameterized.Parameters public static Collection data() { return Arrays.asList( new Object[][] { @@ -40,8 +29,9 @@ public static Collection data() { }); } - @Test - public void getFileTypeTest() { + @MethodSource("data") + @ParameterizedTest + void getFileTypeTest(final String inputUrl, final Optional expectedFileType) { final Optional actual = UrlUtils.getFileType(inputUrl); assertThat(actual, equalTo(expectedFileType)); diff --git a/src/test/java/de/mediathekview/mserver/base/utils/UrlUtilsGetLastSegmentTest.java b/src/test/java/de/mediathekview/mserver/base/utils/UrlUtilsGetLastSegmentTest.java index 255ff7d4d..1d99c9b51 100644 --- a/src/test/java/de/mediathekview/mserver/base/utils/UrlUtilsGetLastSegmentTest.java +++ b/src/test/java/de/mediathekview/mserver/base/utils/UrlUtilsGetLastSegmentTest.java @@ -1,8 +1,7 @@ package de.mediathekview.mserver.base.utils; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; import java.util.Arrays; import java.util.Collection; @@ -11,18 +10,8 @@ import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.MatcherAssert.assertThat; -@RunWith(Parameterized.class) public class UrlUtilsGetLastSegmentTest { - private final String inputUrl; - private final Optional expectedResult; - - public UrlUtilsGetLastSegmentTest(final String inputUrl, final Optional expectedResult) { - this.inputUrl = inputUrl; - this.expectedResult = expectedResult; - } - - @Parameterized.Parameters public static Collection data() { return Arrays.asList( new Object[][] { @@ -35,8 +24,9 @@ public static Collection data() { }); } - @Test - public void getLastSegmentTest() { + @MethodSource("data") + @ParameterizedTest + void getLastSegmentTest(final String inputUrl, final Optional expectedResult) { final Optional actual = UrlUtils.getLastSegment(inputUrl); assertThat(actual, equalTo(expectedResult)); diff --git a/src/test/java/de/mediathekview/mserver/base/utils/UrlUtilsGetProtocolTest.java b/src/test/java/de/mediathekview/mserver/base/utils/UrlUtilsGetProtocolTest.java index 8329f8fd1..c26843f3f 100644 --- a/src/test/java/de/mediathekview/mserver/base/utils/UrlUtilsGetProtocolTest.java +++ b/src/test/java/de/mediathekview/mserver/base/utils/UrlUtilsGetProtocolTest.java @@ -1,8 +1,7 @@ package de.mediathekview.mserver.base.utils; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; import java.util.Arrays; import java.util.Collection; @@ -11,17 +10,7 @@ import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.MatcherAssert.assertThat; -@RunWith(Parameterized.class) public class UrlUtilsGetProtocolTest { - private final String inputUrl; - private final Optional expectedProtocol; - - public UrlUtilsGetProtocolTest(final String aInputUrl, final Optional aExpectedProtocol) { - inputUrl = aInputUrl; - expectedProtocol = aExpectedProtocol; - } - - @Parameterized.Parameters public static Collection data() { return Arrays.asList( new Object[][] { @@ -34,8 +23,9 @@ public static Collection data() { }); } - @Test - public void getBaseUrlTest() { + @MethodSource("data") + @ParameterizedTest + void getBaseUrlTest(final String inputUrl, final Optional expectedProtocol) { final Optional actual = UrlUtils.getProtocol(inputUrl); assertThat(actual, equalTo(expectedProtocol)); diff --git a/src/test/java/de/mediathekview/mserver/base/utils/UrlUtilsGetUrlParameterValueTest.java b/src/test/java/de/mediathekview/mserver/base/utils/UrlUtilsGetUrlParameterValueTest.java index 19c1575f8..6e6709bf1 100644 --- a/src/test/java/de/mediathekview/mserver/base/utils/UrlUtilsGetUrlParameterValueTest.java +++ b/src/test/java/de/mediathekview/mserver/base/utils/UrlUtilsGetUrlParameterValueTest.java @@ -1,30 +1,16 @@ package de.mediathekview.mserver.base.utils; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import static org.hamcrest.CoreMatchers.equalTo; +import static org.hamcrest.MatcherAssert.assertThat; import java.util.Arrays; import java.util.Collection; import java.util.Optional; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; -import static org.hamcrest.CoreMatchers.equalTo; -import static org.hamcrest.MatcherAssert.assertThat; - -@RunWith(Parameterized.class) public class UrlUtilsGetUrlParameterValueTest { - private final String inputUrl; - private final String parameterName; - private final Optional expectedParameterValue; - - public UrlUtilsGetUrlParameterValueTest( - final String aInputUrl, final String aParameterName, final Optional aExpectedParameterValue) { - inputUrl = aInputUrl; - parameterName = aParameterName; - expectedParameterValue = aExpectedParameterValue; - } - @Parameterized.Parameters public static Collection data() { return Arrays.asList( new Object[][] { @@ -37,8 +23,12 @@ public static Collection data() { }); } - @Test - public void getUrlParameterValueTest() throws UrlParseException { + @MethodSource("data") + @ParameterizedTest + void getUrlParameterValueTest( + final String inputUrl, + final String parameterName, + final Optional expectedParameterValue) { final Optional actual = UrlUtils.getUrlParameterValue(inputUrl, parameterName); assertThat(actual, equalTo(expectedParameterValue)); diff --git a/src/test/java/de/mediathekview/mserver/base/utils/UrlUtilsRemoveParametersTest.java b/src/test/java/de/mediathekview/mserver/base/utils/UrlUtilsRemoveParametersTest.java index 59b5e152e..251ab15c5 100644 --- a/src/test/java/de/mediathekview/mserver/base/utils/UrlUtilsRemoveParametersTest.java +++ b/src/test/java/de/mediathekview/mserver/base/utils/UrlUtilsRemoveParametersTest.java @@ -1,8 +1,7 @@ package de.mediathekview.mserver.base.utils; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; import java.util.Arrays; import java.util.Collection; @@ -10,17 +9,8 @@ import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.MatcherAssert.assertThat; -@RunWith(Parameterized.class) public class UrlUtilsRemoveParametersTest { - private final String inputUrl; - private final String expectedUrl; - public UrlUtilsRemoveParametersTest(final String aInputUrl, final String aExpectedUrl) { - inputUrl = aInputUrl; - expectedUrl = aExpectedUrl; - } - - @Parameterized.Parameters public static Collection data() { return Arrays.asList( new Object[][] { @@ -32,8 +22,9 @@ public static Collection data() { }); } - @Test - public void removeParameters() { + @MethodSource("data") + @ParameterizedTest + void removeParameters(final String inputUrl, final String expectedUrl) { final String actual = UrlUtils.removeParameters(inputUrl); assertThat(actual, equalTo(expectedUrl)); diff --git a/src/test/java/de/mediathekview/mserver/crawler/CrawlerManagerTest.java b/src/test/java/de/mediathekview/mserver/crawler/CrawlerManagerTest.java index 396e962dd..b03771718 100644 --- a/src/test/java/de/mediathekview/mserver/crawler/CrawlerManagerTest.java +++ b/src/test/java/de/mediathekview/mserver/crawler/CrawlerManagerTest.java @@ -10,12 +10,11 @@ import de.mediathekview.mserver.testhelper.FileReader; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.junit.AfterClass; -import org.junit.Assert; -import org.junit.BeforeClass; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; import java.io.File; import java.io.IOException; @@ -28,19 +27,18 @@ import static org.assertj.core.api.Assertions.assertThat; -@RunWith(Parameterized.class) public class CrawlerManagerTest implements MessageListener { - private final Logger logger; + private Logger logger; private static final String TEMP_FOLDER_NAME_PATTERN = "MSERVER_TEST_%d"; private static Path testFileFolderPath; - private final CrawlerManager crawlerManager; - private final String filmlistPath; - private final FilmlistFormats format; - private final int expectedSize; + private CrawlerManager crawlerManager; + private String filmlistPath; + private FilmlistFormats format; + private int expectedSize; - public CrawlerManagerTest(final String aFilmlistPath, final FilmlistFormats aFormat, final int aExpectedSize) { + public void initCrawlerManagerTest(final String aFilmlistPath, final FilmlistFormats aFormat, final int aExpectedSize) { filmlistPath = aFilmlistPath; expectedSize = aExpectedSize; format = aFormat; @@ -48,7 +46,6 @@ public CrawlerManagerTest(final String aFilmlistPath, final FilmlistFormats aFor logger = LogManager.getLogger(CrawlerManagerTest.class); } - @Parameterized.Parameters(name = "Test {index} Filmlist for {0} with {1}") public static Collection data() { return Arrays.asList( new Object[][] { @@ -63,16 +60,16 @@ public static Collection data() { }); } - @AfterClass - public static void deleteTempFiles() throws IOException { + @AfterAll + static void deleteTempFiles() throws IOException { Files.walk(testFileFolderPath) .sorted(Comparator.reverseOrder()) .map(Path::toFile) .forEach(File::delete); } - @BeforeClass - public static void initTestData() throws Exception { + @BeforeAll + static void initTestData() throws Exception { testFileFolderPath = Files.createTempDirectory(formatWithDate(TEMP_FOLDER_NAME_PATTERN)); Files.createDirectory(testFileFolderPath.resolve("filmlists")); } @@ -84,7 +81,7 @@ private static String formatWithDate(final String aPattern) { @Override public void consumeMessage(final Message aMessage, final Object... aParameters) { if (MessageTypes.FATAL_ERROR.equals(aMessage.getMessageType())) { - Assert.fail(String.format(MessageUtil.getInstance().loadMessageText(aMessage), aParameters)); + Assertions.fail(String.format(MessageUtil.getInstance().loadMessageText(aMessage), aParameters)); } else { logger.info( String.format( @@ -94,8 +91,10 @@ public void consumeMessage(final Message aMessage, final Object... aParameters) } } - @Test - public void testSaveAndImport() { + @MethodSource("data") + @ParameterizedTest(name = "Test {index} Filmlist for {0} with {1}") + void testSaveAndImport(final String aFilmlistPath, final FilmlistFormats aFormat, final int aExpectedSize) { + initCrawlerManagerTest(aFilmlistPath, aFormat, aExpectedSize); final Path filmListFilePath = FileReader.getPath(filmlistPath); synchronized (crawlerManager) { crawlerManager.addMessageListener(this); diff --git a/src/test/java/de/mediathekview/mserver/crawler/WriteFilmlistHashFileTest.java b/src/test/java/de/mediathekview/mserver/crawler/WriteFilmlistHashFileTest.java index 10026c229..42f13d644 100644 --- a/src/test/java/de/mediathekview/mserver/crawler/WriteFilmlistHashFileTest.java +++ b/src/test/java/de/mediathekview/mserver/crawler/WriteFilmlistHashFileTest.java @@ -2,7 +2,7 @@ import de.mediathekview.mserver.daten.Filmlist; import de.mediathekview.mserver.filmlisten.FilmlistManager; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.io.IOException; import java.nio.file.Files; @@ -11,10 +11,10 @@ import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.equalTo; -public class WriteFilmlistHashFileTest { +class WriteFilmlistHashFileTest { @Test - public void testWriteFilmlistHashFile() throws IOException { + void testWriteFilmlistHashFile() throws IOException { final Path testHashFilePath = Files.createTempFile("filmlist", "hash"); final Filmlist filmlist = new Filmlist(); FilmlistManager.getInstance().writeHashFile(filmlist, testHashFilePath.toAbsolutePath()); diff --git a/src/test/java/de/mediathekview/mserver/crawler/WriteFilmlistIdFileTest.java b/src/test/java/de/mediathekview/mserver/crawler/WriteFilmlistIdFileTest.java index a1c5b713a..dd2c85799 100644 --- a/src/test/java/de/mediathekview/mserver/crawler/WriteFilmlistIdFileTest.java +++ b/src/test/java/de/mediathekview/mserver/crawler/WriteFilmlistIdFileTest.java @@ -2,7 +2,7 @@ import de.mediathekview.mserver.daten.Filmlist; import de.mediathekview.mserver.filmlisten.FilmlistManager; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.io.IOException; import java.nio.file.Files; @@ -11,10 +11,10 @@ import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.equalTo; -public class WriteFilmlistIdFileTest { +class WriteFilmlistIdFileTest { @Test - public void testWriteFilmlistIdFile() throws IOException { + void testWriteFilmlistIdFile() throws IOException { final Path testIdFilePath = Files.createTempFile("filmlist", "id"); final Filmlist filmlist = new Filmlist(); FilmlistManager.getInstance().writeIdFile(filmlist, testIdFilePath.toAbsolutePath()); diff --git a/src/test/java/de/mediathekview/mserver/crawler/ard/UrlOptimizerTest.java b/src/test/java/de/mediathekview/mserver/crawler/ard/UrlOptimizerTest.java index 9178ca37f..6791df584 100644 --- a/src/test/java/de/mediathekview/mserver/crawler/ard/UrlOptimizerTest.java +++ b/src/test/java/de/mediathekview/mserver/crawler/ard/UrlOptimizerTest.java @@ -1,78 +1,33 @@ package de.mediathekview.mserver.crawler.ard; import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.ArgumentMatchers.anyString; -import static org.mockito.Mockito.when; +import de.mediathekview.mserver.base.config.MServerConfigManager; +import de.mediathekview.mserver.base.messages.listener.MessageListener; +import de.mediathekview.mserver.daten.Resolution; +import de.mediathekview.mserver.progress.listeners.SenderProgressListener; import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Map; import java.util.concurrent.ForkJoinPool; import java.util.stream.Stream; - -import org.junit.Before; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; -import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; +import org.mockito.junit.jupiter.MockitoExtension; -import de.mediathekview.mserver.base.config.MServerConfigManager; -import de.mediathekview.mserver.base.messages.listener.MessageListener; -import de.mediathekview.mserver.daten.Resolution; -import de.mediathekview.mserver.progress.listeners.SenderProgressListener; - -public class UrlOptimizerTest { +@ExtendWith(MockitoExtension.class) +class UrlOptimizerTest { + protected MServerConfigManager rootConfig = new MServerConfigManager("MServer-JUnit-Config.yaml"); @Mock private ArdCrawler crawler; - @Before - public void setUp() { - MockitoAnnotations.openMocks(this); - - } - - @ParameterizedTest(name = "[{index}] adaptive={0}") - @MethodSource("dataM3UToUrls") - void testM3UToUrls(String adaptive, String sampleUrl, List expected) { - crawler = createCrawler(); - crawler = Mockito.mock(ArdCrawler.class); - when(crawler.requestUrlExists(anyString())).thenReturn(true); - UrlOptimizer urlOptimizer = new UrlOptimizer(crawler); - - Map actual = urlOptimizer.buildUrlsFromPlaylist(adaptive, sampleUrl); - assertThat(actual.values()).containsAll(expected); - } - - @Test - void singleTest() { - // https://manifest-arte.akamaized.net/api/manifest/v1/Generate/f620eafe-7d6d-4965-95cd-b11aea6e65d3/VOA-STA/XQ/129139-000-A.m3u8 - // https://manifest-arte.akamaized.net/api/manifest/v1/Generate/f620eafe-7d6d-4965-95cd-b11aea6e65d3/VOA-STA/XQ/129139-000-A.m3u8 - String adaptive = "https://manifest-arte.akamaized.net/api/manifest/v1/Generate/f620eafe-7d6d-4965-95cd-b11aea6e65d3/VOA-STA/XQ/129139-000-A.m3u8"; - String sampleUrl = "https://hrardmediathek-a.akamaihd.net/video/as/allgemein/2021_06/hrLogo_210619151025_0215626_512x288-25p-500kbit.mp4"; - crawler = createCrawler(); - //crawler = Mockito.mock(ArdCrawler.class); - //when(crawler.requestUrlExists(anyString())).thenReturn(true); - UrlOptimizer urlOptimizer = new UrlOptimizer(crawler); - Map actual = urlOptimizer.buildFilmUrlFromAdaptive(adaptive, sampleUrl); - System.out.println(urlOptimizer.printMap(actual)); - } - - protected MServerConfigManager rootConfig = new MServerConfigManager("MServer-JUnit-Config.yaml"); - protected ArdCrawler createCrawler() { - final ForkJoinPool forkJoinPool = new ForkJoinPool(); - final Collection nachrichten = new ArrayList<>(); - final Collection fortschritte = new ArrayList<>(); - - return new ArdCrawler(forkJoinPool, nachrichten, fortschritte, rootConfig); - } - - static Stream dataM3UToUrls() { return Stream.of( // ─────────────────────────────────────────────────────────────── @@ -359,7 +314,7 @@ static Stream dataM3UToUrls() { "https://pdodswr-a.akamaihd.net/swr/swraktuell/bw/tv/gesamtsendung/2292127.avc-1080.mp4" // 1920 ) ), - + // ─────────────────────────────────────────────────────────────── // 12. RB // ─────────────────────────────────────────────────────────────── @@ -373,7 +328,7 @@ static Stream dataM3UToUrls() { "https://rbprogressivedl-a.akamaihd.net/clips/zt/welt/pz/PZ4x6OtreF/PZ4x6OtreF1920x1080-50p.mp4" //1920 ) ), - + Arguments.of( "https://rbhlsod-vh.akamaihd.net/i/,clips/zt/welt/zs/zShs2LSY8I/zShs2LSY8I1920x1080-50p.mp4,clips/zt/welt/zs/zShs2LSY8I/zShs2LSY8I1280x720-50p.mp4,clips/zt/welt/zs/zShs2LSY8I/zShs2LSY8I960x540-50p.mp4,clips/zt/welt/zs/zShs2LSY8I/zShs2LSY8I640x360-50p.mp4,.csmil/master.m3u8", "https://rbprogressivedl-a.akamaihd.net/clips/zt/welt/zs/zShs2LSY8I/zShs2LSY8I1920x1080-50p.mp4", @@ -384,7 +339,7 @@ static Stream dataM3UToUrls() { "https://rbprogressivedl-a.akamaihd.net/clips/zt/welt/zs/zShs2LSY8I/zShs2LSY8I1920x1080-50p.mp4" // 1920 ) ), - + // ─────────────────────────────────────────────────────────────── // 13. DRA Deutsches Rundfunkarchive // ─────────────────────────────────────────────────────────────── @@ -398,7 +353,7 @@ static Stream dataM3UToUrls() { "https://dra-dd.akamaized.net/video/152870/349904/mp4/17Tagungder4VolkskammerderDDR-17Tagungder4VolkskammerderDDR_152870_349904_vod.1080.MP4" ) ), - + // ─────────────────────────────────────────────────────────────── // 14. ZDF // ─────────────────────────────────────────────────────────────── @@ -413,8 +368,39 @@ static Stream dataM3UToUrls() { "https://nrodlzdf-a.akamaihd.net/none/zdf/25/12/251218_trailer_kudamm77_hero_kud/1/251218_trailer_kudamm77_hero_kud_6628k_p61v17.mp4" // 1080 fhd ) ) - + ); } + + @ParameterizedTest(name = "[{index}] adaptive={0}") + @MethodSource("dataM3UToUrls") + void testM3UToUrls(String adaptive, String sampleUrl, List expected) { + crawler = createCrawler(); + crawler = Mockito.mock(ArdCrawler.class); + UrlOptimizer urlOptimizer = new UrlOptimizer(crawler); + + Map actual = urlOptimizer.buildUrlsFromPlaylist(adaptive, sampleUrl); + assertThat(actual.values()).containsAll(expected); + } + + @Test + void singleTest() { + // https://manifest-arte.akamaized.net/api/manifest/v1/Generate/f620eafe-7d6d-4965-95cd-b11aea6e65d3/VOA-STA/XQ/129139-000-A.m3u8 + // https://manifest-arte.akamaized.net/api/manifest/v1/Generate/f620eafe-7d6d-4965-95cd-b11aea6e65d3/VOA-STA/XQ/129139-000-A.m3u8 + String adaptive = "https://manifest-arte.akamaized.net/api/manifest/v1/Generate/f620eafe-7d6d-4965-95cd-b11aea6e65d3/VOA-STA/XQ/129139-000-A.m3u8"; + String sampleUrl = "https://hrardmediathek-a.akamaihd.net/video/as/allgemein/2021_06/hrLogo_210619151025_0215626_512x288-25p-500kbit.mp4"; + crawler = createCrawler(); + UrlOptimizer urlOptimizer = new UrlOptimizer(crawler); + Map actual = urlOptimizer.buildFilmUrlFromAdaptive(adaptive, sampleUrl); + System.out.println(urlOptimizer.printMap(actual)); + } + + protected ArdCrawler createCrawler() { + final ForkJoinPool forkJoinPool = new ForkJoinPool(); + final Collection nachrichten = new ArrayList<>(); + final Collection fortschritte = new ArrayList<>(); + + return new ArdCrawler(forkJoinPool, nachrichten, fortschritte, rootConfig); + } } diff --git a/src/test/java/de/mediathekview/mserver/crawler/ard/json/ArdDayPageDeserializerTest.java b/src/test/java/de/mediathekview/mserver/crawler/ard/json/ArdDayPageDeserializerTest.java index 5a1a82802..08ff3dc6c 100644 --- a/src/test/java/de/mediathekview/mserver/crawler/ard/json/ArdDayPageDeserializerTest.java +++ b/src/test/java/de/mediathekview/mserver/crawler/ard/json/ArdDayPageDeserializerTest.java @@ -5,17 +5,17 @@ import de.mediathekview.mserver.crawler.ard.ArdFilmInfoDto; import de.mediathekview.mserver.testhelper.JsonFileReader; import org.hamcrest.Matchers; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.Set; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.MatcherAssert.assertThat; -public class ArdDayPageDeserializerTest { +class ArdDayPageDeserializerTest { @Test - public void testDeserialize() { + void testDeserialize() { final JsonElement jsonElement = JsonFileReader.readJson("/ard/ard_day_page.json"); final ArdFilmInfoDto[] expected = diff --git a/src/test/java/de/mediathekview/mserver/crawler/ard/json/ArdErrorDeserializerTest.java b/src/test/java/de/mediathekview/mserver/crawler/ard/json/ArdErrorDeserializerTest.java index 06d6d0b54..6e85564b2 100644 --- a/src/test/java/de/mediathekview/mserver/crawler/ard/json/ArdErrorDeserializerTest.java +++ b/src/test/java/de/mediathekview/mserver/crawler/ard/json/ArdErrorDeserializerTest.java @@ -2,17 +2,17 @@ import com.google.gson.JsonElement; import de.mediathekview.mserver.testhelper.JsonFileReader; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.Optional; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.MatcherAssert.assertThat; -public class ArdErrorDeserializerTest { +class ArdErrorDeserializerTest { @Test - public void deserializeTestNoError() { + void deserializeTestNoError() { final JsonElement jsonElement = JsonFileReader.readJson("/ard/ard_day_page1.json"); final ArdErrorDeserializer target = new ArdErrorDeserializer(); @@ -22,7 +22,7 @@ public void deserializeTestNoError() { } @Test - public void deserializeTestQueryNotFoundError() { + void deserializeTestQueryNotFoundError() { final JsonElement jsonElement = JsonFileReader.readJson("/ard/ard_error_page_query_not_found.json"); final ArdErrorInfoDto expected = @@ -36,7 +36,7 @@ public void deserializeTestQueryNotFoundError() { } @Test - public void deserializeTestInternalServerError() { + void deserializeTestInternalServerError() { final JsonElement jsonElement = JsonFileReader.readJson("/ard/ard_error_page_internal_server_error.json"); diff --git a/src/test/java/de/mediathekview/mserver/crawler/ard/json/ArdFilmDeserializerErrorTest.java b/src/test/java/de/mediathekview/mserver/crawler/ard/json/ArdFilmDeserializerErrorTest.java index db608ec8d..10a30190f 100644 --- a/src/test/java/de/mediathekview/mserver/crawler/ard/json/ArdFilmDeserializerErrorTest.java +++ b/src/test/java/de/mediathekview/mserver/crawler/ard/json/ArdFilmDeserializerErrorTest.java @@ -7,9 +7,8 @@ import de.mediathekview.mserver.crawler.ard.ArdFilmDto; import de.mediathekview.mserver.progress.listeners.SenderProgressListener; import de.mediathekview.mserver.testhelper.JsonFileReader; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; import java.util.ArrayList; import java.util.Arrays; @@ -20,14 +19,10 @@ import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.MatcherAssert.assertThat; -@RunWith(Parameterized.class) public class ArdFilmDeserializerErrorTest { protected MServerConfigManager rootConfig = new MServerConfigManager("MServer-JUnit-Config.yaml"); - private final String jsonFile; - - @Parameterized.Parameters public static Collection data() { return Arrays.asList( new Object[][] { @@ -35,14 +30,11 @@ public static Collection data() { }); } - public ArdFilmDeserializerErrorTest(final String jsonFile) { - this.jsonFile = jsonFile; - } - - @Test - public void testFilmNoVideo() { + @MethodSource("data") + @ParameterizedTest + void testFilmNoVideo(final String jsonFile) { - final JsonElement jsonElement = JsonFileReader.readJson("/ard/ard_film_page_fsk_day11.json"); + final JsonElement jsonElement = JsonFileReader.readJson(jsonFile); final ArdFilmDeserializer target = new ArdFilmDeserializer(createCrawler()); final List actualFilms = target.deserialize(jsonElement, null, null); diff --git a/src/test/java/de/mediathekview/mserver/crawler/ard/json/ArdFilmDeserializerTest.java b/src/test/java/de/mediathekview/mserver/crawler/ard/json/ArdFilmDeserializerTest.java index 139de6b55..795be9cfb 100644 --- a/src/test/java/de/mediathekview/mserver/crawler/ard/json/ArdFilmDeserializerTest.java +++ b/src/test/java/de/mediathekview/mserver/crawler/ard/json/ArdFilmDeserializerTest.java @@ -13,78 +13,18 @@ import de.mediathekview.mserver.progress.listeners.SenderProgressListener; import de.mediathekview.mserver.testhelper.AssertFilm; import de.mediathekview.mserver.testhelper.JsonFileReader; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; + import java.time.Duration; import java.time.LocalDateTime; import java.util.*; import java.util.concurrent.ForkJoinPool; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; -@RunWith(Parameterized.class) public class ArdFilmDeserializerTest { - private final String jsonFile; - private final String expectedTopic; - private final String expectedTitle; - private final String expectedDescription; - private final LocalDateTime expectedDateTime; - private final Duration expectedDuration; - private final String expectedUrlSmall; - private final String expectedUrlNormal; - private final String expectedUrlHd; - private final String expectedADUrlSmall; - private final String expectedADUrlNormal; - private final String expectedADUrlHd; - private final String expectedDGSUrlSmall; - private final String expectedDGSUrlNormal; - private final String expectedDGSUrlHd; - private final String expectedSubtitle; - private final GeoLocations expectedGeo; - private final Optional additionalSender; - protected MServerConfigManager rootConfig = new MServerConfigManager("MServer-JUnit-Config.yaml"); - public ArdFilmDeserializerTest( - final String jsonFile, - final String expectedTopic, - final String expectedTitle, - final String expectedDescription, - final LocalDateTime expectedDateTime, - final Duration expectedDuration, - final String expectedUrlSmall, - final String expectedUrlNormal, - final String expectedUrlHd, - final String expectedADUrlSmall, - final String expectedADUrlNormal, - final String expectedADUrlHd, - final String expectedDGSUrlSmall, - final String expectedDGSUrlNormal, - final String expectedDGSUrlHd, - final String expectedSubtitle, - final GeoLocations expectedGeo, - final Optional additionalSender) { - this.jsonFile = jsonFile; - this.expectedTopic = expectedTopic; - this.expectedTitle = expectedTitle; - this.expectedDescription = expectedDescription; - this.expectedDateTime = expectedDateTime; - this.expectedDuration = expectedDuration; - this.expectedUrlSmall = expectedUrlSmall; - this.expectedUrlNormal = expectedUrlNormal; - this.expectedUrlHd = expectedUrlHd; - this.expectedADUrlSmall = expectedADUrlSmall; - this.expectedADUrlNormal = expectedADUrlNormal; - this.expectedADUrlHd = expectedADUrlHd; - this.expectedDGSUrlSmall = expectedDGSUrlSmall; - this.expectedDGSUrlNormal = expectedDGSUrlNormal; - this.expectedDGSUrlHd = expectedDGSUrlHd; - this.expectedSubtitle = expectedSubtitle; - this.expectedGeo = expectedGeo; - this.additionalSender = additionalSender; - } - - @Parameterized.Parameters public static Collection data() { return Arrays.asList( new Object[][] { @@ -371,8 +311,9 @@ public static Collection data() { }); } - @Test - public void test() { + @MethodSource("data") + @ParameterizedTest + void test(final String jsonFile, final String expectedTopic, final String expectedTitle, final String expectedDescription, final LocalDateTime expectedDateTime, final Duration expectedDuration, final String expectedUrlSmall, final String expectedUrlNormal, final String expectedUrlHd, final String expectedADUrlSmall, final String expectedADUrlNormal, final String expectedADUrlHd, final String expectedDGSUrlSmall, final String expectedDGSUrlNormal, final String expectedDGSUrlHd, final String expectedSubtitle, final GeoLocations expectedGeo, final Optional additionalSender) { final JsonElement jsonElement = JsonFileReader.readJson(jsonFile); diff --git a/src/test/java/de/mediathekview/mserver/crawler/ard/json/ArdTopicPageDeserializerPaginationTest.java b/src/test/java/de/mediathekview/mserver/crawler/ard/json/ArdTopicPageDeserializerPaginationTest.java index 8c3f23051..0e3df1934 100644 --- a/src/test/java/de/mediathekview/mserver/crawler/ard/json/ArdTopicPageDeserializerPaginationTest.java +++ b/src/test/java/de/mediathekview/mserver/crawler/ard/json/ArdTopicPageDeserializerPaginationTest.java @@ -3,14 +3,14 @@ import com.google.gson.JsonElement; import de.mediathekview.mserver.crawler.ard.ArdTopicInfoDto; import de.mediathekview.mserver.testhelper.JsonFileReader; -import org.junit.Test; +import org.junit.jupiter.api.Test; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; -public class ArdTopicPageDeserializerPaginationTest { +class ArdTopicPageDeserializerPaginationTest { @Test - public void testDeserializePagination() { + void testDeserializePagination() { final JsonElement jsonElement = JsonFileReader.readJson("/ard/ard_topic_pagination.json"); final ArdTopicPageDeserializer instance = new ArdTopicPageDeserializer(); diff --git a/src/test/java/de/mediathekview/mserver/crawler/ard/json/ArdTopicPageDeserializerTest.java b/src/test/java/de/mediathekview/mserver/crawler/ard/json/ArdTopicPageDeserializerTest.java index 98a2ed9c1..60115693d 100644 --- a/src/test/java/de/mediathekview/mserver/crawler/ard/json/ArdTopicPageDeserializerTest.java +++ b/src/test/java/de/mediathekview/mserver/crawler/ard/json/ArdTopicPageDeserializerTest.java @@ -7,16 +7,16 @@ import de.mediathekview.mserver.crawler.ard.ArdTopicInfoDto; import de.mediathekview.mserver.testhelper.JsonFileReader; import org.hamcrest.Matchers; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.Set; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.MatcherAssert.assertThat; -public class ArdTopicPageDeserializerTest { +class ArdTopicPageDeserializerTest { @Test - public void testDeserialize() { + void testDeserialize() { final JsonElement jsonElement = JsonFileReader.readJson("/ard/ard_topic.json"); ArdFilmInfoDto[] expected = @@ -58,7 +58,7 @@ public void testDeserialize() { } @Test - public void testDeserializeWithCompilation() { + void testDeserializeWithCompilation() { final JsonElement jsonElement = JsonFileReader.readJson("/ard/ard_topic_page_with_compilations.json"); final ArdTopicPageDeserializer instance = new ArdTopicPageDeserializer(); diff --git a/src/test/java/de/mediathekview/mserver/crawler/ard/json/ArdTopicsDeserializerTest.java b/src/test/java/de/mediathekview/mserver/crawler/ard/json/ArdTopicsDeserializerTest.java index 8f0d1cc77..d4b94a7bd 100644 --- a/src/test/java/de/mediathekview/mserver/crawler/ard/json/ArdTopicsDeserializerTest.java +++ b/src/test/java/de/mediathekview/mserver/crawler/ard/json/ArdTopicsDeserializerTest.java @@ -1,12 +1,12 @@ package de.mediathekview.mserver.crawler.ard.json; +import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.jupiter.api.Assertions.*; import com.google.gson.JsonElement; import de.mediathekview.mserver.crawler.basic.CrawlerUrlDTO; import de.mediathekview.mserver.testhelper.JsonFileReader; import java.util.Set; -import org.hamcrest.MatcherAssert; import org.hamcrest.Matchers; import org.junit.jupiter.api.Test; @@ -55,6 +55,6 @@ void testDeserialize() { final Set actual = target.deserialize(jsonElement, null, null); assertEquals(expected.length, actual.size()); - MatcherAssert.assertThat(actual, Matchers.containsInAnyOrder(expected)); + assertThat(actual, Matchers.containsInAnyOrder(expected)); } } diff --git a/src/test/java/de/mediathekview/mserver/crawler/ard/json/ArdTopicsLetterDeserializerTest.java b/src/test/java/de/mediathekview/mserver/crawler/ard/json/ArdTopicsLetterDeserializerTest.java index ad3b0c209..aa0513ec5 100644 --- a/src/test/java/de/mediathekview/mserver/crawler/ard/json/ArdTopicsLetterDeserializerTest.java +++ b/src/test/java/de/mediathekview/mserver/crawler/ard/json/ArdTopicsLetterDeserializerTest.java @@ -5,15 +5,15 @@ import de.mediathekview.mserver.crawler.basic.CrawlerUrlDTO; import de.mediathekview.mserver.testhelper.JsonFileReader; import org.hamcrest.Matchers; -import org.junit.Test; +import org.junit.jupiter.api.Test; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.MatcherAssert.assertThat; -public class ArdTopicsLetterDeserializerTest { +class ArdTopicsLetterDeserializerTest { @Test - public void testDeserialize() { + void testDeserialize() { final JsonElement jsonElement = JsonFileReader.readJson("/ard/ard_topic_page.json"); final CrawlerUrlDTO[] expected = diff --git a/src/test/java/de/mediathekview/mserver/crawler/ard/json/ArdVideoInfoJsonDeserializerTest.java b/src/test/java/de/mediathekview/mserver/crawler/ard/json/ArdVideoInfoJsonDeserializerTest.java index 5291a352e..9b3466c51 100644 --- a/src/test/java/de/mediathekview/mserver/crawler/ard/json/ArdVideoInfoJsonDeserializerTest.java +++ b/src/test/java/de/mediathekview/mserver/crawler/ard/json/ArdVideoInfoJsonDeserializerTest.java @@ -8,9 +8,8 @@ import de.mediathekview.mserver.progress.listeners.SenderProgressListener; import de.mediathekview.mserver.testhelper.JsonFileReader; import de.mediathekview.mserver.testhelper.WireMockTestBase; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; import java.util.ArrayList; import java.util.Arrays; @@ -21,32 +20,8 @@ import static org.hamcrest.CoreMatchers.notNullValue; import static org.hamcrest.MatcherAssert.assertThat; -@RunWith(Parameterized.class) public class ArdVideoInfoJsonDeserializerTest extends WireMockTestBase { - private final String jsonFile; - private final String m3u8Url; - private final String m3u8File; - private final String expectedUrlSmall; - private final String expectedUrlNormal; - private final String expectedUrlHd; - - public ArdVideoInfoJsonDeserializerTest( - final String aJsonFile, - final String aM3u8Url, - final String aM3u8File, - final String aUrlSmall, - final String aUrlNormal, - final String aUrlHd) { - jsonFile = aJsonFile; - m3u8Url = aM3u8Url; - m3u8File = aM3u8File; - expectedUrlSmall = aUrlSmall; - expectedUrlNormal = aUrlNormal; - expectedUrlHd = aUrlHd; - } - - @Parameterized.Parameters public static Collection data() { return Arrays.asList( new Object[][] { @@ -181,8 +156,9 @@ public static Collection data() { }); } - @Test - public void deserializeTest() { + @MethodSource("data") + @ParameterizedTest + void deserializeTest(final String jsonFile, final String m3u8Url, final String m3u8File, final String expectedUrlSmall, final String expectedUrlNormal, final String expectedUrlHd) { final JsonElement jsonElement = JsonFileReader.readJsonWithTextModification(jsonFile, this::fixupAllWireMockUrls); diff --git a/src/test/java/de/mediathekview/mserver/crawler/ard/tasks/ArdFilmDetailTaskTest.java b/src/test/java/de/mediathekview/mserver/crawler/ard/tasks/ArdFilmDetailTaskTest.java index 03f94cdb2..f522d40a2 100644 --- a/src/test/java/de/mediathekview/mserver/crawler/ard/tasks/ArdFilmDetailTaskTest.java +++ b/src/test/java/de/mediathekview/mserver/crawler/ard/tasks/ArdFilmDetailTaskTest.java @@ -5,10 +5,8 @@ import de.mediathekview.mserver.daten.Sender; import de.mediathekview.mserver.crawler.ard.ArdFilmInfoDto; import de.mediathekview.mserver.testhelper.AssertFilm; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; -import org.junit.runners.Parameterized.Parameters; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; import java.time.Duration; import java.time.LocalDateTime; @@ -23,68 +21,8 @@ import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.MatcherAssert.assertThat; -@RunWith(Parameterized.class) public class ArdFilmDetailTaskTest extends ArdTaskTestBase { - private final Map urlStub; - private final String crawlerUrl; - private final String expectedTopic; - private final String expectedTitle; - private final LocalDateTime expectedTime; - private final Duration expectedDuration; - private final String expectedDescription; - private final String expectedWebsite; - private final String expectedUrlSmall; - private final String expectedUrlNormal; - private final String expectedUrlHd; - private final String expectedADUrlSmall; - private final String expectedADUrlNormal; - private final String expectedADUrlHd; - private final String expectedSubtitle; - private final GeoLocations expectedGeo; - private final String id; - private final Sender sender; - - public ArdFilmDetailTaskTest( - final String aId, - final String aCrawlerUrl, - final Map aUrlStub, - final String aExpectedTopic, - final String aExpectedTitle, - final String aExpectedDescription, - final LocalDateTime aExpectedTime, - final Duration aExpectedDuration, - final String aExpectedUrlSmall, - final String aExpectedUrlNormal, - final String aExpectedUrlHd, - final String aExpectedADUrlSmall, - final String aExpectedADUrlNormal, - final String aExpectedADUrlHd, - final String aExpectedSubtitle, - final GeoLocations aExpectedGeo, - final String aExpectedWebsite, - final Sender aSender) { - id = aId; - crawlerUrl = aCrawlerUrl; - urlStub = aUrlStub; - expectedTopic = aExpectedTopic; - expectedTitle = aExpectedTitle; - expectedTime = aExpectedTime; - expectedDuration = aExpectedDuration; - expectedDescription = aExpectedDescription; - expectedWebsite = aExpectedWebsite; - expectedUrlSmall = aExpectedUrlSmall; - expectedUrlNormal = aExpectedUrlNormal; - expectedUrlHd = aExpectedUrlHd; - expectedADUrlSmall = aExpectedADUrlSmall; - expectedADUrlNormal = aExpectedADUrlNormal; - expectedADUrlHd = aExpectedADUrlHd; - expectedSubtitle = aExpectedSubtitle; - expectedGeo = aExpectedGeo; - sender = aSender; - } - - @Parameters public static Collection data() { return Arrays.asList( new Object[][] { @@ -114,14 +52,15 @@ public static Collection data() { }); } - @Test - public void test() { - + @MethodSource("data") + @ParameterizedTest + void test(final String id, final String crawlerUrl, final Map urlStub, final String expectedTopic, final String expectedTitle, final String expectedDescription, final LocalDateTime expectedTime, final Duration expectedDuration, final String expectedUrlSmall, final String expectedUrlNormal, final String expectedUrlHd, final String expectedADUrlSmall, final String expectedADUrlNormal, final String expectedADUrlHd, final String expectedSubtitle, final GeoLocations expectedGeo, final String expectedWebsite, final Sender sender) { + for (Entry entry : urlStub.entrySet()) { setupSuccessfulJsonResponse(entry.getKey(), entry.getValue()); } - final Set actual = executeTask(crawlerUrl); + final Set actual = executeTask(id, crawlerUrl); assertThat(actual.size(), equalTo(1)); @@ -147,7 +86,7 @@ public void test() { expectedSubtitle); } - private Set executeTask(final String aDetailUrl) { + private Set executeTask(final String id, final String aDetailUrl) { final Queue urls = new ConcurrentLinkedQueue<>(); urls.add(new ArdFilmInfoDto(id, getWireMockBaseUrlSafe() + aDetailUrl, 0, false)); return new ArdFilmDetailTask(createCrawler(), urls).invoke(); diff --git a/src/test/java/de/mediathekview/mserver/crawler/ard/tasks/ArdTopicPageTaskTest.java b/src/test/java/de/mediathekview/mserver/crawler/ard/tasks/ArdTopicPageTaskTest.java index 56ec9f7cb..460e069ec 100644 --- a/src/test/java/de/mediathekview/mserver/crawler/ard/tasks/ArdTopicPageTaskTest.java +++ b/src/test/java/de/mediathekview/mserver/crawler/ard/tasks/ArdTopicPageTaskTest.java @@ -1,9 +1,9 @@ package de.mediathekview.mserver.crawler.ard.tasks; import de.mediathekview.mserver.daten.Sender; +import org.junit.jupiter.api.Test; import de.mediathekview.mserver.crawler.ard.ArdFilmInfoDto; import de.mediathekview.mserver.crawler.basic.CrawlerUrlDTO; -import org.junit.Test; import java.util.Queue; import java.util.Set; @@ -12,10 +12,10 @@ import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.MatcherAssert.assertThat; -public class ArdTopicPageTaskTest extends ArdTaskTestBase { +class ArdTopicPageTaskTest extends ArdTaskTestBase { @Test - public void testNoPagination() { + void testNoPagination() { rootConfig.getSenderConfig(Sender.ARD).setMaximumSubpages(5); final String filmUrl = @@ -28,7 +28,7 @@ public void testNoPagination() { } @Test - public void testPaginationLoadOnlyOneSubpage() { + void testPaginationLoadOnlyOneSubpage() { rootConfig.getSenderConfig(Sender.ARD).setMaximumSubpages(1); final String filmUrl = @@ -47,7 +47,7 @@ public void testPaginationLoadOnlyOneSubpage() { } @Test - public void testPaginationLoadAllWithMaxSubpagesHigherThanPageCount() { + void testPaginationLoadAllWithMaxSubpagesHigherThanPageCount() { rootConfig.getSenderConfig(Sender.ARD).setMaximumSubpages(10); final String filmUrl = diff --git a/src/test/java/de/mediathekview/mserver/crawler/arte/tasks/ArteDtoVideo2FilmTaskTest.java b/src/test/java/de/mediathekview/mserver/crawler/arte/tasks/ArteDtoVideo2FilmTaskTest.java index 1ee3b1f88..d5c944f32 100644 --- a/src/test/java/de/mediathekview/mserver/crawler/arte/tasks/ArteDtoVideo2FilmTaskTest.java +++ b/src/test/java/de/mediathekview/mserver/crawler/arte/tasks/ArteDtoVideo2FilmTaskTest.java @@ -8,11 +8,11 @@ import de.mediathekview.mserver.daten.Resolution; import de.mediathekview.mserver.daten.Sender; import de.mediathekview.mserver.testhelper.WireMockTestBase; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; import java.net.MalformedURLException; +import java.net.URI; import java.net.URL; import java.time.Duration; import java.time.LocalDateTime; @@ -24,18 +24,8 @@ import static org.hamcrest.Matchers.*; import static org.junit.jupiter.api.Assertions.assertEquals; -@RunWith(Parameterized.class) public class ArteDtoVideo2FilmTaskTest extends WireMockTestBase { - private final String inputResource; - private final Film[] expectedFilms; - - public ArteDtoVideo2FilmTaskTest(String inputResource, Film[] expectedFilms) { - this.inputResource = inputResource; - this.expectedFilms = expectedFilms; - } - - @Parameterized.Parameters public static Collection data() { Film film1 = new Film( UUID.randomUUID(), @@ -285,22 +275,22 @@ public static Collection data() { }); } - private String getVideoInfoUrl() { - return getWireMockBaseUrlSafe() + this.inputResource + "_videos.json"; + private String getVideoInfoUrl(String inputResource) { + return getWireMockBaseUrlSafe() + inputResource + "_videos.json"; } - private String getVideoLinkUrl() { - return getWireMockBaseUrlSafe() + this.inputResource + "_links.json"; + private String getVideoLinkUrl(String inputResource) { + return getWireMockBaseUrlSafe() + inputResource + "_links.json"; } - private Set executeArteVideoInfoTask() { + private Set executeArteVideoInfoTask(String inputResource) { Queue input = new ConcurrentLinkedQueue<>(); - input.add(new TopicUrlDTO("", getVideoInfoUrl())); + input.add(new TopicUrlDTO("", getVideoInfoUrl(inputResource))); return new ArteVideoInfoTask(ArteTaskTestBase.createCrawler(), input, 1).invoke(); } - private Set executeArteVideoLinkTask(ArteVideoInfoDto info) { + private Set executeArteVideoLinkTask(ArteVideoInfoDto info, String inputResource) { Queue input = new ConcurrentLinkedQueue<>(); - info.setUrl(getVideoLinkUrl()); + info.setUrl(getVideoLinkUrl(inputResource)); input.add(info); return new ArteVideoLinkTask(ArteTaskTestBase.createCrawler(), input).invoke(); } @@ -311,18 +301,19 @@ private Set executeArteDtoVideo2FilmTask(ArteVideoInfoDto info) { return new ArteDtoVideo2FilmTask(ArteTaskTestBase.createCrawler(), input).invoke(); } - @Test - public void testFilmParsing() { - setupSuccessfulJsonResponse(this.inputResource + "_videos.json", this.inputResource + "_videos.json"); - setupSuccessfulJsonResponse(this.inputResource + "_links.json", this.inputResource + "_links.json"); + @MethodSource("data") + @ParameterizedTest + void testFilmParsing(String inputResource, Film[] expectedFilms) { + setupSuccessfulJsonResponse(inputResource + "_videos.json", inputResource + "_videos.json"); + setupSuccessfulJsonResponse(inputResource + "_links.json", inputResource + "_links.json"); setupHeadRequestForFileSize(); // create info - Set infos = executeArteVideoInfoTask(); + Set infos = executeArteVideoInfoTask(inputResource); assertThat(infos, is(not(empty()))); // get all videolinks - Set enriched = executeArteVideoLinkTask(infos.stream().findFirst().get()); + Set enriched = executeArteVideoLinkTask(infos.stream().findFirst().get(), inputResource); assertThat(enriched, is(not(empty()))); // convert to film @@ -331,7 +322,6 @@ public void testFilmParsing() { assertThat(actualFilms.size(), is(expectedFilms.length)); for (int i = 0; i < expectedFilms.length; i++) { - //assertFilm(actualFilms.toArray(new Film[0])[i], expectedFilms[i]); String title = expectedFilms[i].getTitel(); assertFilm(actualFilms.stream().filter(film -> title.equalsIgnoreCase(film.getTitel())).findAny().get(), expectedFilms[i]); } @@ -375,7 +365,7 @@ public void assertFilm(Film act, Film exp) { public static URL toUrl(String url) { try { - return new URL(url); + return URI.create(url).toURL(); } catch (MalformedURLException e) { // unit test - no exception needed } diff --git a/src/test/java/de/mediathekview/mserver/crawler/arte/tasks/ArteVideoInfoTaskTest.java b/src/test/java/de/mediathekview/mserver/crawler/arte/tasks/ArteVideoInfoTaskTest.java index 3f28fc7c2..c67259591 100644 --- a/src/test/java/de/mediathekview/mserver/crawler/arte/tasks/ArteVideoInfoTaskTest.java +++ b/src/test/java/de/mediathekview/mserver/crawler/arte/tasks/ArteVideoInfoTaskTest.java @@ -1,7 +1,7 @@ package de.mediathekview.mserver.crawler.arte.tasks; -import static org.junit.Assert.assertTrue; import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.List; @@ -10,16 +10,15 @@ import java.util.Set; import java.util.concurrent.ConcurrentLinkedQueue; -import org.junit.Test; - import de.mediathekview.mserver.crawler.arte.json.ArteVideoInfoDto; import de.mediathekview.mserver.crawler.basic.TopicUrlDTO; import de.mediathekview.mserver.testhelper.WireMockTestBase; +import org.junit.jupiter.api.Test; -public class ArteVideoInfoTaskTest extends WireMockTestBase { +class ArteVideoInfoTaskTest extends WireMockTestBase { @Test - public void test() { + void test() { setupSuccessfulJsonResponse("/arte_videos1", "/arte/arte_videos_1.json"); Set result = executeTask("/arte_videos1"); List>> expectedResult = generateExpectedResult(); diff --git a/src/test/java/de/mediathekview/mserver/crawler/arte/tasks/ArteVideoLinkTaskTest.java b/src/test/java/de/mediathekview/mserver/crawler/arte/tasks/ArteVideoLinkTaskTest.java index e4ccadefd..3f7e6d28d 100644 --- a/src/test/java/de/mediathekview/mserver/crawler/arte/tasks/ArteVideoLinkTaskTest.java +++ b/src/test/java/de/mediathekview/mserver/crawler/arte/tasks/ArteVideoLinkTaskTest.java @@ -9,37 +9,26 @@ import java.util.Set; import java.util.concurrent.ConcurrentLinkedQueue; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; -import org.junit.runners.Parameterized.Parameters; - import de.mediathekview.mserver.crawler.arte.json.ArteVideoInfoDto; import de.mediathekview.mserver.crawler.arte.json.ArteVideoLinkDto; import de.mediathekview.mserver.testhelper.WireMockTestBase; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; -@RunWith(Parameterized.class) public class ArteVideoLinkTaskTest extends WireMockTestBase { - private final String filmUrl; - private final ArteVideoLinkDto[] arteVideoLinkDtoData; - - public ArteVideoLinkTaskTest(String filmUrl, ArteVideoLinkDto[] arteVideoLinkDtoData) { - this.filmUrl=filmUrl; - this.arteVideoLinkDtoData = arteVideoLinkDtoData; - } - - - @Test - public void test() { - setupSuccessfulJsonResponse(this.filmUrl, this.filmUrl); - Set resultSet = executeTask(buildWireMockUrl(this.filmUrl)); + + @MethodSource("data") + @ParameterizedTest + void test(String filmUrl, ArteVideoLinkDto[] arteVideoLinkDtoData) { + setupSuccessfulJsonResponse(filmUrl, filmUrl); + Set resultSet = executeTask(buildWireMockUrl(filmUrl)); assertEquals(1, resultSet.size()); ArteVideoInfoDto result = resultSet.stream().findAny().get(); - assertEquals(result.getVideoLinks().size(), this.arteVideoLinkDtoData.length); + assertEquals(result.getVideoLinks().size(), arteVideoLinkDtoData.length); // - for (int i = 0; i < this.arteVideoLinkDtoData.length; i++) { - assertEntry(result.getVideoLinks().get(i), this.arteVideoLinkDtoData[i]); + for (int i = 0; i < arteVideoLinkDtoData.length; i++) { + assertEntry(result.getVideoLinks().get(i), arteVideoLinkDtoData[i]); } } @@ -65,7 +54,6 @@ private Set executeTask(String... requestUrl) { return new ArteVideoLinkTask(ArteTaskTestBase.createCrawler(), input).invoke(); } - @Parameters public static Collection data() { return Arrays.asList( new Object[][] { diff --git a/src/test/java/de/mediathekview/mserver/crawler/basic/IgnoreFilmFilterTest.java b/src/test/java/de/mediathekview/mserver/crawler/basic/IgnoreFilmFilterTest.java index 60914a5d1..c67ee760b 100644 --- a/src/test/java/de/mediathekview/mserver/crawler/basic/IgnoreFilmFilterTest.java +++ b/src/test/java/de/mediathekview/mserver/crawler/basic/IgnoreFilmFilterTest.java @@ -1,9 +1,7 @@ package de.mediathekview.mserver.crawler.basic; -import org.junit.Before; -import org.junit.Test; -import org.junit.rules.TemporaryFolder; - +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import de.mediathekview.mserver.daten.Film; import de.mediathekview.mserver.daten.Sender; import de.mediathekview.mserver.testhelper.WireMockTestBase; @@ -15,19 +13,19 @@ import java.io.File; import java.io.FileWriter; import java.io.IOException; +import java.nio.file.Files; import java.time.Duration; import java.time.LocalDateTime; import java.util.UUID; -public class IgnoreFilmFilterTest extends WireMockTestBase { +class IgnoreFilmFilterTest extends WireMockTestBase { File externalFile; - @Before - public void setUp() { + @BeforeEach + void setUp() { try { - TemporaryFolder folder = new TemporaryFolder(); - folder.create(); - externalFile = folder.newFile( "testfile1.txt" ); + File folder = Files.createTempDirectory("junit").toFile(); + externalFile = newFile(folder, "testfile1.txt"); FileWriter fw1 = new FileWriter( externalFile ); BufferedWriter bw1 = new BufferedWriter( fw1 ); bw1.write( "content for testfile1\n\n\n\n"); @@ -42,7 +40,7 @@ public void setUp() { } @Test - public void filterTest() { + void filterTest() { final IgnoreFilmFilter ignoreFilmFilterForClasspath = new IgnoreFilmFilter("ignoreFilmlist.txt"); final IgnoreFilmFilter ignoreFilmFilterForExternal = new IgnoreFilmFilter(externalFile.getAbsolutePath()); final IgnoreFilmFilter ignoreFilmFilterForHttp = new IgnoreFilmFilter(this.getWireMockBaseUrlSafe()+"/list/ignoreFilmlistAsHttp.txt"); @@ -64,4 +62,10 @@ public void filterTest() { assertThat(ignoreFilmFilterForClasspath.ignoreFilm(filmNegativ1), equalTo(false)); } + private static File newFile(File parent, String child) throws IOException { + File result = new File(parent, child); + result.createNewFile(); + return result; + } + } diff --git a/src/test/java/de/mediathekview/mserver/crawler/basic/M3U8DtoGetResolutionTest.java b/src/test/java/de/mediathekview/mserver/crawler/basic/M3U8DtoGetResolutionTest.java index 140c1cd31..a0561cf26 100644 --- a/src/test/java/de/mediathekview/mserver/crawler/basic/M3U8DtoGetResolutionTest.java +++ b/src/test/java/de/mediathekview/mserver/crawler/basic/M3U8DtoGetResolutionTest.java @@ -1,9 +1,8 @@ package de.mediathekview.mserver.crawler.basic; import de.mediathekview.mserver.daten.Resolution; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; import java.util.Arrays; import java.util.Collection; @@ -12,25 +11,8 @@ import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.MatcherAssert.assertThat; -@RunWith(Parameterized.class) public class M3U8DtoGetResolutionTest { - private final Optional expectedResolution; - private final M3U8Dto target; - public M3U8DtoGetResolutionTest( - final String aUrl, - final String aCodec, - final String aResolution, - final Optional aExpectedResolution) { - - target = new M3U8Dto(aUrl); - target.addMeta(M3U8Constants.M3U8_CODECS, aCodec); - target.addMeta(M3U8Constants.M3U8_RESOLUTION, aResolution); - - expectedResolution = aExpectedResolution; - } - - @Parameterized.Parameters public static Collection data() { return Arrays.asList( new Object[][] { @@ -47,8 +29,12 @@ public static Collection data() { }); } - @Test - public void getResolutionTest() { + @MethodSource("data") + @ParameterizedTest + void getResolutionTest(final String aUrl, final String aCodec, final String aResolution, final Optional expectedResolution) { + M3U8Dto target = new M3U8Dto(aUrl); + target.addMeta(M3U8Constants.M3U8_CODECS, aCodec); + target.addMeta(M3U8Constants.M3U8_RESOLUTION, aResolution); final Optional actual = target.getResolution(); assertThat(actual, equalTo(expectedResolution)); diff --git a/src/test/java/de/mediathekview/mserver/crawler/basic/M3U8DtoTest.java b/src/test/java/de/mediathekview/mserver/crawler/basic/M3U8DtoTest.java index 1a581e778..94e50ce99 100644 --- a/src/test/java/de/mediathekview/mserver/crawler/basic/M3U8DtoTest.java +++ b/src/test/java/de/mediathekview/mserver/crawler/basic/M3U8DtoTest.java @@ -1,17 +1,17 @@ package de.mediathekview.mserver.crawler.basic; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.Optional; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.MatcherAssert.assertThat; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertTrue; -public class M3U8DtoTest { +class M3U8DtoTest { @Test - public void equalTestSameObject() { + void equalTestSameObject() { final M3U8Dto target = new M3U8Dto("test"); final boolean actual = target.equals(target); @@ -20,7 +20,7 @@ public void equalTestSameObject() { } @Test - public void equalTestNull() { + void equalTestNull() { final M3U8Dto target = new M3U8Dto("test"); final boolean actual = target.equals(null); @@ -29,7 +29,7 @@ public void equalTestNull() { } @Test - public void equalTestOnlyUrlEqual() { + void equalTestOnlyUrlEqual() { final M3U8Dto target = new M3U8Dto("test"); final M3U8Dto other = new M3U8Dto("test"); @@ -39,7 +39,7 @@ public void equalTestOnlyUrlEqual() { } @Test - public void equalTestOnlyUrlDifferent() { + void equalTestOnlyUrlDifferent() { final M3U8Dto target = new M3U8Dto("test"); final M3U8Dto other = new M3U8Dto("test1"); @@ -49,7 +49,7 @@ public void equalTestOnlyUrlDifferent() { } @Test - public void equalTestWithMetaDifferentSize() { + void equalTestWithMetaDifferentSize() { final M3U8Dto target = new M3U8Dto("test"); target.addMeta("x", "test"); final M3U8Dto other = new M3U8Dto("test"); @@ -60,7 +60,7 @@ public void equalTestWithMetaDifferentSize() { } @Test - public void equalTestWithMetaSameSizeDifferentKeys() { + void equalTestWithMetaSameSizeDifferentKeys() { final M3U8Dto target = new M3U8Dto("test"); target.addMeta("x", "test"); final M3U8Dto other = new M3U8Dto("test"); @@ -72,7 +72,7 @@ public void equalTestWithMetaSameSizeDifferentKeys() { } @Test - public void equalTestWithMetaSameSizeDifferentValues() { + void equalTestWithMetaSameSizeDifferentValues() { final M3U8Dto target = new M3U8Dto("test"); target.addMeta("x", "test"); final M3U8Dto other = new M3U8Dto("test"); @@ -84,7 +84,7 @@ public void equalTestWithMetaSameSizeDifferentValues() { } @Test - public void equalTestWithMeta() { + void equalTestWithMeta() { final M3U8Dto target = new M3U8Dto("test"); target.addMeta("x", "test"); target.addMeta("y", "5"); @@ -98,7 +98,7 @@ public void equalTestWithMeta() { } @Test - public void getNormalizedMetaWithoutModification() { + void getNormalizedMetaWithoutModification() { final M3U8Dto target = new M3U8Dto("test"); target.addMeta(M3U8Constants.M3U8_RESOLUTION, "1920x1200"); @@ -109,7 +109,7 @@ public void getNormalizedMetaWithoutModification() { } @Test - public void getNormalizedMetaWithModification() { + void getNormalizedMetaWithModification() { final M3U8Dto target = new M3U8Dto("test"); target.addMeta(M3U8Constants.M3U8_RESOLUTION, "960x540"); diff --git a/src/test/java/de/mediathekview/mserver/crawler/basic/M3U8ParserTest.java b/src/test/java/de/mediathekview/mserver/crawler/basic/M3U8ParserTest.java index b81369e59..588820127 100644 --- a/src/test/java/de/mediathekview/mserver/crawler/basic/M3U8ParserTest.java +++ b/src/test/java/de/mediathekview/mserver/crawler/basic/M3U8ParserTest.java @@ -1,7 +1,7 @@ package de.mediathekview.mserver.crawler.basic; import org.hamcrest.Matchers; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.List; @@ -9,7 +9,7 @@ import static org.hamcrest.CoreMatchers.notNullValue; import static org.hamcrest.MatcherAssert.assertThat; -public class M3U8ParserTest { +class M3U8ParserTest { private static M3U8Dto createDto(final String aUrl, final String[] keys, final String[] values) { @@ -22,7 +22,7 @@ private static M3U8Dto createDto(final String aUrl, final String[] keys, final S } @Test - public void parseTestSrf() { + void parseTestSrf() { final M3U8Dto[] expected = new M3U8Dto[] { @@ -85,7 +85,7 @@ public void parseTestSrf() { } @Test - public void parseTestSrf2() { + void parseTestSrf2() { final M3U8Dto[] expected = new M3U8Dto[] { @@ -182,7 +182,7 @@ public void parseTestSrf2() { } @Test - public void parseTestArd() { + void parseTestArd() { final M3U8Dto[] expected = new M3U8Dto[] { @@ -223,7 +223,7 @@ public void parseTestArd() { } @Test - public void parseTestArdNoQuotedElementAtTheEnd() { + void parseTestArdNoQuotedElementAtTheEnd() { final M3U8Dto[] expected = new M3U8Dto[] { @@ -283,7 +283,7 @@ public void parseTestArdNoQuotedElementAtTheEnd() { } @Test - public void parseTestArdFunk() { + void parseTestArdFunk() { final M3U8Dto[] expected = new M3U8Dto[] { diff --git a/src/test/java/de/mediathekview/mserver/crawler/basic/TopicUrlDTOTest.java b/src/test/java/de/mediathekview/mserver/crawler/basic/TopicUrlDTOTest.java index 024659d7c..91146dcf6 100644 --- a/src/test/java/de/mediathekview/mserver/crawler/basic/TopicUrlDTOTest.java +++ b/src/test/java/de/mediathekview/mserver/crawler/basic/TopicUrlDTOTest.java @@ -1,14 +1,14 @@ package de.mediathekview.mserver.crawler.basic; -import org.junit.Test; +import org.junit.jupiter.api.Test; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.MatcherAssert.assertThat; -public class TopicUrlDTOTest { +class TopicUrlDTOTest { @Test - public void equalsTestSameUrlAndTheme() { + void equalsTestSameUrlAndTheme() { final TopicUrlDTO dto1 = new TopicUrlDTO("Thema", "Url"); final TopicUrlDTO dto2 = new TopicUrlDTO("Thema", "Url"); @@ -16,7 +16,7 @@ public void equalsTestSameUrlAndTheme() { } @Test - public void equalsTestSameUrlAndDifferentTheme() { + void equalsTestSameUrlAndDifferentTheme() { final TopicUrlDTO dto1 = new TopicUrlDTO("Thema", "Url"); final TopicUrlDTO dto2 = new TopicUrlDTO("Anders", "Url"); @@ -24,7 +24,7 @@ public void equalsTestSameUrlAndDifferentTheme() { } @Test - public void equalsTestDifferentUrlAndSameTheme() { + void equalsTestDifferentUrlAndSameTheme() { final TopicUrlDTO dto1 = new TopicUrlDTO("Thema", "Urls"); final TopicUrlDTO dto2 = new TopicUrlDTO("Thema", "Url"); diff --git a/src/test/java/de/mediathekview/mserver/crawler/dw/tasks/DWDetailDeserializerTest.java b/src/test/java/de/mediathekview/mserver/crawler/dw/tasks/DWDetailDeserializerTest.java index 06262d1dd..78a7a008e 100644 --- a/src/test/java/de/mediathekview/mserver/crawler/dw/tasks/DWDetailDeserializerTest.java +++ b/src/test/java/de/mediathekview/mserver/crawler/dw/tasks/DWDetailDeserializerTest.java @@ -6,11 +6,9 @@ import de.mediathekview.mserver.crawler.dw.parser.DwFilmDetailDeserializer; import de.mediathekview.mserver.testhelper.AssertFilm; import de.mediathekview.mserver.testhelper.JsonFileReader; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; -import org.junit.runners.Parameterized.Parameters; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; import org.mockito.MockitoAnnotations; import java.time.Duration; @@ -22,47 +20,8 @@ import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.MatcherAssert.assertThat; -@RunWith(Parameterized.class) public class DWDetailDeserializerTest extends DwTaskTestBase { - private final String responseAsFile; - private final String title; - private final String topic; - private final String website; - private final Duration duration; - private final LocalDateTime time; - private final String urlVerySmall; - private final String urlSmall; - private final String urlNormal; - private final String urlHd; - private final String urlWqhd; - - public DWDetailDeserializerTest( - final String responseAsFile, - final String title, - final String topic, - final String website, - final Duration duration, - final LocalDateTime time, - final String video_q0, - final String video_q1, - final String video_q2, - final String video_q3, - final String video_q4) { - this.responseAsFile = responseAsFile; - this.title = title; - this.topic = topic; - this.website = website; - this.duration = duration; - this.time = time; - this.urlVerySmall = video_q0; - this.urlSmall = video_q1; - this.urlNormal = video_q2; - this.urlHd = video_q3; - this.urlWqhd = video_q4; - } - - @Parameters public static Collection data() { return Arrays.asList( new Object[][] { @@ -108,13 +67,14 @@ public static Collection data() { }); } - @Before - public void setUp() { + @BeforeEach + void setUp() { MockitoAnnotations.openMocks(this); } - @Test - public void test() { + @MethodSource("data") + @ParameterizedTest + void test(final String responseAsFile, final String title, final String topic, final String website, final Duration duration, final LocalDateTime time, final String urlVerySmall, final String urlSmall, final String urlNormal, final String urlHd, final String urlWqhd) { final JsonElement jsonElement = JsonFileReader.readJson(responseAsFile); final DwFilmDetailDeserializer target = new DwFilmDetailDeserializer(createCrawler()); final Optional actual = target.deserialize(jsonElement, null, null); diff --git a/src/test/java/de/mediathekview/mserver/crawler/dw/tasks/DWOverviewDeserializerTest.java b/src/test/java/de/mediathekview/mserver/crawler/dw/tasks/DWOverviewDeserializerTest.java index 922b792d9..33e6673a2 100644 --- a/src/test/java/de/mediathekview/mserver/crawler/dw/tasks/DWOverviewDeserializerTest.java +++ b/src/test/java/de/mediathekview/mserver/crawler/dw/tasks/DWOverviewDeserializerTest.java @@ -1,62 +1,28 @@ package de.mediathekview.mserver.crawler.dw.tasks; +import static org.hamcrest.CoreMatchers.equalTo; +import static org.hamcrest.MatcherAssert.assertThat; -import de.mediathekview.mserver.base.webaccess.JsoupConnection; -import de.mediathekview.mserver.crawler.basic.CrawlerUrlDTO; +import com.google.gson.JsonElement; import de.mediathekview.mserver.crawler.basic.PagedElementListDTO; import de.mediathekview.mserver.crawler.basic.TopicUrlDTO; import de.mediathekview.mserver.crawler.dw.parser.DWSendungOverviewDeserializer; import de.mediathekview.mserver.testhelper.JsonFileReader; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; -import org.junit.runners.Parameterized.Parameters; -import org.mockito.Mock; -import org.mockito.MockitoAnnotations; - -import com.google.gson.JsonElement; - -import static org.hamcrest.CoreMatchers.equalTo; -import static org.hamcrest.MatcherAssert.assertThat; - - -import java.io.IOException; import java.util.Arrays; import java.util.Collection; import java.util.Optional; +import org.junit.jupiter.api.extension.ExtendWith; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; +import org.mockito.junit.jupiter.MockitoExtension; -@RunWith(Parameterized.class) +@ExtendWith(MockitoExtension.class) public class DWOverviewDeserializerTest extends DwTaskTestBase { - private final String responseAsFile; - private final boolean hasNext; - private final String hasNextPage; - private final int noElements; - - public DWOverviewDeserializerTest( - final String responseAsFile, - final boolean hasNext, - final String hasNextPage, - final int noElements - ) { - this.responseAsFile = responseAsFile; - this.hasNext = hasNext; - this.hasNextPage = hasNextPage; - this.noElements = noElements; - - } - - @Parameters public static Collection data() { return Arrays.asList( new Object[][] { - { - "/dw/dw_overview_end.json", - false, - "", - 1 - }, + {"/dw/dw_overview_end.json", false, "", 1}, { "/dw/dw_overview_next.json", true, @@ -66,25 +32,23 @@ public static Collection data() { }); } - @Mock JsoupConnection jsoupConnection; - - @Before - public void setUp() { - MockitoAnnotations.openMocks(this); - } - - @Test - public void test() throws IOException { + @MethodSource("data") + @ParameterizedTest + void test( + final String responseAsFile, + final boolean hasNext, + final String hasNextPage, + final int noElements) { final JsonElement jsonElement = JsonFileReader.readJson(responseAsFile); final DWSendungOverviewDeserializer target = new DWSendungOverviewDeserializer(); - final Optional> actual = target.deserialize(jsonElement, null, null); + final Optional> actual = + target.deserialize(jsonElement, null, null); // assertThat(actual.isPresent(), equalTo(true)); assertThat(actual.get().getNextPage().isPresent(), equalTo(hasNext)); assertThat(actual.get().getNextPage().orElse(""), equalTo(hasNextPage)); assertThat(actual.get().getElements().size(), equalTo(noElements)); // - - } + } } diff --git a/src/test/java/de/mediathekview/mserver/crawler/orfon/OrfOnAZTaskTest.java b/src/test/java/de/mediathekview/mserver/crawler/orfon/OrfOnAZTaskTest.java index e4f761d74..96d7fc37c 100644 --- a/src/test/java/de/mediathekview/mserver/crawler/orfon/OrfOnAZTaskTest.java +++ b/src/test/java/de/mediathekview/mserver/crawler/orfon/OrfOnAZTaskTest.java @@ -1,30 +1,27 @@ package de.mediathekview.mserver.crawler.orfon; -import static org.junit.Assert.assertTrue; -import static org.junit.jupiter.api.Assertions.assertIterableEquals; - import java.util.ArrayList; import java.util.List; import java.util.Queue; import java.util.Set; import java.util.concurrent.ConcurrentLinkedQueue; -import org.junit.Test; - import de.mediathekview.mserver.crawler.orfon.task.OrfOnAZTask; import de.mediathekview.mserver.testhelper.WireMockTestBase; +import org.junit.jupiter.api.Test; import static java.util.Arrays.asList; +import static org.junit.jupiter.api.Assertions.*; -public class OrfOnAZTaskTest extends WireMockTestBase { +class OrfOnAZTaskTest extends WireMockTestBase { @Test - public void test() { + void test() { setupSuccessfulJsonResponse("/azTask", "/orfOn/letter_1.json"); Set result = executeTask("/azTask"); List expectedResult = generateExpectedResult(); - assertTrue(result.size() == 9); + assertEquals(9, result.size()); assertIterableEquals(result, expectedResult); } diff --git a/src/test/java/de/mediathekview/mserver/crawler/orfon/OrfOnEpisodeTaskTest.java b/src/test/java/de/mediathekview/mserver/crawler/orfon/OrfOnEpisodeTaskTest.java index cd8ef0780..1a14e4578 100644 --- a/src/test/java/de/mediathekview/mserver/crawler/orfon/OrfOnEpisodeTaskTest.java +++ b/src/test/java/de/mediathekview/mserver/crawler/orfon/OrfOnEpisodeTaskTest.java @@ -1,7 +1,7 @@ package de.mediathekview.mserver.crawler.orfon; -import static org.junit.Assert.assertTrue; import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import de.mediathekview.mserver.base.messages.listener.MessageListener; import de.mediathekview.mserver.base.config.MServerConfigManager; @@ -9,6 +9,7 @@ import de.mediathekview.mserver.daten.*; import de.mediathekview.mserver.progress.listeners.SenderProgressListener; import de.mediathekview.mserver.testhelper.AssertFilm; +import org.junit.jupiter.api.Test; import java.net.URI; import java.time.Duration; @@ -22,9 +23,8 @@ import java.util.Set; import java.util.concurrent.ConcurrentLinkedQueue; import java.util.concurrent.ForkJoinPool; -import org.junit.Test; -public class OrfOnEpisodeTaskTest extends OrfOnEpisodesTaskTest { +class OrfOnEpisodeTaskTest extends OrfOnEpisodesTaskTest { protected static OrfOnCrawler createCrawler() { final ForkJoinPool forkJoinPool = new ForkJoinPool(); @@ -34,10 +34,10 @@ protected static OrfOnCrawler createCrawler() { } @Test - public void testNormal_1() { + void testNormal_1() { setupSuccessfulJsonResponse("/episode1", "/orfOn/episode_1.json"); Set result = executeTask("/episode1"); - assertTrue(result.size() == 1); + assertEquals(1, result.size()); Film actual = result.toArray(new Film[1])[0]; // try { @@ -67,10 +67,10 @@ Resolution.VERY_SMALL, new FilmUrl("https://apasfiis.sf.apa.at/ipad/cms-worldwid } @Test - public void testNormal_2() { + void testNormal_2() { setupSuccessfulJsonResponse("/episode2", "/orfOn/episode_2.json"); Set result = executeTask("/episode2"); - assertTrue(result.size() == 1); + assertEquals(1, result.size()); Film actual = result.toArray(new Film[1])[0]; // try { @@ -100,10 +100,10 @@ Resolution.VERY_SMALL, new FilmUrl("https://apasfiis.sf.apa.at/ipad/cms-austria/ } @Test - public void testZib() { + void testZib() { setupSuccessfulJsonResponse("/zib", "/orfOn/episode_zib.json"); Set result = executeTask("/zib"); - assertTrue(result.size() == 1); + assertEquals(1, result.size()); Film actual = result.toArray(new Film[1])[0]; AssertFilm.assertEquals( @@ -123,10 +123,10 @@ public void testZib() { } @Test - public void testAD() { + void testAD() { setupSuccessfulJsonResponse("/episodeAD", "/orfOn/episode_ad.json"); Set result = executeTask("/episodeAD"); - assertTrue(result.size() == 1); + assertEquals(1, result.size()); Film actual = result.toArray(new Film[1])[0]; // try { @@ -151,17 +151,16 @@ Resolution.NORMAL, new FilmUrl("https://apasfiis.sf.apa.at/ipad/cms-austria/2023 Resolution.SMALL, new FilmUrl("https://apasfiis.sf.apa.at/ipad/cms-austria/2023-12-06_2307_sd_01_AD---Vorstadtwe_____14204417__o__8792736916__s15524266_6__ORF1ADHD_23092909P_23560117P_Q4A.mp4/playlist.m3u8", 0L), Resolution.VERY_SMALL, new FilmUrl("https://apasfiis.sf.apa.at/ipad/cms-austria/2023-12-06_2307_sd_01_AD---Vorstadtwe_____14204417__o__8792736916__s15524266_6__ORF1ADHD_23092909P_23560117P_Q1A.3gp/playlist.m3u8", 0L) ), actual.getUrls()); - // {HD=, NORMAL=, SMALL=, VERY_SMALL=} } catch (Exception e) { assertTrue(false); } } @Test - public void testArchive() { + void testArchive() { setupSuccessfulJsonResponse("/episodeArchive", "/orfOn/episode_archive.json"); Set result = executeTask("/episodeArchive"); - assertTrue(result.size() == 1); + assertEquals(1, result.size()); Film actual = result.toArray(new Film[1])[0]; // try { @@ -191,7 +190,7 @@ Resolution.VERY_SMALL, new FilmUrl("https://apasfiis.sf.apa.at/ipad/cms-worldwid } @Test - public void testIgnoreDRM() { + void testIgnoreDRM() { setupSuccessfulJsonResponse("/episodeDummyUrl", "/orfOn/episode_noDrm.json"); setupSuccessfulJsonResponse("/cms-austria/online/6b2d672267c81e196472b564abf8c8fe/1713132000/2024-03-13_2349_in_01_Spektakulaere-R_____14216629__o__1333685799__s15595990_Q8C.mp4", "/orfOn/episode_noDrm.json"); setupSuccessfulJsonResponse("/cms-austria/online/de9bd8775f46ea293a9db4b0711d4de5/1713132000/2024-03-13_2349_in_01_Spektakulaere-R_____14216629__o__1333685799__s15595990_Q6A.mp4", "/orfOn/episode_noDrm.json"); @@ -200,7 +199,7 @@ public void testIgnoreDRM() { setupHeadRequestForFileSize(); // Set result = executeTask("/episodeDummyUrl"); - assertTrue(result.size() == 0); + assertEquals(0, result.size()); } private Set executeTask(String... requestUrl) { diff --git a/src/test/java/de/mediathekview/mserver/crawler/orfon/OrfOnEpisodesTaskTest.java b/src/test/java/de/mediathekview/mserver/crawler/orfon/OrfOnEpisodesTaskTest.java index 30ae66209..afa55e4f0 100644 --- a/src/test/java/de/mediathekview/mserver/crawler/orfon/OrfOnEpisodesTaskTest.java +++ b/src/test/java/de/mediathekview/mserver/crawler/orfon/OrfOnEpisodesTaskTest.java @@ -10,15 +10,14 @@ import java.util.Set; import java.util.concurrent.ConcurrentLinkedQueue; -import org.junit.Test; - import de.mediathekview.mserver.crawler.orfon.task.OrfOnEpisodesTask; import de.mediathekview.mserver.testhelper.WireMockTestBase; +import org.junit.jupiter.api.Test; -public class OrfOnEpisodesTaskTest extends WireMockTestBase { +class OrfOnEpisodesTaskTest extends WireMockTestBase { @Test - public void test() { + void test() { setupSuccessfulJsonResponse("/episodes", "/orfOn/episodes_3.json"); Set result = executeTask("/episodes"); List expectedResult = generateExpectedResult(); diff --git a/src/test/java/de/mediathekview/mserver/crawler/orfon/OrfOnHistoryChildrenTaskTest.java b/src/test/java/de/mediathekview/mserver/crawler/orfon/OrfOnHistoryChildrenTaskTest.java index 29630e358..660768575 100644 --- a/src/test/java/de/mediathekview/mserver/crawler/orfon/OrfOnHistoryChildrenTaskTest.java +++ b/src/test/java/de/mediathekview/mserver/crawler/orfon/OrfOnHistoryChildrenTaskTest.java @@ -9,14 +9,14 @@ import java.util.Set; import java.util.concurrent.ConcurrentLinkedQueue; -import org.junit.Test; import de.mediathekview.mserver.crawler.orfon.task.OrfOnHistoryChildrenTask; import de.mediathekview.mserver.testhelper.WireMockTestBase; +import org.junit.jupiter.api.Test; -public class OrfOnHistoryChildrenTaskTest extends WireMockTestBase { +class OrfOnHistoryChildrenTaskTest extends WireMockTestBase { @Test - public void test() { + void test() { setupSuccessfulJsonResponse("/children", "/orfOn/children_1.json"); Set result = executeTask("/children"); assertIterableEquals(result, generateExpectedResult()); diff --git a/src/test/java/de/mediathekview/mserver/crawler/orfon/OrfOnHistoryTaskTest.java b/src/test/java/de/mediathekview/mserver/crawler/orfon/OrfOnHistoryTaskTest.java index 840673d59..62f3090b7 100644 --- a/src/test/java/de/mediathekview/mserver/crawler/orfon/OrfOnHistoryTaskTest.java +++ b/src/test/java/de/mediathekview/mserver/crawler/orfon/OrfOnHistoryTaskTest.java @@ -9,17 +9,16 @@ import java.util.Set; import java.util.concurrent.ConcurrentLinkedQueue; -import org.junit.Test; - import de.mediathekview.mserver.crawler.orfon.task.OrfOnHistoryTask; import de.mediathekview.mserver.testhelper.WireMockTestBase; +import org.junit.jupiter.api.Test; -public class OrfOnHistoryTaskTest extends WireMockTestBase { +class OrfOnHistoryTaskTest extends WireMockTestBase { @Test - public void test() { + void test() { setupSuccessfulJsonResponse("/history", "/orfOn/history.json"); Set result = executeTask("/history"); assertIterableEquals(result, generateExpectedResult()); diff --git a/src/test/java/de/mediathekview/mserver/crawler/orfon/OrfOnHistoryVideoItemTaskTest.java b/src/test/java/de/mediathekview/mserver/crawler/orfon/OrfOnHistoryVideoItemTaskTest.java index fcb5bedfa..3319091dd 100644 --- a/src/test/java/de/mediathekview/mserver/crawler/orfon/OrfOnHistoryVideoItemTaskTest.java +++ b/src/test/java/de/mediathekview/mserver/crawler/orfon/OrfOnHistoryVideoItemTaskTest.java @@ -9,15 +9,14 @@ import java.util.Set; import java.util.concurrent.ConcurrentLinkedQueue; -import org.junit.Test; - import de.mediathekview.mserver.crawler.orfon.task.OrfOnHistoryVideoItemTask; import de.mediathekview.mserver.testhelper.WireMockTestBase; +import org.junit.jupiter.api.Test; -public class OrfOnHistoryVideoItemTaskTest extends WireMockTestBase { +class OrfOnHistoryVideoItemTaskTest extends WireMockTestBase { @Test - public void test() { + void test() { setupSuccessfulJsonResponse("/videoItems", "/orfOn/videoItems_1.json"); Set result = executeTask("/videoItems"); assertIterableEquals(result, generateExpectedResult()); diff --git a/src/test/java/de/mediathekview/mserver/crawler/orfon/OrfOnScheduleTaskTest.java b/src/test/java/de/mediathekview/mserver/crawler/orfon/OrfOnScheduleTaskTest.java index 00946ee94..61741b447 100644 --- a/src/test/java/de/mediathekview/mserver/crawler/orfon/OrfOnScheduleTaskTest.java +++ b/src/test/java/de/mediathekview/mserver/crawler/orfon/OrfOnScheduleTaskTest.java @@ -9,15 +9,14 @@ import java.util.Set; import java.util.concurrent.ConcurrentLinkedQueue; -import org.junit.Test; - import de.mediathekview.mserver.crawler.orfon.task.OrfOnScheduleTask; import de.mediathekview.mserver.testhelper.WireMockTestBase; +import org.junit.jupiter.api.Test; -public class OrfOnScheduleTaskTest extends WireMockTestBase { +class OrfOnScheduleTaskTest extends WireMockTestBase { @Test - public void test() { + void test() { setupSuccessfulJsonResponse("/scheduleTask", "/orfOn/schedule.json"); Set result = executeTask("/scheduleTask"); assertIterableEquals(result, generateExpectedResult()); diff --git a/src/test/java/de/mediathekview/mserver/crawler/phoenix/parser/PhoenixFilmDetailDeserializerErrorTest.java b/src/test/java/de/mediathekview/mserver/crawler/phoenix/parser/PhoenixFilmDetailDeserializerErrorTest.java index 306a6aa03..239b3b771 100644 --- a/src/test/java/de/mediathekview/mserver/crawler/phoenix/parser/PhoenixFilmDetailDeserializerErrorTest.java +++ b/src/test/java/de/mediathekview/mserver/crawler/phoenix/parser/PhoenixFilmDetailDeserializerErrorTest.java @@ -2,17 +2,17 @@ import com.google.gson.JsonElement; import de.mediathekview.mserver.testhelper.JsonFileReader; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.Optional; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.equalTo; -public class PhoenixFilmDetailDeserializerErrorTest { +class PhoenixFilmDetailDeserializerErrorTest { @Test - public void testNullInAbsatzArray() { + void testNullInAbsatzArray() { final JsonElement jsonElement = JsonFileReader.readJson("/phoenix/phoenix_film_detail_null_item_in_array.json"); final PhoenixFilmDetailDeserializer target = new PhoenixFilmDetailDeserializer(); diff --git a/src/test/java/de/mediathekview/mserver/crawler/phoenix/parser/PhoenixFilmDetailDeserializerTest.java b/src/test/java/de/mediathekview/mserver/crawler/phoenix/parser/PhoenixFilmDetailDeserializerTest.java index 4c490333b..86bc8ac41 100644 --- a/src/test/java/de/mediathekview/mserver/crawler/phoenix/parser/PhoenixFilmDetailDeserializerTest.java +++ b/src/test/java/de/mediathekview/mserver/crawler/phoenix/parser/PhoenixFilmDetailDeserializerTest.java @@ -2,9 +2,8 @@ import com.google.gson.JsonElement; import de.mediathekview.mserver.testhelper.JsonFileReader; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; import java.util.Arrays; import java.util.Collection; @@ -13,32 +12,8 @@ import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.equalTo; -@RunWith(Parameterized.class) public class PhoenixFilmDetailDeserializerTest { - private final String jsonFile; - private final String expectedTopic; - private final String expectedTitle; - private final String expectedDescription; - private final String expectedBaseName; - private final String expectedWebsite; - - public PhoenixFilmDetailDeserializerTest( - final String aJsonFile, - final String aExpectedTopic, - final String aExpectedTitle, - final String aExpectedDescription, - final String aExpectedBaseName, - final String aExpectedWebsite) { - jsonFile = aJsonFile; - expectedTopic = aExpectedTopic; - expectedTitle = aExpectedTitle; - expectedDescription = aExpectedDescription; - expectedBaseName = aExpectedBaseName; - expectedWebsite = aExpectedWebsite; - } - - @Parameterized.Parameters public static Collection data() { return Arrays.asList( new Object[][] { @@ -69,8 +44,9 @@ public static Collection data() { }); } - @Test - public void test() { + @MethodSource("data") + @ParameterizedTest + void test(final String jsonFile, final String expectedTopic, final String expectedTitle, final String expectedDescription, final String expectedBaseName, final String expectedWebsite) { final JsonElement jsonElement = JsonFileReader.readJson(jsonFile); final PhoenixFilmDetailDeserializer target = new PhoenixFilmDetailDeserializer(); diff --git a/src/test/java/de/mediathekview/mserver/crawler/phoenix/parser/PhoenixSendungOverviewDeserializerTest.java b/src/test/java/de/mediathekview/mserver/crawler/phoenix/parser/PhoenixSendungOverviewDeserializerTest.java index 136b0439a..4bb58a05e 100644 --- a/src/test/java/de/mediathekview/mserver/crawler/phoenix/parser/PhoenixSendungOverviewDeserializerTest.java +++ b/src/test/java/de/mediathekview/mserver/crawler/phoenix/parser/PhoenixSendungOverviewDeserializerTest.java @@ -6,9 +6,8 @@ import de.mediathekview.mserver.crawler.basic.PagedElementListDTO; import de.mediathekview.mserver.testhelper.JsonFileReader; import org.hamcrest.Matchers; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; import java.util.Arrays; import java.util.Collection; @@ -17,23 +16,8 @@ import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.equalTo; -@RunWith(Parameterized.class) public class PhoenixSendungOverviewDeserializerTest { - private final String jsonFile; - private final Optional expectedNextPageId; - private final CrawlerUrlDTO[] expectedUrls; - - public PhoenixSendungOverviewDeserializerTest( - final String aJsonFile, - final Optional aExpectedNextPageId, - final CrawlerUrlDTO[] aExpectedUrls) { - jsonFile = aJsonFile; - expectedNextPageId = aExpectedNextPageId; - expectedUrls = aExpectedUrls; - } - - @Parameterized.Parameters public static Collection data() { return Arrays.asList( new Object[][] { @@ -53,8 +37,9 @@ public static Collection data() { }); } - @Test - public void test() { + @MethodSource("data") + @ParameterizedTest + void test(final String jsonFile, final Optional expectedNextPageId, final CrawlerUrlDTO[] expectedUrls) { final JsonElement jsonElement = JsonFileReader.readJson(jsonFile); final PhoenixSendungOverviewDeserializer target = new PhoenixSendungOverviewDeserializer(); diff --git a/src/test/java/de/mediathekview/mserver/crawler/phoenix/tasks/PhoenixFilmDetailTaskTest.java b/src/test/java/de/mediathekview/mserver/crawler/phoenix/tasks/PhoenixFilmDetailTaskTest.java index 6acb02f5c..59dfca3ab 100644 --- a/src/test/java/de/mediathekview/mserver/crawler/phoenix/tasks/PhoenixFilmDetailTaskTest.java +++ b/src/test/java/de/mediathekview/mserver/crawler/phoenix/tasks/PhoenixFilmDetailTaskTest.java @@ -1,89 +1,29 @@ package de.mediathekview.mserver.crawler.phoenix.tasks; -import de.mediathekview.mserver.daten.Film; -import de.mediathekview.mserver.daten.GeoLocations; -import de.mediathekview.mserver.daten.Sender; -import de.mediathekview.mserver.base.messages.listener.MessageListener; +import static org.hamcrest.CoreMatchers.equalTo; +import static org.hamcrest.MatcherAssert.assertThat; + import de.mediathekview.mserver.base.config.MServerConfigManager; +import de.mediathekview.mserver.base.messages.listener.MessageListener; import de.mediathekview.mserver.crawler.basic.CrawlerUrlDTO; import de.mediathekview.mserver.crawler.phoenix.PhoenixCrawler; +import de.mediathekview.mserver.daten.Film; +import de.mediathekview.mserver.daten.GeoLocations; +import de.mediathekview.mserver.daten.Sender; import de.mediathekview.mserver.progress.listeners.SenderProgressListener; import de.mediathekview.mserver.testhelper.AssertFilm; import de.mediathekview.mserver.testhelper.WireMockTestBase; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; -import org.junit.runners.Parameterized.Parameters; - import java.time.Duration; import java.time.LocalDateTime; import java.util.*; import java.util.concurrent.ConcurrentLinkedQueue; import java.util.concurrent.ForkJoinPool; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; -import static org.hamcrest.CoreMatchers.equalTo; -import static org.hamcrest.MatcherAssert.assertThat; - -@RunWith(Parameterized.class) public class PhoenixFilmDetailTaskTest extends WireMockTestBase { - - private final String filmUrl; - private final String filmJsonFile; - private final String filmDetailUrl; - private final String filmDetailFile; - private final String videoUrl; - private final String videoJsonFile; - private final String expectedTopic; - private final String expectedTitle; - private final LocalDateTime expectedTime; - private final Duration expectedDuration; - private final String expectedDescription; - private final String expectedWebsite; - private final String expectedUrlSmall; - private final String expectedUrlNormal; - private final String expectedUrlHd; - private final String expectedSubtitle; - private final GeoLocations expectedGeo; protected MServerConfigManager rootConfig = new MServerConfigManager("MServer-JUnit-Config.yaml"); - public PhoenixFilmDetailTaskTest( - final String aFilmUrl, - final String aFilmJsonFile, - final String aFilmDetailUrl, - final String aFilmDetailFile, - final String aVideoUrl, - final String aVideoJsonFile, - final String aExpectedTopic, - final String aExpectedTitle, - final LocalDateTime aExpectedTime, - final Duration aExpectedDuration, - final String aExpectedDescription, - final String aExpectedWebsite, - final String aExpectedUrlSmall, - final String aExpectedUrlNormal, - final String aExpectedUrlHd, - final String aExpectedSubtitle, - final GeoLocations aExpectedGeo) { - filmUrl = aFilmUrl; - filmJsonFile = aFilmJsonFile; - filmDetailUrl = aFilmDetailUrl; - filmDetailFile = aFilmDetailFile; - videoUrl = aVideoUrl; - videoJsonFile = aVideoJsonFile; - expectedTopic = aExpectedTopic; - expectedTitle = aExpectedTitle; - expectedTime = aExpectedTime; - expectedDuration = aExpectedDuration; - expectedDescription = aExpectedDescription; - expectedWebsite = aExpectedWebsite; - expectedUrlSmall = buildWireMockUrl(aExpectedUrlSmall); - expectedUrlNormal = buildWireMockUrl(aExpectedUrlNormal); - expectedUrlHd = buildWireMockUrl(aExpectedUrlHd); - expectedSubtitle = buildWireMockUrl(aExpectedSubtitle); - expectedGeo = aExpectedGeo; - } - - @Parameters public static Collection data() { return Arrays.asList( new Object[][] { @@ -128,8 +68,26 @@ public static Collection data() { }); } - @Test - public void test() { + @MethodSource("data") + @ParameterizedTest + void test( + final String filmUrl, + final String filmJsonFile, + final String filmDetailUrl, + final String filmDetailFile, + final String videoUrl, + final String videoJsonFile, + final String expectedTopic, + final String expectedTitle, + final LocalDateTime expectedTime, + final Duration expectedDuration, + final String expectedDescription, + final String expectedWebsite, + final String expectedUrlSmall, + final String expectedUrlNormal, + final String expectedUrlHd, + final String expectedSubtitle, + final GeoLocations expectedGeo) { setupSuccessfulJsonResponse(filmUrl, filmJsonFile); setupSuccessfulJsonResponse(filmDetailUrl, filmDetailFile); setupSuccessfulJsonResponse(videoUrl, videoJsonFile); @@ -153,10 +111,10 @@ public void test() { expectedDescription, expectedWebsite, new GeoLocations[] {expectedGeo}, - expectedUrlSmall, - expectedUrlNormal, - expectedUrlHd, - expectedSubtitle); + buildWireMockUrl(expectedUrlSmall), + buildWireMockUrl(expectedUrlNormal), + buildWireMockUrl(expectedUrlHd), + buildWireMockUrl(expectedSubtitle)); } protected PhoenixCrawler createCrawler() { diff --git a/src/test/java/de/mediathekview/mserver/crawler/sr/tasks/SrFilmDetailTaskNoFilmTest.java b/src/test/java/de/mediathekview/mserver/crawler/sr/tasks/SrFilmDetailTaskNoFilmTest.java index 913dbebbb..307957ada 100644 --- a/src/test/java/de/mediathekview/mserver/crawler/sr/tasks/SrFilmDetailTaskNoFilmTest.java +++ b/src/test/java/de/mediathekview/mserver/crawler/sr/tasks/SrFilmDetailTaskNoFilmTest.java @@ -4,12 +4,11 @@ import de.mediathekview.mserver.base.webaccess.JsoupConnection; import de.mediathekview.mserver.crawler.sr.SrCrawler; import de.mediathekview.mserver.testhelper.JsoupMock; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.api.extension.ExtendWith; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; import org.mockito.Mock; -import org.mockito.MockitoAnnotations; +import org.mockito.junit.jupiter.MockitoExtension; import java.util.Arrays; import java.util.Collection; @@ -19,36 +18,11 @@ import static org.hamcrest.CoreMatchers.notNullValue; import static org.hamcrest.MatcherAssert.assertThat; -@RunWith(Parameterized.class) +@ExtendWith(MockitoExtension.class) public class SrFilmDetailTaskNoFilmTest extends SrTaskTestBase { - private final String requestUrl; - private final String filmPageFile; - private final String theme; - private final String videoDetailsUrl; - private final String videoDetailsFile; - @Mock JsoupConnection jsoupConnection; - @Before - public void setUp() { - MockitoAnnotations.openMocks(this); - } - - public SrFilmDetailTaskNoFilmTest( - final String aRequestUrl, - final String aFilmPageFile, - final String aTheme, - final String videoDetailsUrl, - final String videoDetailsFile) { - requestUrl = aRequestUrl; - filmPageFile = aFilmPageFile; - theme = aTheme; - this.videoDetailsUrl = videoDetailsUrl; - this.videoDetailsFile = videoDetailsFile; - } - - @Parameterized.Parameters public static Collection data() { return Arrays.asList( new Object[][] { @@ -76,8 +50,9 @@ public static Collection data() { }); } - @Test - public void test() { + @MethodSource("data") + @ParameterizedTest + void test(final String requestUrl, final String filmPageFile, final String theme, final String videoDetailsUrl, final String videoDetailsFile) { jsoupConnection = JsoupMock.mock(requestUrl, filmPageFile); SrCrawler crawler = createCrawler(); crawler.setConnection(jsoupConnection); diff --git a/src/test/java/de/mediathekview/mserver/crawler/sr/tasks/SrFilmDetailTaskTest.java b/src/test/java/de/mediathekview/mserver/crawler/sr/tasks/SrFilmDetailTaskTest.java index 130f11a3d..4942d8e1c 100644 --- a/src/test/java/de/mediathekview/mserver/crawler/sr/tasks/SrFilmDetailTaskTest.java +++ b/src/test/java/de/mediathekview/mserver/crawler/sr/tasks/SrFilmDetailTaskTest.java @@ -16,62 +16,14 @@ import java.util.Arrays; import java.util.Collection; import java.util.Set; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; -import org.mockito.Mock; -import org.mockito.MockitoAnnotations; +import org.junit.jupiter.api.extension.ExtendWith; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; +import org.mockito.junit.jupiter.MockitoExtension; -@RunWith(Parameterized.class) +@ExtendWith(MockitoExtension.class) public class SrFilmDetailTaskTest extends SrTaskTestBase { - private final String requestUrl; - private final String filmPageFile; - private final String videoDetailsUrl; - private final String videoDetailsFile; - private final String theme; - private final String expectedTitle; - private final LocalDateTime expectedDate; - private final Duration expectedDuration; - private final String expectedDescription; - private final String expectedSubtitle; - private final String expectedUrlSmall; - private final String expectedUrlNormal; - private final String expectedUrlHd; - - @Mock JsoupConnection jsoupConnection; - - public SrFilmDetailTaskTest( - final String aRequestUrl, - final String aFilmPageFile, - final String aVideoDetailsUrl, - final String aVideoDetailsFile, - final String aTheme, - final String aExpectedTitle, - final LocalDateTime aExpectedDate, - final Duration aExpectedDuration, - final String aExpectedDescription, - final String aExpectedSubtitle, - final String aExpectedUrlSmall, - final String aExpectedUrlNormal, - final String aExpectedUrlHd) { - requestUrl = aRequestUrl; - filmPageFile = aFilmPageFile; - videoDetailsUrl = aVideoDetailsUrl; - videoDetailsFile = aVideoDetailsFile; - theme = aTheme; - expectedTitle = aExpectedTitle; - expectedDate = aExpectedDate; - expectedDuration = aExpectedDuration; - expectedDescription = aExpectedDescription; - expectedSubtitle = aExpectedSubtitle; - expectedUrlSmall = aExpectedUrlSmall; - expectedUrlNormal = aExpectedUrlNormal; - expectedUrlHd = aExpectedUrlHd; - } - - @Parameterized.Parameters public static Collection data() { return Arrays.asList( new Object[][] { @@ -123,14 +75,10 @@ public static Collection data() { }); } - @Before - public void setUp() { - MockitoAnnotations.openMocks(this); - } - - @Test - public void test() { - jsoupConnection = + @MethodSource("data") + @ParameterizedTest + void test(final String requestUrl, final String filmPageFile, final String videoDetailsUrl, final String videoDetailsFile, final String theme, final String expectedTitle, final LocalDateTime expectedDate, final Duration expectedDuration, final String expectedDescription, final String expectedSubtitle, final String expectedUrlSmall, final String expectedUrlNormal, final String expectedUrlHd) { + JsoupConnection jsoupConnection = JsoupMock.mockWithTextModifications(requestUrl, filmPageFile, this::fixupAllWireMockUrls); final SrCrawler crawler = createCrawler(); crawler.setConnection(jsoupConnection); diff --git a/src/test/java/de/mediathekview/mserver/crawler/sr/tasks/SrTopicArchivePageTaskTest.java b/src/test/java/de/mediathekview/mserver/crawler/sr/tasks/SrTopicArchivePageTaskTest.java index 1a4241c0a..f1690b0d3 100644 --- a/src/test/java/de/mediathekview/mserver/crawler/sr/tasks/SrTopicArchivePageTaskTest.java +++ b/src/test/java/de/mediathekview/mserver/crawler/sr/tasks/SrTopicArchivePageTaskTest.java @@ -5,12 +5,11 @@ import de.mediathekview.mserver.crawler.sr.SrTopicUrlDTO; import de.mediathekview.mserver.testhelper.JsoupMock; import org.hamcrest.Matchers; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; -import org.mockito.MockitoAnnotations; +import org.mockito.junit.jupiter.MockitoExtension; -import java.io.IOException; import java.util.HashMap; import java.util.Map; import java.util.Set; @@ -18,17 +17,13 @@ import static org.hamcrest.CoreMatchers.notNullValue; import static org.hamcrest.MatcherAssert.assertThat; -public class SrTopicArchivePageTaskTest extends SrTaskTestBase { +@ExtendWith(MockitoExtension.class) +class SrTopicArchivePageTaskTest extends SrTaskTestBase { @Mock JsoupConnection jsoupConnection; - @Before - public void setUp() { - MockitoAnnotations.openMocks(this); - } - @Test - public void testOverviewWithSinglePage() throws IOException { + void testOverviewWithSinglePage() { final String theme = "2 Mann für alle Gänge"; final SrTopicUrlDTO[] expectedUrls = @@ -51,7 +46,7 @@ public void testOverviewWithSinglePage() throws IOException { } @Test - public void testOverviewWithMultiplePages() throws IOException { + void testOverviewWithMultiplePages() { final String theme = "Meine Traumreise"; final SrTopicUrlDTO[] expectedUrls = new SrTopicUrlDTO[] { @@ -94,7 +89,7 @@ public void testOverviewWithMultiplePages() throws IOException { } @Test - public void testOverviewEmpty() throws IOException { + void testOverviewEmpty() { final SrTopicUrlDTO[] expectedUrls = new SrTopicUrlDTO[0]; final String requestUrl = "srf_sample.html"; @@ -109,7 +104,7 @@ public void testOverviewEmpty() throws IOException { } @Test - public void testOverviewAudioFiles() throws IOException { + void testOverviewAudioFiles() { final SrTopicUrlDTO[] expectedUrls = new SrTopicUrlDTO[0]; final String requestUrl = "srf_sample.html"; diff --git a/src/test/java/de/mediathekview/mserver/crawler/sr/tasks/SrTopicsOverviewPageTaskTest.java b/src/test/java/de/mediathekview/mserver/crawler/sr/tasks/SrTopicsOverviewPageTaskTest.java index c4b9004a6..5f43913cc 100644 --- a/src/test/java/de/mediathekview/mserver/crawler/sr/tasks/SrTopicsOverviewPageTaskTest.java +++ b/src/test/java/de/mediathekview/mserver/crawler/sr/tasks/SrTopicsOverviewPageTaskTest.java @@ -1,44 +1,30 @@ package de.mediathekview.mserver.crawler.sr.tasks; -import de.mediathekview.mserver.daten.Sender; -import de.mediathekview.mserver.base.config.MServerConfigManager; -import de.mediathekview.mserver.base.webaccess.JsoupConnection; +import static org.hamcrest.CoreMatchers.notNullValue; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.junit.jupiter.api.Assertions.fail; +import static org.mockito.Mockito.when; + import de.mediathekview.mserver.crawler.sr.SrConstants; import de.mediathekview.mserver.crawler.sr.SrCrawler; import de.mediathekview.mserver.crawler.sr.SrTopicUrlDTO; import de.mediathekview.mserver.testhelper.JsoupMock; -import org.hamcrest.Matchers; -import org.jsoup.nodes.Document; -import org.junit.Before; -import org.junit.Test; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; - import java.io.IOException; import java.util.HashMap; import java.util.Map; import java.util.Queue; +import org.hamcrest.Matchers; +import org.jsoup.nodes.Document; +import org.junit.jupiter.api.Test; +import org.mockito.Mockito; -import static org.hamcrest.CoreMatchers.notNullValue; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.junit.Assert.fail; -import static org.mockito.Mockito.when; - -public class SrTopicsOverviewPageTaskTest { - - @Mock JsoupConnection jsoupConnection; - - @Before - public void setUp() { - MockitoAnnotations.openMocks(this); - } +class SrTopicsOverviewPageTaskTest { private final SrTopicUrlDTO[] expectedUrls = new SrTopicUrlDTO[] { new SrTopicUrlDTO("mag's", String.format(SrConstants.URL_SHOW_ARCHIVE_PAGE, "MA", 1)), new SrTopicUrlDTO( - "Medienwelt", String.format(SrConstants.URL_SHOW_ARCHIVE_PAGE, "SR2_ME_P", 1)), + "MedienWelt", String.format(SrConstants.URL_SHOW_ARCHIVE_PAGE, "SR2_ME_P", 1)), new SrTopicUrlDTO( "Meine Traumreise", String.format(SrConstants.URL_SHOW_ARCHIVE_PAGE, "MT", 1)), new SrTopicUrlDTO( @@ -57,7 +43,7 @@ public void setUp() { }; @Test - public void test() throws Exception { + void test() throws Exception { final SrCrawler crawler = Mockito.mock(SrCrawler.class); final Map urlMapping = new HashMap<>(); @@ -75,18 +61,12 @@ public void test() throws Exception { (url, fileName) -> { try { final Document document = JsoupMock.getFileDocument(fileName); - when(jsoupConnection.requestBodyAsHtmlDocument(url)).thenReturn(document); when(crawler.requestBodyAsHtmlDocument(url)).thenReturn(document); } catch (final IOException iox) { fail(); } }); - when(crawler.getCrawlerConfig()) - .thenReturn( - new MServerConfigManager("MServer-JUnit-Config.yaml").getSenderConfig(Sender.SR)); - when(crawler.getConnection()).thenReturn(jsoupConnection); - final SrTopicsOverviewPageTask target = new SrTopicsOverviewPageTask(crawler); final Queue actual = target.call(); assertThat(actual, notNullValue()); diff --git a/src/test/java/de/mediathekview/mserver/crawler/srf/parser/SrfFilmJsonDeserializerErrorTest.java b/src/test/java/de/mediathekview/mserver/crawler/srf/parser/SrfFilmJsonDeserializerErrorTest.java index dc85db0e2..40c51ae5b 100644 --- a/src/test/java/de/mediathekview/mserver/crawler/srf/parser/SrfFilmJsonDeserializerErrorTest.java +++ b/src/test/java/de/mediathekview/mserver/crawler/srf/parser/SrfFilmJsonDeserializerErrorTest.java @@ -4,7 +4,7 @@ import de.mediathekview.mserver.daten.Film; import de.mediathekview.mserver.crawler.srf.tasks.SrfTaskTestBase; import de.mediathekview.mserver.testhelper.JsonFileReader; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.Optional; @@ -12,10 +12,10 @@ import static org.hamcrest.MatcherAssert.assertThat; /** Tests error scenarios of SrfFilmJsonDeserializer */ -public class SrfFilmJsonDeserializerErrorTest extends SrfTaskTestBase { +class SrfFilmJsonDeserializerErrorTest extends SrfTaskTestBase { @Test - public void testDrmUrl() { + void testDrmUrl() { final JsonElement jsonElement = JsonFileReader.readJson("/srf/srf_film_page_drm.json"); final SrfFilmJsonDeserializer target = new SrfFilmJsonDeserializer(createCrawler()); @@ -25,7 +25,7 @@ public void testDrmUrl() { } @Test - public void testFilmUrlBlocked() { + void testFilmUrlBlocked() { setupResponseWithoutBody( "/i/vod/1gegen100/2010/05/1gegen100_20100517_200706_web_h264_16zu9_,lq1,mq1,hq1,.mp4.csmil/master.m3u8?start=0.0&end=3305.1", 403); @@ -39,7 +39,7 @@ public void testFilmUrlBlocked() { } @Test - public void testFilmBlocked() { + void testFilmBlocked() { final JsonElement jsonElement = JsonFileReader.readJson("/srf/srf_film_page_geo_block.json"); final SrfFilmJsonDeserializer target = new SrfFilmJsonDeserializer(createCrawler()); diff --git a/src/test/java/de/mediathekview/mserver/crawler/srf/parser/SrfFilmJsonDeserializerTest.java b/src/test/java/de/mediathekview/mserver/crawler/srf/parser/SrfFilmJsonDeserializerTest.java index d0d7074e4..727f7a141 100644 --- a/src/test/java/de/mediathekview/mserver/crawler/srf/parser/SrfFilmJsonDeserializerTest.java +++ b/src/test/java/de/mediathekview/mserver/crawler/srf/parser/SrfFilmJsonDeserializerTest.java @@ -7,10 +7,8 @@ import de.mediathekview.mserver.crawler.srf.tasks.SrfTaskTestBase; import de.mediathekview.mserver.testhelper.AssertFilm; import de.mediathekview.mserver.testhelper.JsonFileReader; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; -import org.junit.runners.Parameterized.Parameters; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; import java.time.Duration; import java.time.LocalDateTime; @@ -22,62 +20,8 @@ import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.MatcherAssert.assertThat; -@RunWith(Parameterized.class) public class SrfFilmJsonDeserializerTest extends SrfTaskTestBase { - private final String jsonFile; - private final String m3u8File; - private final String m3u8Url; - private final String theme; - private final String title; - private final LocalDateTime dateTime; - private final long duration; - private final String description; - private final String website; - private final String urlSmall; - private final String urlNormal; - private final String urlHd; - private final String urlAudioDescriptionSmall; - private final String urlAudioDescriptionNormal; - private final String urlAudioDescriptionHd; - private final String subtitleUrl; - - public SrfFilmJsonDeserializerTest( - final String aJsonFile, - final String aM3u8File, - final String aM3u8Url, - final String aTheme, - final String aTitle, - final LocalDateTime aLocalDateTime, - final long aDuration, - final String aDescription, - final String aWebsite, - final String aUrlSmall, - final String aUrlNormal, - final String aUrlHd, - final String aUrlAudioDescriptionSmall, - final String aUrlAudioDescriptionNormal, - final String aUrlAudioDescriptionHd, - final String aSubtitleUrl) { - jsonFile = aJsonFile; - m3u8File = aM3u8File; - m3u8Url = aM3u8Url; - theme = aTheme; - title = aTitle; - dateTime = aLocalDateTime; - duration = aDuration; - description = aDescription; - website = aWebsite; - urlSmall = aUrlSmall; - urlNormal = aUrlNormal; - urlHd = aUrlHd; - urlAudioDescriptionSmall = aUrlAudioDescriptionSmall; - urlAudioDescriptionNormal = aUrlAudioDescriptionNormal; - urlAudioDescriptionHd = aUrlAudioDescriptionHd; - subtitleUrl = aSubtitleUrl; - } - - @Parameters public static Collection data() { return Arrays.asList( new Object[][] { @@ -192,8 +136,9 @@ public static Collection data() { }); } - @Test - public void test() { + @MethodSource("data") + @ParameterizedTest + void test(final String jsonFile, final String m3u8File, final String m3u8Url, final String theme, final String title, final LocalDateTime localDateTime, final long duration, final String description, final String website, final String urlSmall, final String urlNormal, final String urlHd, final String urlAudioDescriptionSmall, final String urlAudioDescriptionNormal, final String urlAudioDescriptionHd, final String subtitleUrl) { final JsonElement jsonElement = JsonFileReader.readJsonWithTextModification(jsonFile, this::fixupAllWireMockUrls); @@ -209,7 +154,7 @@ public void test() { Sender.SRF, theme, title, - dateTime, + localDateTime, Duration.of(duration, ChronoUnit.MILLIS), description, website, diff --git a/src/test/java/de/mediathekview/mserver/crawler/srf/parser/SrfScheduleDeserializerTest.java b/src/test/java/de/mediathekview/mserver/crawler/srf/parser/SrfScheduleDeserializerTest.java index 7448352b8..e5065e08d 100644 --- a/src/test/java/de/mediathekview/mserver/crawler/srf/parser/SrfScheduleDeserializerTest.java +++ b/src/test/java/de/mediathekview/mserver/crawler/srf/parser/SrfScheduleDeserializerTest.java @@ -3,16 +3,16 @@ import com.google.gson.JsonElement; import de.mediathekview.mserver.crawler.basic.CrawlerUrlDTO; import de.mediathekview.mserver.testhelper.JsonFileReader; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.Set; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.MatcherAssert.assertThat; -public class SrfScheduleDeserializerTest { +class SrfScheduleDeserializerTest { @Test - public void test() { + void test() { final JsonElement jsonElement = JsonFileReader.readJson("/srf/srf_schedule_page_1.json"); diff --git a/src/test/java/de/mediathekview/mserver/crawler/srf/parser/SrfTopicDeserializerTest.java b/src/test/java/de/mediathekview/mserver/crawler/srf/parser/SrfTopicDeserializerTest.java index fd53a3036..7233c139b 100644 --- a/src/test/java/de/mediathekview/mserver/crawler/srf/parser/SrfTopicDeserializerTest.java +++ b/src/test/java/de/mediathekview/mserver/crawler/srf/parser/SrfTopicDeserializerTest.java @@ -5,16 +5,16 @@ import de.mediathekview.mserver.crawler.basic.PagedElementListDTO; import de.mediathekview.mserver.testhelper.JsonFileReader; import org.hamcrest.Matchers; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.Optional; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.MatcherAssert.assertThat; -public class SrfTopicDeserializerTest { +class SrfTopicDeserializerTest { @Test - public void test() { + void test() { final CrawlerUrlDTO[] expectedUrls = new CrawlerUrlDTO[] { new CrawlerUrlDTO( @@ -37,7 +37,7 @@ public void test() { } @Test - public void testWithNextPage() { + void testWithNextPage() { final CrawlerUrlDTO[] expectedUrls = new CrawlerUrlDTO[] { new CrawlerUrlDTO( diff --git a/src/test/java/de/mediathekview/mserver/crawler/srf/parser/SrfTopicsDeserializerTest.java b/src/test/java/de/mediathekview/mserver/crawler/srf/parser/SrfTopicsDeserializerTest.java index 30f25b5eb..7e24fdf3f 100644 --- a/src/test/java/de/mediathekview/mserver/crawler/srf/parser/SrfTopicsDeserializerTest.java +++ b/src/test/java/de/mediathekview/mserver/crawler/srf/parser/SrfTopicsDeserializerTest.java @@ -4,16 +4,16 @@ import de.mediathekview.mserver.crawler.basic.TopicUrlDTO; import de.mediathekview.mserver.testhelper.JsonFileReader; import org.hamcrest.Matchers; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.Set; import static org.hamcrest.MatcherAssert.assertThat; -public class SrfTopicsDeserializerTest { +class SrfTopicsDeserializerTest { @Test - public void test() { + void test() { final TopicUrlDTO[] expectedUrls = new TopicUrlDTO[] { new TopicUrlDTO( diff --git a/src/test/java/de/mediathekview/mserver/crawler/srf/tasks/SrfFilmDetailTaskTest.java b/src/test/java/de/mediathekview/mserver/crawler/srf/tasks/SrfFilmDetailTaskTest.java index c14279de9..a9f209959 100644 --- a/src/test/java/de/mediathekview/mserver/crawler/srf/tasks/SrfFilmDetailTaskTest.java +++ b/src/test/java/de/mediathekview/mserver/crawler/srf/tasks/SrfFilmDetailTaskTest.java @@ -1,8 +1,7 @@ package de.mediathekview.mserver.crawler.srf.tasks; import de.mediathekview.mserver.daten.Film; - -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.Set; @@ -11,10 +10,10 @@ import static org.hamcrest.CoreMatchers.notNullValue; import static org.hamcrest.MatcherAssert.assertThat; -public class SrfFilmDetailTaskTest extends SrfTaskTestBase { +class SrfFilmDetailTaskTest extends SrfTaskTestBase { @Test - public void testSingleUrl() { + void testSingleUrl() { final String requestUrl = "/integrationlayer/2.0/srf/mediaComposition/video/22b9dd2c-d1fd-463b-91de-d804eda74889.json"; @@ -30,7 +29,7 @@ public void testSingleUrl() { } @Test - public void testFilmUrlNotFound() { + void testFilmUrlNotFound() { final String requestUrl = "/integrationlayer/2.0/srf/mediaComposition/video/22b9dd2c-d1fd-463b-91de-d804eda74889.json"; diff --git a/src/test/java/de/mediathekview/mserver/crawler/srf/tasks/SrfTopicOverviewTaskTest.java b/src/test/java/de/mediathekview/mserver/crawler/srf/tasks/SrfTopicOverviewTaskTest.java index bde792cf1..36ab89eec 100644 --- a/src/test/java/de/mediathekview/mserver/crawler/srf/tasks/SrfTopicOverviewTaskTest.java +++ b/src/test/java/de/mediathekview/mserver/crawler/srf/tasks/SrfTopicOverviewTaskTest.java @@ -1,9 +1,9 @@ package de.mediathekview.mserver.crawler.srf.tasks; import de.mediathekview.mserver.daten.Sender; +import org.junit.jupiter.api.Test; import de.mediathekview.mserver.crawler.basic.CrawlerUrlDTO; import de.mediathekview.mserver.crawler.basic.TopicUrlDTO; -import org.junit.Test; import java.util.Queue; import java.util.Set; @@ -13,7 +13,7 @@ import static org.hamcrest.CoreMatchers.notNullValue; import static org.hamcrest.MatcherAssert.assertThat; -public class SrfTopicOverviewTaskTest extends SrfTaskTestBase { +class SrfTopicOverviewTaskTest extends SrfTaskTestBase { private Set executeTask() { final Queue urls = new ConcurrentLinkedQueue<>(); @@ -25,7 +25,7 @@ private Set executeTask() { } @Test - public void testOverviewWithSinglePage() { + void testOverviewWithSinglePage() { final String requestUrl = "/play/v3/api/srf/production/videos-by-show-id?showId=1"; setupSuccessfulJsonResponse(requestUrl, "/srf/srf_topic_page1.json"); @@ -36,7 +36,7 @@ public void testOverviewWithSinglePage() { } @Test - public void testOverviewWithMultiplePagesLimitSubpagesSmallerThanSubpageCount() { + void testOverviewWithMultiplePagesLimitSubpagesSmallerThanSubpageCount() { rootConfig.getSenderConfig(Sender.SRF).setMaximumSubpages(1); final String requestUrl = "/play/v3/api/srf/production/videos-by-show-id?showId=1"; diff --git a/src/test/java/de/mediathekview/mserver/crawler/swr/SwrUrlOptimizerTest.java b/src/test/java/de/mediathekview/mserver/crawler/swr/SwrUrlOptimizerTest.java index cc41136eb..ef1fda3aa 100644 --- a/src/test/java/de/mediathekview/mserver/crawler/swr/SwrUrlOptimizerTest.java +++ b/src/test/java/de/mediathekview/mserver/crawler/swr/SwrUrlOptimizerTest.java @@ -5,7 +5,7 @@ import de.mediathekview.mserver.crawler.ard.ArdCrawler; import de.mediathekview.mserver.crawler.ard.ArdUrlOptimizer; import de.mediathekview.mserver.progress.listeners.SenderProgressListener; -import de.mediathekview.mserver.testhelper.WireMockTestBaseJUnit5; +import de.mediathekview.mserver.testhelper.WireMockTestBase; import org.junit.jupiter.api.Test; import java.util.ArrayList; @@ -14,7 +14,7 @@ import static org.assertj.core.api.Assertions.assertThat; -class SwrUrlOptimizerTest extends WireMockTestBaseJUnit5 { +class SwrUrlOptimizerTest extends WireMockTestBase { @Test void optimizeHdUrlTestFullHdExists() { diff --git a/src/test/java/de/mediathekview/mserver/crawler/zdf/ZdfConfigurationTest.java b/src/test/java/de/mediathekview/mserver/crawler/zdf/ZdfConfigurationTest.java index e3d7d1f6d..5734c5e44 100644 --- a/src/test/java/de/mediathekview/mserver/crawler/zdf/ZdfConfigurationTest.java +++ b/src/test/java/de/mediathekview/mserver/crawler/zdf/ZdfConfigurationTest.java @@ -1,29 +1,29 @@ package de.mediathekview.mserver.crawler.zdf; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import java.util.Optional; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.equalTo; -public class ZdfConfigurationTest { +class ZdfConfigurationTest { private ZdfConfiguration target; - @Before - public void before() { + @BeforeEach + void before() { target = new ZdfConfiguration(); } @Test - public void getSearchAuthKeyReturnsDefaultIfSetNotCalled() { + void getSearchAuthKeyReturnsDefaultIfSetNotCalled() { assertThat(Optional.of(ZdfConfiguration.AUTH_KEY_SEARCH), equalTo(target.getSearchAuthKey())); } @Test - public void getSearchAuthKeyReturnsValueUsedInSetBefore() { + void getSearchAuthKeyReturnsValueUsedInSetBefore() { final String value = "my bearer"; target.setSearchAuthKey(value); @@ -33,12 +33,12 @@ public void getSearchAuthKeyReturnsValueUsedInSetBefore() { } @Test - public void getVideoAuthKeyReturnsDefaultIfSetNotCalled() { + void getVideoAuthKeyReturnsDefaultIfSetNotCalled() { assertThat(Optional.of(ZdfConfiguration.AUTH_KEY_VIDEO), equalTo(target.getVideoAuthKey())); } @Test - public void getVideoAuthKeyReturnsValueUsedInSetBefore() { + void getVideoAuthKeyReturnsValueUsedInSetBefore() { final String value = "my bearer"; target.setVideoAuthKey(value); diff --git a/src/test/java/de/mediathekview/mserver/crawler/zdf/ZdfVideoUrlOptimizerTest.java b/src/test/java/de/mediathekview/mserver/crawler/zdf/ZdfVideoUrlOptimizerTest.java index 83a13408c..ea845bc6a 100644 --- a/src/test/java/de/mediathekview/mserver/crawler/zdf/ZdfVideoUrlOptimizerTest.java +++ b/src/test/java/de/mediathekview/mserver/crawler/zdf/ZdfVideoUrlOptimizerTest.java @@ -11,27 +11,27 @@ import java.util.Collection; import java.util.Optional; import java.util.concurrent.ForkJoinPool; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; -public class ZdfVideoUrlOptimizerTest extends WireMockTestBase { +class ZdfVideoUrlOptimizerTest extends WireMockTestBase { private ZdfVideoUrlOptimizer target; - @Before - public void setup() { + @BeforeEach + void setup() { target = new ZdfVideoUrlOptimizer(createCrawler()); } @Test - public void getOptimizedUrlNormalTestAlreadyBestQuality() { + void getOptimizedUrlNormalTestAlreadyBestQuality() { final String url = getWireMockBaseUrlSafe() + "/video_2328k_p35v11.mp4"; assertGetOptimizedUrlNormal(url, url); } @Test - public void getOptimizedUrlNormalTestBetterUrlExists() { + void getOptimizedUrlNormalTestBetterUrlExists() { final String url = getWireMockBaseUrlSafe() + "/video_1456k_p13v11.mp4"; final String expectedUrl = getWireMockBaseUrlSafe() + "/video_2328k_p35v11.mp4"; @@ -40,7 +40,7 @@ public void getOptimizedUrlNormalTestBetterUrlExists() { } @Test - public void getOptimizedUrlNormalTestBetterUrlExists2() { + void getOptimizedUrlNormalTestBetterUrlExists2() { final String url = getWireMockBaseUrlSafe() + "/video_1628k_p13v15.mp4"; final String expectedUrl = getWireMockBaseUrlSafe() + "/video_2360k_p35v15.mp4"; @@ -49,7 +49,7 @@ public void getOptimizedUrlNormalTestBetterUrlExists2() { } @Test - public void getOptimizedUrlNormalTestBetterUrlNotExists() { + void getOptimizedUrlNormalTestBetterUrlNotExists() { final String url = getWireMockBaseUrlSafe() + "/video_2256k_p14v12.mp4"; setupHeadResponse("/video_2328k_p35v12.mp4", 404); @@ -57,14 +57,14 @@ public void getOptimizedUrlNormalTestBetterUrlNotExists() { } @Test - public void getOptimizedUrlHdTestAlreadyBestQuality() { + void getOptimizedUrlHdTestAlreadyBestQuality() { final String url = getWireMockBaseUrlSafe() + "/video_6660k_p37v17.mp4"; assertGetOptimizedUrlHd(url, url); } @Test - public void getOptimizedUrlHdTestBetterUrlExists() { + void getOptimizedUrlHdTestBetterUrlExists() { final String url = getWireMockBaseUrlSafe() + "/video_6628k_p61v17.mp4"; final String expectedUrl = getWireMockBaseUrlSafe() + "/video_6660k_p37v17.mp4"; @@ -73,7 +73,7 @@ public void getOptimizedUrlHdTestBetterUrlExists() { } @Test - public void getOptimizedUrlHdTestBetterUrlNotExists() { + void getOptimizedUrlHdTestBetterUrlNotExists() { final String url = getWireMockBaseUrlSafe() + "/video_3360k_p36v17.mp4"; setupHeadResponse("/video_6660k_p37v17.mp4", 404); @@ -81,7 +81,7 @@ public void getOptimizedUrlHdTestBetterUrlNotExists() { } @Test - public void determineUrlHdTestFirstUrlExists() { + void determineUrlHdTestFirstUrlExists() { final String url = getWireMockBaseUrlSafe() + "/video_1628k_p13v17.mp4"; final String expectedUrl = getWireMockBaseUrlSafe() + "/video_6660k_p37v17.mp4"; @@ -90,7 +90,7 @@ public void determineUrlHdTestFirstUrlExists() { } @Test - public void determineUrlHdTestFirstUrlExists2() { + void determineUrlHdTestFirstUrlExists2() { final String url = getWireMockBaseUrlSafe() + "/video_2360k_p35v17.mp4"; final String expectedUrl = getWireMockBaseUrlSafe() + "/video_6660k_p37v17.mp4"; @@ -99,7 +99,7 @@ public void determineUrlHdTestFirstUrlExists2() { } @Test - public void determineUrlHdTestFirstUrlExists3() { + void determineUrlHdTestFirstUrlExists3() { final String url = getWireMockBaseUrlSafe() + "/video_3328k_p15v17.mp4"; final String expectedUrl = getWireMockBaseUrlSafe() + "/video_6660k_p37v17.mp4"; @@ -108,7 +108,7 @@ public void determineUrlHdTestFirstUrlExists3() { } @Test - public void determineUrlHdTestSecondUrlExists() { + void determineUrlHdTestSecondUrlExists() { final String url = getWireMockBaseUrlSafe() + "/video_1628k_p13v17.mp4"; final String expectedUrl = getWireMockBaseUrlSafe() + "/video_6628k_p61v17.mp4"; @@ -118,7 +118,7 @@ public void determineUrlHdTestSecondUrlExists() { } @Test - public void determineUrlHdTestNoUrlExists() { + void determineUrlHdTestNoUrlExists() { final String url = getWireMockBaseUrlSafe() + "/video_1628k_p13v17.mp4"; setupHeadResponse("/video_6660k_p37v17.mp4", 404); @@ -127,7 +127,7 @@ public void determineUrlHdTestNoUrlExists() { } @Test - public void determineUrlHdTestBothUrlExists() { + void determineUrlHdTestBothUrlExists() { final String url = getWireMockBaseUrlSafe() + "/video_1628k_p13v17.mp4"; final String expectedUrl = getWireMockBaseUrlSafe() + "/video_6660k_p37v17.mp4"; @@ -137,7 +137,7 @@ public void determineUrlHdTestBothUrlExists() { } @Test - public void determineUrlHdTestNMappingExists() { + void determineUrlHdTestNMappingExists() { final String url = getWireMockBaseUrlSafe() + "/video_1422k_p13v12.mp4"; assertDetermineUrlHd(Optional.empty(), url); diff --git a/src/test/java/de/mediathekview/mserver/crawler/zdf/json/ZdfDayPageDeserializerTest.java b/src/test/java/de/mediathekview/mserver/crawler/zdf/json/ZdfDayPageDeserializerTest.java index 91222db34..49ffbe7a3 100644 --- a/src/test/java/de/mediathekview/mserver/crawler/zdf/json/ZdfDayPageDeserializerTest.java +++ b/src/test/java/de/mediathekview/mserver/crawler/zdf/json/ZdfDayPageDeserializerTest.java @@ -12,31 +12,11 @@ import java.util.Collection; import java.util.Optional; import org.hamcrest.Matchers; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; -import org.junit.runners.Parameterized.Parameters; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; -@RunWith(Parameterized.class) public class ZdfDayPageDeserializerTest { - private final ZdfDayPageDeserializer target; - private final String jsonFile; - private final CrawlerUrlDTO[] expectedEntries; - private final Optional expectedNextPageUrl; - - public ZdfDayPageDeserializerTest( - final String aJsonFile, - final CrawlerUrlDTO[] aExpectedEntries, - final Optional aExpectedNextPageUrl) { - target = new ZdfDayPageDeserializer(ZdfConstants.URL_API_BASE, ZdfConstants.PARTNER_TO_SENDER); - - jsonFile = aJsonFile; - expectedEntries = aExpectedEntries; - expectedNextPageUrl = aExpectedNextPageUrl; - } - - @Parameters public static Collection data() { return Arrays.asList( new Object[][] { @@ -99,8 +79,11 @@ public static Collection data() { }); } - @Test - public void deserializeTest() { + @MethodSource("data") + @ParameterizedTest + void deserializeTest(final String jsonFile, final CrawlerUrlDTO[] expectedEntries, final Optional expectedNextPageUrl) { + ZdfDayPageDeserializer target = new ZdfDayPageDeserializer(ZdfConstants.URL_API_BASE, ZdfConstants.PARTNER_TO_SENDER); + final JsonObject json = JsonFileReader.readJson(jsonFile); final ZdfDayPageDto actual = target.deserialize(json, ZdfDayPageDto.class, null); diff --git a/src/test/java/de/mediathekview/mserver/crawler/zdf/json/ZdfDownloadDtoDeserializerTest.java b/src/test/java/de/mediathekview/mserver/crawler/zdf/json/ZdfDownloadDtoDeserializerTest.java index 2f34dea90..e3d334162 100644 --- a/src/test/java/de/mediathekview/mserver/crawler/zdf/json/ZdfDownloadDtoDeserializerTest.java +++ b/src/test/java/de/mediathekview/mserver/crawler/zdf/json/ZdfDownloadDtoDeserializerTest.java @@ -6,10 +6,8 @@ import de.mediathekview.mserver.crawler.zdf.ZdfConstants; import de.mediathekview.mserver.testhelper.AssertFilm; import de.mediathekview.mserver.testhelper.JsonFileReader; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; -import org.junit.runners.Parameterized.Parameters; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; import java.util.Arrays; import java.util.Collection; @@ -18,62 +16,8 @@ import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.MatcherAssert.assertThat; -@RunWith(Parameterized.class) public class ZdfDownloadDtoDeserializerTest { - private final String jsonFile; - private final String expectedUrlSmall; - private final String expectedUrlNormal; - private final String expectedUrlHd; - private final String expectedUrlUhd; - private final String expectedUrlSmallEnglish; - private final String expectedUrlNormalEnglish; - private final String expectedUrlHdEnglish; - private final String expectedUrlUhdEnglish; - private final String expectedUrlSmallAd; - private final String expectedUrlNormalAd; - private final String expectedUrlHdAd; - private final String expectedUrlUhdAd; - private final Optional expectedSubtitle; - private final Optional expectedSubtitleEnglish; - private final Optional expectedGeo; - - public ZdfDownloadDtoDeserializerTest( - final String aJsonFile, - final String aExpectedUrlSmall, - final String aExpectedUrlNormal, - final String aExpectedUrlHd, - final String aExpectedUrlUhd, - final String aExpectedUrlSmallEnglish, - final String aExpectedUrlNormalEnglish, - final String aExpectedUrlHdEnglish, - final String aExpectedUrlUhdEnglish, - final String aExpectedUrlSmallAd, - final String aExpectedUrlNormalAd, - final String aExpectedUrlHdAd, - final String aExpectedUrlUhdAd, - final Optional aExpectedSubtitle, - final Optional aExpectedSubtitleEnglish, - final Optional aExpectedGeo) { - jsonFile = aJsonFile; - expectedUrlSmall = aExpectedUrlSmall; - expectedUrlNormal = aExpectedUrlNormal; - expectedUrlHd = aExpectedUrlHd; - expectedUrlUhd = aExpectedUrlUhd; - expectedUrlSmallEnglish = aExpectedUrlSmallEnglish; - expectedUrlNormalEnglish = aExpectedUrlNormalEnglish; - expectedUrlHdEnglish = aExpectedUrlHdEnglish; - expectedUrlUhdEnglish = aExpectedUrlUhdEnglish; - this.expectedUrlSmallAd = aExpectedUrlSmallAd; - this.expectedUrlNormalAd = aExpectedUrlNormalAd; - this.expectedUrlHdAd = aExpectedUrlHdAd; - this.expectedUrlUhdAd = aExpectedUrlUhdAd; - expectedSubtitle = aExpectedSubtitle; - expectedSubtitleEnglish = aExpectedSubtitleEnglish; - expectedGeo = aExpectedGeo; - } - - @Parameters public static Collection data() { return Arrays.asList( new Object[][] { @@ -247,8 +191,9 @@ public static Collection data() { }); } - @Test - public void test() { + @MethodSource("data") + @ParameterizedTest + void test(final String jsonFile, final String expectedUrlSmall, final String expectedUrlNormal, final String expectedUrlHd, final String expectedUrlUhd, final String expectedUrlSmallEnglish, final String expectedUrlNormalEnglish, final String expectedUrlHdEnglish, final String expectedUrlUhdEnglish, final String expectedUrlSmallAd, final String expectedUrlNormalAd, final String expectedUrlHdAd, final String expectedUrlUhdAd, final Optional expectedSubtitle, final Optional expectedSubtitleEnglish, final Optional expectedGeo) { final JsonObject json = JsonFileReader.readJson(jsonFile); diff --git a/src/test/java/de/mediathekview/mserver/crawler/zdf/json/ZdfFilmDetailDeserializerTest.java b/src/test/java/de/mediathekview/mserver/crawler/zdf/json/ZdfFilmDetailDeserializerTest.java index c08d9159f..4846bc754 100644 --- a/src/test/java/de/mediathekview/mserver/crawler/zdf/json/ZdfFilmDetailDeserializerTest.java +++ b/src/test/java/de/mediathekview/mserver/crawler/zdf/json/ZdfFilmDetailDeserializerTest.java @@ -10,6 +10,9 @@ import de.mediathekview.mserver.crawler.zdf.ZdfFilmDtoOld; import de.mediathekview.mserver.testhelper.AssertFilm; import de.mediathekview.mserver.testhelper.JsonFileReader; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; + import java.time.Duration; import java.time.LocalDateTime; import java.util.Arrays; @@ -17,49 +20,9 @@ import java.util.HashMap; import java.util.Map; import java.util.Optional; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; -import org.junit.runners.Parameterized.Parameters; -@RunWith(Parameterized.class) public class ZdfFilmDetailDeserializerTest { - private final String jsonFile; - private final Sender expectedSender; - private final String expectedTopic; - private final String expectedTitle; - private final LocalDateTime expectedTime; - private final Duration expectedDuration; - private final String expectedDescription; - private final String expectedWebsite; - private final String expectedDownloadUrl; - private final Optional expectedDownloadUrlSignLanguage; - - public ZdfFilmDetailDeserializerTest( - final String aJsonFile, - final Sender aSender, - final String aExpectedTopic, - final String aExpectedTitle, - final LocalDateTime aExpectedTime, - final Duration aExpectedDuration, - final String aExpectedDescription, - final String aExpectedWebsite, - final String aExpectedDownloadUrl, - final Optional aExpectedDownloadUrlSignLanguage) { - jsonFile = aJsonFile; - expectedSender = aSender; - expectedTopic = aExpectedTopic; - expectedTitle = aExpectedTitle; - expectedTime = aExpectedTime; - expectedDuration = aExpectedDuration; - expectedDescription = aExpectedDescription; - expectedWebsite = aExpectedWebsite; - expectedDownloadUrl = aExpectedDownloadUrl; - expectedDownloadUrlSignLanguage = aExpectedDownloadUrlSignLanguage; - } - - @Parameters public static Collection data() { return Arrays.asList( new Object[][] { @@ -175,8 +138,9 @@ public static Collection data() { }); } - @Test - public void test() { + @MethodSource("data") + @ParameterizedTest + void test(final String jsonFile, final Sender expectedSender, final String expectedTopic, final String expectedTitle, final LocalDateTime expectedTime, final Duration expectedDuration, final String expectedDescription, final String expectedWebsite, final String expectedDownloadUrl, final Optional expectedDownloadUrlSignLanguage) { final JsonObject json = JsonFileReader.readJson(jsonFile); final ZdfFilmDetailDeserializer target = new ZdfFilmDetailDeserializer(ZdfConstants.URL_API_BASE, createPartnerMap()); diff --git a/src/test/java/de/mediathekview/mserver/crawler/zdf/tasks/ZdfDayPageTaskTest.java b/src/test/java/de/mediathekview/mserver/crawler/zdf/tasks/ZdfDayPageTaskTest.java index abbb4456f..28bc21a28 100644 --- a/src/test/java/de/mediathekview/mserver/crawler/zdf/tasks/ZdfDayPageTaskTest.java +++ b/src/test/java/de/mediathekview/mserver/crawler/zdf/tasks/ZdfDayPageTaskTest.java @@ -3,7 +3,7 @@ import de.mediathekview.mserver.crawler.basic.CrawlerUrlDTO; import de.mediathekview.mserver.crawler.zdf.ZdfConstants; import org.hamcrest.Matchers; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.Collection; import java.util.Set; @@ -13,10 +13,10 @@ import static org.hamcrest.CoreMatchers.notNullValue; import static org.hamcrest.MatcherAssert.assertThat; -public class ZdfDayPageTaskTest extends ZdfTaskTestBase { +class ZdfDayPageTaskTest extends ZdfTaskTestBase { @Test - public void testWithSinglePage() { + void testWithSinglePage() { final CrawlerUrlDTO[] expectedEntries = new CrawlerUrlDTO[] { @@ -40,7 +40,7 @@ public void testWithSinglePage() { } @Test - public void testWithMultiplePages() { + void testWithMultiplePages() { final String requestUrl = "/search/documents?hasVideo=true&q=*&types=page-video&sortOrder=desc&from=2018-02-24T12:00:00.000%2B01:00&to=2018-02-24T14:00:00.878%2B01:00&sortBy=date&page=1"; @@ -59,7 +59,7 @@ public void testWithMultiplePages() { } @Test - public void testOverviewPageNotFound() { + void testOverviewPageNotFound() { final String requestUrl = "/url/notfound"; wireMockServer.stubFor( diff --git a/src/test/java/de/mediathekview/mserver/crawler/zdf/tasks/ZdfFilmDetailTaskMultipleLanguagesTest.java b/src/test/java/de/mediathekview/mserver/crawler/zdf/tasks/ZdfFilmDetailTaskMultipleLanguagesTest.java index d55812c30..7e37f4601 100644 --- a/src/test/java/de/mediathekview/mserver/crawler/zdf/tasks/ZdfFilmDetailTaskMultipleLanguagesTest.java +++ b/src/test/java/de/mediathekview/mserver/crawler/zdf/tasks/ZdfFilmDetailTaskMultipleLanguagesTest.java @@ -5,7 +5,7 @@ import de.mediathekview.mserver.daten.Sender; import de.mediathekview.mserver.crawler.basic.CrawlerUrlDTO; import de.mediathekview.mserver.testhelper.AssertFilm; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.time.Duration; import java.time.LocalDateTime; @@ -15,10 +15,10 @@ import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.MatcherAssert.assertThat; -public class ZdfFilmDetailTaskMultipleLanguagesTest extends ZdfTaskTestBase { +class ZdfFilmDetailTaskMultipleLanguagesTest extends ZdfTaskTestBase { @Test - public void testGermanAndEnglish() { + void testGermanAndEnglish() { final String[] expectedTitles = new String[] { diff --git a/src/test/java/de/mediathekview/mserver/crawler/zdf/tasks/ZdfFilmDetailTaskTest.java b/src/test/java/de/mediathekview/mserver/crawler/zdf/tasks/ZdfFilmDetailTaskTest.java index 37dfcb683..933c2f583 100644 --- a/src/test/java/de/mediathekview/mserver/crawler/zdf/tasks/ZdfFilmDetailTaskTest.java +++ b/src/test/java/de/mediathekview/mserver/crawler/zdf/tasks/ZdfFilmDetailTaskTest.java @@ -1,15 +1,13 @@ package de.mediathekview.mserver.crawler.zdf.tasks; +import static org.hamcrest.CoreMatchers.equalTo; +import static org.hamcrest.MatcherAssert.assertThat; + +import de.mediathekview.mserver.crawler.basic.CrawlerUrlDTO; import de.mediathekview.mserver.daten.Film; import de.mediathekview.mserver.daten.GeoLocations; import de.mediathekview.mserver.daten.Sender; -import de.mediathekview.mserver.crawler.basic.CrawlerUrlDTO; import de.mediathekview.mserver.testhelper.AssertFilm; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; -import org.junit.runners.Parameterized.Parameters; - import java.time.Duration; import java.time.LocalDateTime; import java.util.Arrays; @@ -19,90 +17,11 @@ import java.util.Queue; import java.util.Set; import java.util.concurrent.ConcurrentLinkedQueue; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; -import static org.hamcrest.CoreMatchers.equalTo; -import static org.hamcrest.MatcherAssert.assertThat; - -@RunWith(Parameterized.class) public class ZdfFilmDetailTaskTest extends ZdfTaskTestBase { - private final String filmUrl; - private final String filmJsonFile; - private final String videoUrl; - private final String videoJsonFile; - private final String videoUrlDgs; - private final String videoJsonFileDgs; - private final String expectedTopic; - private final String expectedTitle; - private final LocalDateTime expectedTime; - private final Duration expectedDuration; - private final String expectedDescription; - private final String expectedWebsite; - private final String expectedUrlSmall; - private final String expectedUrlNormal; - private final String expectedUrlHd; - private final String expectedUrlAudioDescriptionSmall; - private final String expectedUrlAudioDescriptionNormal; - private final String expectedUrlAudioDescriptionHd; - private final String expectedUrlSignLanguageSmall; - private final String expectedUrlSignLanguageNormal; - private final String expectedUrlSignLanguageHd; - private final String expectedSubtitle; - private final GeoLocations expectedGeo; - private final boolean optimizeUrls; - - public ZdfFilmDetailTaskTest( - final String aFilmUrl, - final String aFilmJsonFile, - final String aVideoUrl, - final String aVideoJsonFile, - final String aVideoUrlDgs, - final String aVideoJsonFileDgs, - final String aExpectedTopic, - final String aExpectedTitle, - final LocalDateTime aExpectedTime, - final Duration aExpectedDuration, - final String aExpectedDescription, - final String aExpectedWebsite, - final String aExpectedUrlSmall, - final String aExpectedUrlNormal, - final String aExpectedUrlHd, - final String aExpectedUrlAudioDescriptionSmall, - final String aExpectedUrlAudioDescriptionNormal, - final String aExpectedUrlAudioDescriptionHd, - final String aExpectedUrlSignLanguageSmall, - final String aExpectedUrlSignLanguageNormal, - final String aExpectedUrlSignLanguageHd, - final String aExpectedSubtitle, - final GeoLocations aExpectedGeo, - final boolean aOptimizeUrls) { - filmUrl = aFilmUrl; - filmJsonFile = aFilmJsonFile; - videoUrl = aVideoUrl; - videoJsonFile = aVideoJsonFile; - videoUrlDgs = aVideoUrlDgs; - videoJsonFileDgs = aVideoJsonFileDgs; - expectedTopic = aExpectedTopic; - expectedTitle = aExpectedTitle; - expectedTime = aExpectedTime; - expectedDuration = aExpectedDuration; - expectedDescription = aExpectedDescription; - expectedWebsite = aExpectedWebsite; - expectedUrlSmall = buildWireMockUrl(aExpectedUrlSmall); - expectedUrlNormal = buildWireMockUrl(aExpectedUrlNormal); - expectedUrlHd = buildWireMockUrl(aExpectedUrlHd); - expectedUrlAudioDescriptionSmall = buildWireMockUrl(aExpectedUrlAudioDescriptionSmall); - expectedUrlAudioDescriptionNormal = buildWireMockUrl(aExpectedUrlAudioDescriptionNormal); - expectedUrlAudioDescriptionHd = buildWireMockUrl(aExpectedUrlAudioDescriptionHd); - expectedUrlSignLanguageSmall = buildWireMockUrl(aExpectedUrlSignLanguageSmall); - expectedUrlSignLanguageNormal = buildWireMockUrl(aExpectedUrlSignLanguageNormal); - expectedUrlSignLanguageHd = buildWireMockUrl(aExpectedUrlSignLanguageHd); - expectedSubtitle = buildWireMockUrl(aExpectedSubtitle); - expectedGeo = aExpectedGeo; - optimizeUrls = aOptimizeUrls; - } - - @Parameters public static Collection data() { return Arrays.asList( new Object[][] { @@ -193,10 +112,10 @@ public static Collection data() { "/zdf/zdf_video_details_with_dgs.json", "ZDFinfo Doku", "Geliebt, geduldet, getötet", - LocalDateTime.of(2022, 5, 5, 18, 0, 0), - Duration.ofMinutes(44).plusSeconds(24), - "Trotz aller Bemühung um Inklusion erleben Menschen mit Behinderungen in Deutschland immer noch täglich Ablehnung und Ausgrenzung. Warum ist das so? Und war das schon immer so?", - "https://www.zdf.de/dokumentation/zdfinfo-doku/geliebt-geduldet-getoetet-die-geschichte-von-menschen-mit-behinderungen-100.html", + LocalDateTime.of(2022, 5, 5, 18, 0, 0), + Duration.ofMinutes(44).plusSeconds(24), + "Trotz aller Bemühung um Inklusion erleben Menschen mit Behinderungen in Deutschland immer noch täglich Ablehnung und Ausgrenzung. Warum ist das so? Und war das schon immer so?", + "https://www.zdf.de/dokumentation/zdfinfo-doku/geliebt-geduldet-getoetet-die-geschichte-von-menschen-mit-behinderungen-100.html", "/none/zdf/22/05/220505_geliebt_geduldet_getoetet_inf/4/220505_geliebt_geduldet_getoetet_inf_a1a2_808k_p11v15.mp4", "/none/zdf/22/05/220505_geliebt_geduldet_getoetet_inf/4/220505_geliebt_geduldet_getoetet_inf_a1a2_1628k_p13v15.mp4", "", @@ -213,8 +132,33 @@ public static Collection data() { }); } - @Test - public void test() { + @MethodSource("data") + @ParameterizedTest + void test( + final String filmUrl, + final String filmJsonFile, + final String videoUrl, + final String videoJsonFile, + final String videoUrlDgs, + final String videoJsonFileDgs, + final String expectedTopic, + final String expectedTitle, + final LocalDateTime expectedTime, + final Duration expectedDuration, + final String expectedDescription, + final String expectedWebsite, + final String expectedUrlSmall, + final String expectedUrlNormal, + final String expectedUrlHd, + final String expectedUrlAudioDescriptionSmall, + final String expectedUrlAudioDescriptionNormal, + final String expectedUrlAudioDescriptionHd, + final String expectedUrlSignLanguageSmall, + final String expectedUrlSignLanguageNormal, + final String expectedUrlSignLanguageHd, + final String expectedSubtitle, + final GeoLocations expectedGeo, + final boolean optimizeUrls) { setupSuccessfulJsonResponse(filmUrl, filmJsonFile); setupSuccessfulJsonResponse(videoUrl, videoJsonFile); if (!videoUrlDgs.isEmpty()) { @@ -242,31 +186,34 @@ public void test() { expectedDescription, expectedWebsite, new GeoLocations[] {expectedGeo}, - expectedUrlSmall, - expectedUrlNormal, - expectedUrlHd, - expectedUrlSignLanguageSmall, - expectedUrlSignLanguageNormal, - expectedUrlSignLanguageHd, - expectedUrlAudioDescriptionSmall, - expectedUrlAudioDescriptionNormal, - expectedUrlAudioDescriptionHd, - expectedSubtitle); + buildWireMockUrl(expectedUrlSmall), + buildWireMockUrl(expectedUrlNormal), + buildWireMockUrl(expectedUrlHd), + buildWireMockUrl(expectedUrlSignLanguageSmall), + buildWireMockUrl(expectedUrlSignLanguageNormal), + buildWireMockUrl(expectedUrlSignLanguageHd), + buildWireMockUrl(expectedUrlAudioDescriptionSmall), + buildWireMockUrl(expectedUrlAudioDescriptionNormal), + buildWireMockUrl(expectedUrlAudioDescriptionHd), + buildWireMockUrl(expectedSubtitle)); } private Set executeTask(final String detailUrl) { final Queue urls = new ConcurrentLinkedQueue<>(); urls.add(new CrawlerUrlDTO(getWireMockBaseUrlSafe() + detailUrl)); - return new ZdfFilmDetailTask(createCrawler(), getWireMockBaseUrlSafe(), urls, null, createPartnerMap()).invoke(); + return new ZdfFilmDetailTask( + createCrawler(), getWireMockBaseUrlSafe(), urls, null, createPartnerMap()) + .invoke(); } - + private Map createPartnerMap() { Map partnerMap = new HashMap<>(); partnerMap.put("ZDFinfo", Sender.ZDF); partnerMap.put("ZDFneo", Sender.ZDF); - partnerMap.put("ZDF", Sender.ZDF); + partnerMap.put("ZDF", Sender.ZDF); partnerMap.put("EMPTY", Sender.ZDF); - // IGNORED Sender [KI.KA, WDR, PHOENIX, one, HR, 3sat, SWR, arte, BR, RBB, ARD, daserste, alpha, MDR, radiobremen, funk, ZDF, NDR, SR] + // IGNORED Sender [KI.KA, WDR, PHOENIX, one, HR, 3sat, SWR, arte, BR, RBB, ARD, daserste, alpha, + // MDR, radiobremen, funk, ZDF, NDR, SR] return partnerMap; } } diff --git a/src/test/java/de/mediathekview/mserver/crawler/zdf/tasks/ZdfIndexPageTaskTest.java b/src/test/java/de/mediathekview/mserver/crawler/zdf/tasks/ZdfIndexPageTaskTest.java index cbb62621c..818f5bcaa 100644 --- a/src/test/java/de/mediathekview/mserver/crawler/zdf/tasks/ZdfIndexPageTaskTest.java +++ b/src/test/java/de/mediathekview/mserver/crawler/zdf/tasks/ZdfIndexPageTaskTest.java @@ -1,57 +1,29 @@ package de.mediathekview.mserver.crawler.zdf.tasks; -import de.mediathekview.mserver.daten.Sender; -import de.mediathekview.mserver.base.config.MServerConfigManager; -import de.mediathekview.mserver.base.webaccess.JsoupConnection; +import static org.hamcrest.CoreMatchers.notNullValue; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.equalTo; +import static org.junit.jupiter.api.Assertions.fail; +import static org.mockito.Mockito.when; + import de.mediathekview.mserver.crawler.zdf.ZdfConfiguration; import de.mediathekview.mserver.crawler.zdf.ZdfConstants; import de.mediathekview.mserver.crawler.zdf.ZdfCrawler; import de.mediathekview.mserver.testhelper.JsoupMock; -import org.jsoup.nodes.Document; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; -import org.mockito.Mock; -import org.mockito.MockitoAnnotations; - import java.io.IOException; import java.util.*; +import org.jsoup.nodes.Document; +import org.junit.jupiter.api.extension.ExtendWith; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; +import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; -import static org.hamcrest.CoreMatchers.notNullValue; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.equalTo; -import static org.junit.Assert.fail; -import static org.mockito.Mockito.when; - -@RunWith(Parameterized.class) +@ExtendWith(MockitoExtension.class) public class ZdfIndexPageTaskTest { - private final String htmlFile; - private final Optional expectedBearerSearch; - private final Optional expectedBearerVideo; - private final String htmlFileSubpage; - private final String urlSubpage; - - @Mock JsoupConnection jsoupConnection; - - @Mock - ZdfCrawler crawler; - - public ZdfIndexPageTaskTest( - final String aHtmlFile, - final String aHtmlFileSubpage, - final String aUrlSubpage, - final Optional aExpectedBearerSearch, - final Optional aExpectedBearerVideo) { - htmlFile = aHtmlFile; - htmlFileSubpage = aHtmlFileSubpage; - urlSubpage = aUrlSubpage; - expectedBearerSearch = aExpectedBearerSearch; - expectedBearerVideo = aExpectedBearerVideo; - } + @Mock ZdfCrawler crawler; - @Parameterized.Parameters public static Collection data() { return Arrays.asList( new Object[][] { @@ -62,27 +34,24 @@ public static Collection data() { Optional.of("c4aa601db94912547f29ba036fbc96165cb18ee7"), Optional.of("d984c7d728b6a3912b41b70e715c7ba26cbf4872") }, - { - "/zdf/zdf_index_page_with_bearer2.html", - "", - "", - Optional.of("5bb200097db507149612d7d983131d06c79706d5"), - Optional.of("20c238b5345eb428d01ae5c748c5076f033dfcc7") - } + { + "/zdf/zdf_index_page_with_bearer2.html", + "", + "", + Optional.of("5bb200097db507149612d7d983131d06c79706d5"), + Optional.of("20c238b5345eb428d01ae5c748c5076f033dfcc7") + } }); } - @Before - public void setUp() { - MockitoAnnotations.openMocks(this); - } - - @Test - public void test() { - when(crawler.getCrawlerConfig()) - .thenReturn( - new MServerConfigManager("MServer-JUnit-Config.yaml").getSenderConfig(Sender.ZDF)); - + @MethodSource("data") + @ParameterizedTest + void test( + final String htmlFile, + final String htmlFileSubpage, + final String urlSubpage, + final Optional expectedBearerSearch, + final Optional expectedBearerVideo) { final Map urlMapping = new HashMap<>(); urlMapping.put(ZdfConstants.URL_BASE, htmlFile); if (!urlSubpage.isEmpty()) { @@ -92,13 +61,11 @@ public void test() { (url, fileName) -> { try { final Document document = JsoupMock.getFileDocument(fileName); - when(jsoupConnection.requestBodyAsHtmlDocument(url)).thenReturn(document); when(crawler.requestBodyAsHtmlDocument(url)).thenReturn(document); } catch (final IOException iox) { fail(); } }); - when(crawler.getConnection()).thenReturn(jsoupConnection); final ZdfIndexPageTask target = new ZdfIndexPageTask(crawler, ZdfConstants.URL_BASE); diff --git a/src/test/java/de/mediathekview/mserver/testhelper/FileReader.java b/src/test/java/de/mediathekview/mserver/testhelper/FileReader.java index 03bf0b890..5ac7a86a8 100644 --- a/src/test/java/de/mediathekview/mserver/testhelper/FileReader.java +++ b/src/test/java/de/mediathekview/mserver/testhelper/FileReader.java @@ -7,7 +7,7 @@ import java.nio.file.Path; import java.nio.file.Paths; -import static org.junit.Assert.fail; +import static org.junit.jupiter.api.Assertions.fail; public class FileReader { diff --git a/src/test/java/de/mediathekview/mserver/testhelper/JsonFileReader.java b/src/test/java/de/mediathekview/mserver/testhelper/JsonFileReader.java index 9479597c4..6b33659a5 100644 --- a/src/test/java/de/mediathekview/mserver/testhelper/JsonFileReader.java +++ b/src/test/java/de/mediathekview/mserver/testhelper/JsonFileReader.java @@ -14,7 +14,7 @@ import java.nio.file.Paths; import java.util.function.Function; -import static org.junit.Assert.fail; +import static org.junit.jupiter.api.Assertions.fail; /** Reads a json file */ public class JsonFileReader { diff --git a/src/test/java/de/mediathekview/mserver/testhelper/WireMockTestBase.java b/src/test/java/de/mediathekview/mserver/testhelper/WireMockTestBase.java index 4246d430c..1e895b900 100644 --- a/src/test/java/de/mediathekview/mserver/testhelper/WireMockTestBase.java +++ b/src/test/java/de/mediathekview/mserver/testhelper/WireMockTestBase.java @@ -5,8 +5,6 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.jetbrains.annotations.NotNull; -import org.junit.After; -import org.junit.Before; import jakarta.annotation.Nullable; import org.junit.jupiter.api.AfterEach; @@ -25,7 +23,6 @@ public abstract class WireMockTestBase { protected WireMockServer wireMockServer = new WireMockServer(options().dynamicPort()); private boolean wireMockStarted = false; - @Before @BeforeEach public void setUpClass() { LOG.info("Setting up WireMock test class"); @@ -42,7 +39,6 @@ protected synchronized void startWireMock() { } } - @After @AfterEach public void tearDownClass() { LOG.info("Tear down WireMock test class"); diff --git a/src/test/java/de/mediathekview/mserver/testhelper/WireMockTestBaseJUnit5.java b/src/test/java/de/mediathekview/mserver/testhelper/WireMockTestBaseJUnit5.java deleted file mode 100644 index 6f214eb92..000000000 --- a/src/test/java/de/mediathekview/mserver/testhelper/WireMockTestBaseJUnit5.java +++ /dev/null @@ -1,166 +0,0 @@ -package de.mediathekview.mserver.testhelper; - -import com.github.tomakehurst.wiremock.WireMockServer; -import de.mediathekview.mserver.crawler.basic.CrawlerUrlDTO; -import org.jetbrains.annotations.NotNull; -import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.BeforeEach; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import jakarta.annotation.Nullable; -import java.util.Optional; -import java.util.Queue; -import java.util.concurrent.ConcurrentLinkedQueue; - -import static com.github.tomakehurst.wiremock.client.WireMock.*; -import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.options; - -/** base class of tests with WireMock. */ -public abstract class WireMockTestBaseJUnit5 { - private final Logger LOG = LoggerFactory.getLogger(WireMockTestBaseJUnit5.class); - protected WireMockServer wireMockServer = new WireMockServer(options().dynamicPort()); - private boolean wireMockStarted = false; - - @BeforeEach - public void setUpClass() { - LOG.info("Setting up WireMock test class"); - startWireMock(); - } - - protected synchronized void startWireMock() { - if (wireMockStarted) { - LOG.info("Trying to start already started WireMock"); - } else { - LOG.info("Starting WireMock"); - wireMockServer.start(); - wireMockStarted = true; - } - } - - @AfterEach - public void tearDownClass() { - LOG.info("Tear down WireMock test class"); - LOG.info("Stopping WireMock"); - wireMockServer.stop(); - wireMockStarted = false; - } - - protected String buildWireMockUrl(final String url) { - if (url != null && url.startsWith("/")) { - return getWireMockBaseUrlSafe() + url; - } - return url; - } - - protected String fixupAllWireMockUrls(final String text) { - if (text == null) { - return null; - } - return text.replaceAll("localhost:\\d+", getWireMockHostPort()); - } - - protected String getWireMockBaseUrlSafe() { - if (!wireMockStarted) { - startWireMock(); - } - return wireMockServer.baseUrl(); - } - - protected Queue createCrawlerUrlDto(final String requestUrl) { - final Queue input = new ConcurrentLinkedQueue<>(); - input.add(new CrawlerUrlDTO(getWireMockBaseUrlSafe() + requestUrl)); - return input; - } - - protected void setupSuccessfulJsonResponse(final String requestUrl, final String aResponseFile) { - final String jsonBody = FileReader.readFile(aResponseFile, getWireMockHostPort()); - LOG.info("Adding successful JSON response stub for {}", requestUrl); - wireMockServer.stubFor( - get(urlEqualTo(requestUrl)) - .willReturn( - aResponse() - .withHeader("Content-Type", "application/json") - .withStatus(200) - .withBody(jsonBody))); - } - - @NotNull - private String getWireMockHostPort() { - return "localhost:" + wireMockServer.port(); - } - - protected void setupSuccessfulJsonPostResponse( - final String requestUrl, final String aResponseFile) { - setupSuccessfulJsonPostResponse(requestUrl, aResponseFile, null); - } - - protected void setupSuccessfulJsonPostResponse( - final String requestUrl, final String aResponseFile, @Nullable final Integer status) { - final String jsonBody = FileReader.readFile(aResponseFile, getWireMockHostPort()); - LOG.info("Adding successful JSON post response stub for {}", requestUrl); - wireMockServer.stubFor( - post(urlEqualTo(requestUrl)) - .willReturn( - aResponse() - .withHeader("Content-Type", "application/json") - .withStatus(Optional.ofNullable(status).orElse(200)) - .withBody(jsonBody))); - } - - protected void setupSuccessfulJsonPostResponse( - final String requestUrl, final String responsefile, final String requestBodyPart, @Nullable final Integer status) { - final String jsonBody = FileReader.readFile(responsefile); - wireMockServer.stubFor( - post(urlEqualTo(requestUrl)) - .withRequestBody(containing(requestBodyPart)) - .willReturn( - aResponse() - .withHeader("Content-Type", "application/json") - .withStatus(Optional.ofNullable(status).orElse(200)) - .withBody(jsonBody))); - } - - protected void setupSuccessfulXmlResponse(final String requestUrl, final String aResponseFile) { - final String xmlBody = FileReader.readFile(aResponseFile, getWireMockHostPort()); - LOG.info("Adding successful XML response stub for {}", requestUrl); - wireMockServer.stubFor( - get(urlEqualTo(requestUrl)) - .willReturn( - aResponse() - .withHeader("Content-Type", "application/xml") - .withStatus(200) - .withBody(xmlBody))); - } - - protected void setupSuccessfulResponse(final String requestUrl, final String aResponseFile) { - final String body = FileReader.readFile(aResponseFile, getWireMockHostPort()); - LOG.info("Adding successful response stub for {}", requestUrl); - wireMockServer.stubFor( - get(urlEqualTo(requestUrl)).willReturn(aResponse().withStatus(200).withBody(body))); - } - - protected void setupHeadResponse(final String requestUrl, final int aHttpCode) { - LOG.info("Adding successful HEAD response stub for {}", requestUrl); - wireMockServer.stubFor( - head(urlEqualTo(requestUrl)).willReturn(aResponse().withStatus(aHttpCode))); - } - - protected void setupHeadResponse(final int aHttpCode) { - LOG.info("Adding {} HEAD response stub for any URL.", aHttpCode); - wireMockServer.stubFor(head(anyUrl()).willReturn(aResponse().withStatus(aHttpCode))); - } - - protected void setupResponseWithoutBody(final String requestUrl, final int aHttpCode) { - LOG.info("Adding {} stub for {}.", aHttpCode, requestUrl); - wireMockServer.stubFor( - get(urlEqualTo(requestUrl)).willReturn(aResponse().withStatus(aHttpCode))); - } - - protected void setupHeadRequestForFileSize() { - LOG.info("Adding file size HEAD request stub for any url."); - wireMockServer.stubFor( - head(urlMatching(".*")) - .willReturn(aResponse().withStatus(200).withHeader("Content-Length", "1"))); - } -}