From cbab7b7a396ab4389e9b38051b7a153878449989 Mon Sep 17 00:00:00 2001 From: odeyalo Date: Sat, 25 Oct 2025 22:38:38 +0300 Subject: [PATCH 1/7] Use AbstractIntegrationTest for CreatePlaylistEndpointTest --- .../controller/CreatePlaylistEndpointTest.java | 16 +++------------- .../testing/core/AbstractIntegrationTest.java | 6 ++++++ 2 files changed, 9 insertions(+), 13 deletions(-) diff --git a/src/test/java/com/odeyalo/sonata/playlists/controller/CreatePlaylistEndpointTest.java b/src/test/java/com/odeyalo/sonata/playlists/controller/CreatePlaylistEndpointTest.java index 3b4ad73..9dc5625 100644 --- a/src/test/java/com/odeyalo/sonata/playlists/controller/CreatePlaylistEndpointTest.java +++ b/src/test/java/com/odeyalo/sonata/playlists/controller/CreatePlaylistEndpointTest.java @@ -10,27 +10,17 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestInstance; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.autoconfigure.web.reactive.AutoConfigureWebTestClient; -import org.springframework.boot.test.context.SpringBootTest; import org.springframework.http.HttpHeaders; -import org.springframework.test.context.TestPropertySource; import org.springframework.test.web.reactive.server.WebTestClient; import reactor.core.publisher.Hooks; import testing.SonataPlaylistHttpTestClient; import testing.asserts.PlaylistDtoAssert; -import testing.spring.AutoConfigureSonataStubs; -import testing.spring.autoconfigure.AutoConfigureSonataPlaylistHttpClient; +import testing.core.AbstractIntegrationTest; import static org.assertj.core.api.Assertions.assertThat; import static org.springframework.http.MediaType.APPLICATION_JSON; -@SpringBootTest -@TestInstance(TestInstance.Lifecycle.PER_CLASS) -@AutoConfigureWebTestClient -@AutoConfigureSonataPlaylistHttpClient -@AutoConfigureSonataStubs -@TestPropertySource(locations = "classpath:application-test.properties") -public class CreatePlaylistEndpointTest { +public class CreatePlaylistEndpointTest extends AbstractIntegrationTest { @Autowired WebTestClient webTestClient; @@ -43,7 +33,7 @@ public class CreatePlaylistEndpointTest { static final String INVALID_TOKEN = "Bearer invalidtoken"; @BeforeAll - void setup() { + static void setup() { Hooks.onOperatorDebug(); // DO NOT DELETE IT, VERY IMPORTANT LINE, WITHOUT IT FEIGN WITH WIREMOCK THROWS ILLEGAL STATE EXCEPTION, I DON'T FIND SOLUTION YET } diff --git a/src/test/java/testing/core/AbstractIntegrationTest.java b/src/test/java/testing/core/AbstractIntegrationTest.java index 0c061e8..4383604 100644 --- a/src/test/java/testing/core/AbstractIntegrationTest.java +++ b/src/test/java/testing/core/AbstractIntegrationTest.java @@ -3,14 +3,20 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.TestInstance; +import org.springframework.boot.test.autoconfigure.web.reactive.AutoConfigureWebTestClient; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.DynamicPropertyRegistry; import org.springframework.test.context.DynamicPropertySource; import org.testcontainers.containers.PostgreSQLContainer; +import testing.spring.AutoConfigureSonataStubs; +import testing.spring.autoconfigure.AutoConfigureSonataPlaylistHttpClient; @SpringBootTest @ActiveProfiles("test") +@AutoConfigureWebTestClient +@AutoConfigureSonataPlaylistHttpClient +@AutoConfigureSonataStubs public abstract class AbstractIntegrationTest { static PostgreSQLContainer postgres = new PostgreSQLContainer<>( From fdc03fcb4f27cf6a641a094eb3d41de593ad8529 Mon Sep 17 00:00:00 2001 From: odeyalo Date: Sat, 25 Oct 2025 22:41:23 +0300 Subject: [PATCH 2/7] Use AbstractIntegrationTest for FetchPlaylistCoverImageEndpointTest --- .../FetchPlaylistCoverImageEndpointTest.java | 12 +++--------- .../java/testing/core/AbstractIntegrationTest.java | 2 ++ 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/src/test/java/com/odeyalo/sonata/playlists/controller/FetchPlaylistCoverImageEndpointTest.java b/src/test/java/com/odeyalo/sonata/playlists/controller/FetchPlaylistCoverImageEndpointTest.java index 00b6308..f82eee2 100644 --- a/src/test/java/com/odeyalo/sonata/playlists/controller/FetchPlaylistCoverImageEndpointTest.java +++ b/src/test/java/com/odeyalo/sonata/playlists/controller/FetchPlaylistCoverImageEndpointTest.java @@ -20,6 +20,7 @@ import testing.QaControllerOperations; import testing.SonataPlaylistHttpTestClient; import testing.asserts.ImagesDtoAssert; +import testing.core.AbstractIntegrationTest; import testing.spring.AutoConfigureSonataStubs; import testing.spring.autoconfigure.AutoConfigureQaEnvironment; import testing.spring.autoconfigure.AutoConfigureSonataPlaylistHttpClient; @@ -31,14 +32,7 @@ import static org.springframework.http.MediaType.APPLICATION_JSON; import static org.springframework.test.context.NestedTestConfiguration.EnclosingConfiguration.OVERRIDE; -@SpringBootTest -@TestInstance(TestInstance.Lifecycle.PER_CLASS) -@AutoConfigureWebTestClient -@AutoConfigureSonataPlaylistHttpClient -@AutoConfigureQaEnvironment -@AutoConfigureSonataStubs -@TestPropertySource(locations = "classpath:application-test.properties") -public class FetchPlaylistCoverImageEndpointTest { +public class FetchPlaylistCoverImageEndpointTest extends AbstractIntegrationTest { @Autowired WebTestClient webTestClient; @@ -56,7 +50,7 @@ public class FetchPlaylistCoverImageEndpointTest { final String PLAYLIST_OWNER_ID = "1"; @BeforeAll - void setup() { + static void setup() { Hooks.onOperatorDebug(); // DO NOT DELETE IT, VERY IMPORTANT LINE, WITHOUT IT FEIGN WITH WIREMOCK THROWS ILLEGAL STATE EXCEPTION, I DON'T FIND SOLUTION YET } diff --git a/src/test/java/testing/core/AbstractIntegrationTest.java b/src/test/java/testing/core/AbstractIntegrationTest.java index 4383604..bd2ed04 100644 --- a/src/test/java/testing/core/AbstractIntegrationTest.java +++ b/src/test/java/testing/core/AbstractIntegrationTest.java @@ -10,6 +10,7 @@ import org.springframework.test.context.DynamicPropertySource; import org.testcontainers.containers.PostgreSQLContainer; import testing.spring.AutoConfigureSonataStubs; +import testing.spring.autoconfigure.AutoConfigureQaEnvironment; import testing.spring.autoconfigure.AutoConfigureSonataPlaylistHttpClient; @SpringBootTest @@ -17,6 +18,7 @@ @AutoConfigureWebTestClient @AutoConfigureSonataPlaylistHttpClient @AutoConfigureSonataStubs +@AutoConfigureQaEnvironment public abstract class AbstractIntegrationTest { static PostgreSQLContainer postgres = new PostgreSQLContainer<>( From 21402130add036192a638922b41b8668d29a7c04 Mon Sep 17 00:00:00 2001 From: odeyalo Date: Sat, 25 Oct 2025 22:44:03 +0300 Subject: [PATCH 3/7] Use AbstractIntegrationTest for FetchPlaylistEndpointTest --- .../controller/FetchPlaylistEndpointTest.java | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/src/test/java/com/odeyalo/sonata/playlists/controller/FetchPlaylistEndpointTest.java b/src/test/java/com/odeyalo/sonata/playlists/controller/FetchPlaylistEndpointTest.java index 382b3bd..089339e 100644 --- a/src/test/java/com/odeyalo/sonata/playlists/controller/FetchPlaylistEndpointTest.java +++ b/src/test/java/com/odeyalo/sonata/playlists/controller/FetchPlaylistEndpointTest.java @@ -11,14 +11,11 @@ import org.jetbrains.annotations.NotNull; import org.junit.jupiter.api.*; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.autoconfigure.web.reactive.AutoConfigureWebTestClient; -import org.springframework.boot.test.context.SpringBootTest; import org.springframework.http.HttpHeaders; -import org.springframework.test.context.TestPropertySource; import org.springframework.test.web.reactive.server.WebTestClient; import reactor.core.publisher.Hooks; import testing.asserts.PlaylistDtoAssert; -import testing.spring.AutoConfigureSonataStubs; +import testing.core.AbstractIntegrationTest; import static com.odeyalo.sonata.playlists.model.PlaylistType.PRIVATE; import static com.odeyalo.sonata.playlists.model.PlaylistType.PUBLIC; @@ -26,12 +23,7 @@ import static org.springframework.http.MediaType.APPLICATION_JSON; -@SpringBootTest -@TestInstance(TestInstance.Lifecycle.PER_CLASS) -@AutoConfigureWebTestClient -@AutoConfigureSonataStubs -@TestPropertySource(locations = "classpath:application-test.properties") -public class FetchPlaylistEndpointTest { +public class FetchPlaylistEndpointTest extends AbstractIntegrationTest { @Autowired WebTestClient webTestClient; @@ -49,7 +41,7 @@ public class FetchPlaylistEndpointTest { @BeforeAll - void setup() { + static void setup() { Hooks.onOperatorDebug(); // DO NOT DELETE IT, VERY IMPORTANT LINE, WITHOUT IT FEIGN WITH WIREMOCK THROWS ILLEGAL STATE EXCEPTION, I DON'T FIND SOLUTION YET } From 4ba10a4c3cc3431adc7039535e34fb3fcd8ab050 Mon Sep 17 00:00:00 2001 From: odeyalo Date: Sat, 25 Oct 2025 22:47:49 +0300 Subject: [PATCH 4/7] Use AbstractIntegrationTest for FetchPlaylistTracksEndpointTest --- .../FetchPlaylistTracksEndpointTest.java | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/src/test/java/com/odeyalo/sonata/playlists/controller/FetchPlaylistTracksEndpointTest.java b/src/test/java/com/odeyalo/sonata/playlists/controller/FetchPlaylistTracksEndpointTest.java index 6f2530e..cf36a51 100644 --- a/src/test/java/com/odeyalo/sonata/playlists/controller/FetchPlaylistTracksEndpointTest.java +++ b/src/test/java/com/odeyalo/sonata/playlists/controller/FetchPlaylistTracksEndpointTest.java @@ -19,10 +19,7 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.TestInstance; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.autoconfigure.web.reactive.AutoConfigureWebTestClient; -import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.TestConfiguration; import org.springframework.cloud.contract.stubrunner.spring.AutoConfigureStubRunner; import org.springframework.context.annotation.Bean; @@ -30,16 +27,14 @@ import org.springframework.context.annotation.Primary; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; -import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.NestedTestConfiguration; import org.springframework.test.web.reactive.server.WebTestClient; import reactor.core.publisher.Hooks; import testing.PlaylistCollaboratorEntityFaker; +import testing.core.AbstractIntegrationTest; import testing.factory.PlaylistServices; import testing.faker.PlaylistFaker; import testing.faker.TrackPlayableItemFaker; -import testing.spring.AutoConfigureSonataStubs; -import testing.spring.autoconfigure.AutoConfigureQaEnvironment; import java.time.Instant; import java.util.List; @@ -53,14 +48,8 @@ import static org.springframework.cloud.contract.stubrunner.spring.StubRunnerProperties.StubsMode.CLASSPATH; import static org.springframework.test.context.NestedTestConfiguration.EnclosingConfiguration.OVERRIDE; -@SpringBootTest -@TestInstance(TestInstance.Lifecycle.PER_CLASS) -@AutoConfigureWebTestClient -@AutoConfigureSonataStubs -@AutoConfigureQaEnvironment -@ActiveProfiles("test") @Import(TestConfig.class) -class FetchPlaylistTracksEndpointTest { +class FetchPlaylistTracksEndpointTest extends AbstractIntegrationTest { @Autowired WebTestClient webTestClient; @@ -102,7 +91,7 @@ class FetchPlaylistTracksEndpointTest { static final TrackPlayableItem PLAYABLE_ITEM_1 = TrackPlayableItemFaker.create().setPublicId(TRACK_1_ID).get(); @BeforeAll - void setup() { + static void setup() { Hooks.onOperatorDebug(); // DO NOT DELETE IT, VERY IMPORTANT LINE, WITHOUT IT FEIGN WITH WIREMOCK THROWS ILLEGAL STATE EXCEPTION, I DON'T FIND SOLUTION YET } From 37211a4cafb8c2e8e609739eb9d5c70e2092f9af Mon Sep 17 00:00:00 2001 From: odeyalo Date: Sat, 25 Oct 2025 22:49:25 +0300 Subject: [PATCH 5/7] Use AbstractIntegrationTest for AddItemToPlaylistEndpointTest --- .../controller/AddItemToPlaylistEndpointTest.java | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/src/test/java/com/odeyalo/sonata/playlists/controller/AddItemToPlaylistEndpointTest.java b/src/test/java/com/odeyalo/sonata/playlists/controller/AddItemToPlaylistEndpointTest.java index 6d58540..65bfbc1 100644 --- a/src/test/java/com/odeyalo/sonata/playlists/controller/AddItemToPlaylistEndpointTest.java +++ b/src/test/java/com/odeyalo/sonata/playlists/controller/AddItemToPlaylistEndpointTest.java @@ -30,6 +30,7 @@ import org.springframework.test.context.NestedTestConfiguration; import org.springframework.test.web.reactive.server.WebTestClient; import reactor.core.publisher.Hooks; +import testing.core.AbstractIntegrationTest; import testing.faker.PlaylistEntityFaker; import testing.faker.TrackPlayableItemFaker; import testing.spring.AutoConfigureSonataStubs; @@ -43,14 +44,8 @@ import static org.springframework.cloud.contract.stubrunner.spring.StubRunnerProperties.StubsMode.CLASSPATH; import static org.springframework.test.context.NestedTestConfiguration.EnclosingConfiguration.OVERRIDE; -@SpringBootTest -@TestInstance(TestInstance.Lifecycle.PER_CLASS) -@AutoConfigureWebTestClient -@AutoConfigureSonataStubs -@AutoConfigureQaEnvironment -@ActiveProfiles("test") @Import(Config.class) -class AddItemToPlaylistEndpointTest { +class AddItemToPlaylistEndpointTest extends AbstractIntegrationTest { @Autowired WebTestClient webTestClient; @@ -80,7 +75,7 @@ class AddItemToPlaylistEndpointTest { PlaylistRepository playlistRepository; @BeforeAll - void setup() { + static void setup() { Hooks.onOperatorDebug(); // DO NOT DELETE IT, VERY IMPORTANT LINE, WITHOUT IT FEIGN WITH WIREMOCK THROWS ILLEGAL STATE EXCEPTION, I DON'T FIND SOLUTION YET } From 11f00c6f3596413ef521abf7d24dcc8074af71a2 Mon Sep 17 00:00:00 2001 From: odeyalo Date: Sat, 25 Oct 2025 22:51:31 +0300 Subject: [PATCH 6/7] Use AbstractIntegrationTest for PartialPlaylistUpdateEndpointTest --- .../PartialPlaylistUpdateEndpointTest.java | 20 +++---------------- 1 file changed, 3 insertions(+), 17 deletions(-) diff --git a/src/test/java/com/odeyalo/sonata/playlists/controller/PartialPlaylistUpdateEndpointTest.java b/src/test/java/com/odeyalo/sonata/playlists/controller/PartialPlaylistUpdateEndpointTest.java index 2891195..9df59b3 100644 --- a/src/test/java/com/odeyalo/sonata/playlists/controller/PartialPlaylistUpdateEndpointTest.java +++ b/src/test/java/com/odeyalo/sonata/playlists/controller/PartialPlaylistUpdateEndpointTest.java @@ -8,21 +8,16 @@ import org.jetbrains.annotations.NotNull; import org.junit.jupiter.api.*; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.autoconfigure.web.reactive.AutoConfigureWebTestClient; -import org.springframework.boot.test.context.SpringBootTest; import org.springframework.cloud.contract.stubrunner.spring.AutoConfigureStubRunner; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; import org.springframework.test.context.NestedTestConfiguration; -import org.springframework.test.context.TestPropertySource; import org.springframework.test.web.reactive.server.WebTestClient; import reactor.core.publisher.Hooks; import testing.QaControllerOperations; import testing.SonataPlaylistHttpTestClient; import testing.asserts.PlaylistDtoAssert; -import testing.spring.AutoConfigureSonataStubs; -import testing.spring.autoconfigure.AutoConfigureQaEnvironment; -import testing.spring.autoconfigure.AutoConfigureSonataPlaylistHttpClient; +import testing.core.AbstractIntegrationTest; import static com.odeyalo.sonata.playlists.model.PlaylistType.PRIVATE; import static org.assertj.core.api.Assertions.assertThat; @@ -30,24 +25,15 @@ import static org.springframework.http.HttpStatus.UNPROCESSABLE_ENTITY; import static org.springframework.test.context.NestedTestConfiguration.EnclosingConfiguration.OVERRIDE; -@SpringBootTest -@TestInstance(TestInstance.Lifecycle.PER_CLASS) -@AutoConfigureWebTestClient -@AutoConfigureSonataPlaylistHttpClient -@AutoConfigureQaEnvironment -@AutoConfigureSonataStubs -@TestPropertySource(locations = "classpath:application-test.properties") -public class PartialPlaylistUpdateEndpointTest { +public class PartialPlaylistUpdateEndpointTest extends AbstractIntegrationTest { public static final String INVALID_TOKEN = "Bearer invalidtoken"; @Autowired WebTestClient webTestClient; - @SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection") @Autowired SonataPlaylistHttpTestClient playlistHttpTestClient; - @SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection") @Autowired QaControllerOperations qaControllerOperations; @@ -55,7 +41,7 @@ public class PartialPlaylistUpdateEndpointTest { final String VALID_USER_ID = "1"; @BeforeAll - void setup() { + static void setup() { Hooks.onOperatorDebug(); // DO NOT DELETE IT, VERY IMPORTANT LINE, WITHOUT IT FEIGN WITH WIREMOCK THROWS ILLEGAL STATE EXCEPTION, I DON'T FIND SOLUTION YET } From 30d122635c748bc78e4fadcdc467629dcecd31da Mon Sep 17 00:00:00 2001 From: odeyalo Date: Sat, 25 Oct 2025 22:53:29 +0300 Subject: [PATCH 7/7] Use AbstractIntegrationTest for PlaylistImageUploadEndpointTest --- .../PlaylistImageUploadEndpointTest.java | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/src/test/java/com/odeyalo/sonata/playlists/controller/PlaylistImageUploadEndpointTest.java b/src/test/java/com/odeyalo/sonata/playlists/controller/PlaylistImageUploadEndpointTest.java index 4ef90dd..c7ac211 100644 --- a/src/test/java/com/odeyalo/sonata/playlists/controller/PlaylistImageUploadEndpointTest.java +++ b/src/test/java/com/odeyalo/sonata/playlists/controller/PlaylistImageUploadEndpointTest.java @@ -21,6 +21,7 @@ import testing.QaControllerOperations; import testing.SonataPlaylistHttpTestClient; import testing.asserts.PlaylistDtoAssert; +import testing.core.AbstractIntegrationTest; import testing.spring.AutoConfigureSonataStubs; import testing.spring.autoconfigure.AutoConfigureQaEnvironment; import testing.spring.autoconfigure.AutoConfigureSonataPlaylistHttpClient; @@ -31,15 +32,7 @@ import static org.springframework.http.HttpStatus.UNPROCESSABLE_ENTITY; import static org.springframework.test.context.NestedTestConfiguration.EnclosingConfiguration.OVERRIDE; -@SpringBootTest -@TestInstance(TestInstance.Lifecycle.PER_CLASS) -@AutoConfigureWebTestClient -@AutoConfigureSonataPlaylistHttpClient -@AutoConfigureQaEnvironment -@AutoConfigureSonataStubs -@TestPropertySource(locations = "classpath:application-test.properties") -public class PlaylistImageUploadEndpointTest { - public static final String INVALID_TOKEN = "Bearer invalidtoken"; +class PlaylistImageUploadEndpointTest extends AbstractIntegrationTest { @Autowired WebTestClient webTestClient; @@ -51,12 +44,13 @@ public class PlaylistImageUploadEndpointTest { final String VALID_ACCESS_TOKEN = "Bearer mikunakanoisthebestgirl"; + final String INVALID_TOKEN = "Bearer invalidtoken"; final String VALID_USER_ID = "1"; final String PLAYLIST_COVER_IMAGE_SOURCE = "images/playlist_cover_450kb_w564_h398.png"; @BeforeAll - void setup() { + static void setup() { Hooks.onOperatorDebug(); // DO NOT DELETE IT, VERY IMPORTANT LINE, WITHOUT IT FEIGN WITH WIREMOCK THROWS ILLEGAL STATE EXCEPTION, I DON'T FIND SOLUTION YET }